2020年10月31日已更新新版解决方案:
搬瓦工vps的IP被封(11)BT宝塔面板+V2Ray+WebSocket(ws)+TLS+Nginx+Cloudflare

2020年10月29日更新:
本文方案已经失效,原因是v2ray.fun面板调用的是v2ray官方原脚本https://install.direct/go.sh,该脚本已被v2fly官方删除,而v2ray.fun面板作者在v2ray.fun的安装脚本中未更新新的官方脚本地址,导致无法安装v2ray,进而导致所有基于v2ray.fun的操作全部被推翻。

以下是原文,除开v2ray.fun面板的设置,其它依旧可供参考。可能在某一天,我会写一篇新的文章

前言一:IP被封的检测和解决思路已经写成系列文章,建议在按照文章步骤操作时先看一下这篇文章《搬瓦工vps的IP被封(0) 前言及日志目录》,也许看完这篇文章,可以少走一点弯路。

为什么写前言,因为前言很重要,里面包含了我遇到了哪些问题以及解决的思路。很多网友只是单纯的利用搜索引擎找到我写的某篇文章,然后也不知道有没有具体去看完,就发留言或者邮件跟我说,“哎呀,博主,我遇到了问题。”、“博主,你看我按你写的操作为啥还是不行呢?”诸如此类的。

前言二:《搬瓦工vps的IP被封(4) Cloudflare+V2Ray+Caddy+WebSocket+TLS》一文清晰的写了如何使用Caddy搭建https环境来伪装v2ray的流量,并使用Cloudflare来中转。但是不少网友遇到Caddy无法启动或者启动成功但是无法正常运行,我在该文章7和8部分进行了更新,可是不一定能解决问题;比如说因为域名或者IP被letsencrypt限制,难道要等两天再试吗?而且,使用Caddy申请证书有个弊端,对于临时救场的网友来说可能没发现,对于长期使用的网友来说,就是一个很麻烦的事情。就是letsencrypt的证书只有三个月,就算自己想起来去续期,也是一件麻烦事,而且很可能又会碰到Caddy无法启动或者启动成功但是无法正常运行的问题,又或者被letsencrypt限制。

有网友说注册的免费域名会间隔性检查域名是否解析在一个真正的网页上,使用Caddy来进行网站伪装对于我这种小白来说,操作难度较大,所以我写下这篇Nginx方案。

其实本文与《搬瓦工vps的IP被封(8) V2Ray+WebSocket(ws)+TLS+Nginx+网站+Cloudflare》一文中写的没多大区别,相当于是一个简洁版。何况,低配的vps用来安装完整的LNMP环境并搭建网站有一种卡车头拖火车的感觉,随时可能因为负载过高而出现各种问题;如果你正好需要一个网页来伪装v2ray流量并且你的vps硬件配置不高,那么继续往下看吧。

前言三、如何正确的提问:
vps使用什么服务什么协议?本地什么设备什么系统多少位什么客户端?遇到了什么问题?IP目前状态?PC端v2ray客户端日志中的报错信息呢?Clouflare的SSL以及DNS解析状态?

以下正文
本文的方式是在vps上安装宝塔面板,利用宝塔面板安装及管理Nginx,同时安装v2ray;使用Nginx来建立一个真正的网页,并通过网页来伪装v2ray流量;同时使用Cloudflare的15年证书以免去letsencrypt每三个月需更新一次证书的烦恼。本文以IP被封为例,如果你的IP没有被封,亦可参考。

1、准备工作:
1.1、域名的NS服务器替换为Cloudflare的NS服务器;没用过Cloudflare的网友可以参照《搬瓦工vps的IP被封(4) Cloudflare+V2Ray+Caddy+WebSocket+TLS》进行域名NS服务器替换及域名解析。
1.1.1、本博客使用的域名是在NameSilo注册的,输入本站域名“eveaz.com”可以直减1美刀;阿里云域名注册、其它渠道或者免费域名请自行搜索。
1.1.2、没注册域名的网友或者在NameSilo上注册了域名但是不会更改NS服务器,请移步《言小五系列教程之NameSilo域名注册&续费&管理》

1.2、将vps系统重装至Centos7;

目前搬瓦工最有性价比的几款VPS

机房线路内存CPUSSD流量带宽价格购买
洛杉矶DC3电信CN2 GT1G1核20G1T/月1Gbps$49.99/年链接
洛杉矶DC4联通直连1G2核20G1T/月1Gbps$49.99/年链接
洛杉矶DC3移动直连1G1核20G1T/月1Gbps$49.99/年链接
日本大阪软银线路512M1核10G500G/月1Gbps$69.99/年链接
洛杉矶DC6三网CN2 GIA-E1G2核20G1T/月2.5Gbps$169.99/年链接
日本大阪软银线路1G2核20G1T/月2.5Gbps$169.99/年链接
相关教程:言小五系列教程之BandwagonHOST(搬瓦工)的vps购买及使用教程&优惠码
1.3、确保能够SSH连接vps:
搬瓦工vps的IP被封(2) Xshell如何设置代理SSH
搬瓦工vps的IP被封(5) Xshell如何使用V2RayN客户端代理SSH连接vps
搬瓦工vps的IP被封(6) Xshell如何使用ss客户端代理SSH连接vps》)

1.4、需要一个可用节点,不管是ss还是v2ray,只要能正常打开谷歌就行;(嗯?为什么?没有可用节点,就意味着打不开宝塔页面。)
1.4.1、如果找不到合适的可用节点,又或者不想为了vps的IP被封的事情来回折腾,建议购买搬瓦工自建机场(just my socks)的ss节点,无需担心IP被封,三网强制CN2 GIA线路。
1.4.2、Just My Socks推荐方案如下:

方案名称带宽流量地区设备限制价格购买
LA 5002.5Gbps500G/月洛杉矶5个$5.88/月链接
LA 10005Gbps1T/月洛杉矶不限制$9.88/月链接
London 5002.5Gbps500G/月伦敦5个$6.8/月链接
London 10005Gbps1T/月伦敦不限制$11.29/月链接
Tokyo 100100Mbps100G/月东京3个$29.99/月链接
HK CMI+NTT Plan 5002.5Gbps500G/月香港5个$8.99/月链接
Hong Kong 100100Mbps100G/月香港3个$34.99/月链接
IPLC HK BUSINESS 100100Mbps100G/月深圳-香港3个$15/月链接
IPLC HK 300 V2300Mbps300G/月深圳-香港3个$21/月链接
综合优势:IP被封后台自动更换新的IP,即买即用,提供shadowsocks和v2ray节点,支持UDP流量。
购买教程:言小五系列教程之搬瓦工Just My Socks详细购买及使用教程与优惠码
相关评测:BandwagonHost搬瓦工官方机场Just My Socks的网络质量怎么样?
其它说明: IPLC 为深圳三网入口,香港出口,无需审查(不过墙),解锁ChatGPT。

1.5、以上如果需要代购,联系博主。

2、Cloudflare域名解析、证书下载
2.1、替换域名NS服务器之后,确保Cloudflare下的域名状态为Active;

2.2、将域名解析到vps的IP上;

添加新解析的时候,小黄云默认是黄色的,即Proxied,点一下,成灰色,即DNS only;

点击Save保存解析,等待解析生效;大多数时候是秒生效,本地清除DNS缓存之后ping一下域名,如果得到的IP是你解析的IP(不管能不能ping通,只需要IP是正确的),那就是生效了。
2.3、查看当前域名的SSL/TLS状态为Active,SSL应用参数为 Full;(选项卡布局位置发生变化,见下方2019年10月05日更新)

2019年10月05日更新:查看当前域名证书状态在SSL/TLS选显卡下方 Edge Certificates 菜单中:Universal Status状态需为Active;如果不是Active,请等待证书生效,一般不会超过24个小时;

2019年10月05日更新:SSL/TLS选项卡下方 Overview选项卡 SSL/TLS encryption mode 选择Full;如图,如果你在这一步发现 Browser – Cloudflare – Origin Server状态跟截图中是不一样的,无所谓,因为这个步骤只需要SSL/TLS encryption mode选择为Full就行了。在完成最后一步即步骤7之后就一样了。

2.3.1、(选项位置布局发生变化,见下方更新)下拉该网页到下方,看到Origin Certificates,点击右边的Create Certificate按钮创建证书;

2019年10月05日更新:当前 Origin Certificates选项在SSL/TLS选项卡下方 Origin Server菜单中;点击右边Create Certificate按钮创建证书;

基本是默认的,可能需要改一下左下方“Certificate Validity”为“15 years”,点击右下角Next进入下一步;

可以看到Origin Certificate installation窗口;
2.3.2、这个时候在本地PC上新建两个文本文档,一个是eveaz.com Cloudflare PEM.txt,一个是eveaz.com Cloudflare KEY.txt;(域名根据需求自行修改,只是为了方便辨识而已)
将Origin Certificate下方字符复制到eveaz.com Cloudflare PEM.txt中;

将Private key下方字符复制到eveaz.com Cloudflare KEY.txt中;(KEY只出现一次,请务必妥善保存)之后点击 OK,窗口会关闭;

3、宝塔面板、Nginx安装管理;
3.1、使用下方宝塔官方北美节点脚本进行安装;
yum install -y wget && wget -O install.sh http://128.1.164.196:5880/install/install_6.0.sh && sh install.sh
安装完毕之后会生成管理面板地址及用户名和密码,务必妥善保管该信息;

3.2、登陆到宝塔面板(必需有可用节点可以上网,并且开全局,要不然宝塔面板打不开),安装Nginx,这里以1.1.5为例;

3.3、Nginx安装完毕之后,点击宝塔面板左侧“网站”,点击“添加网站”;输入之前在Cloudflare解析的域名;FTP默认不创建,数据库默认不创建,PHP版本默认纯静态;点击提交;

3.4、进入刚才新建的网站站点管理,在管理界面点击SSL进入证书管理界面,点击“其它证书”;还记得本文2.3.2步骤中提到的两个文本文档吗?将eveaz.com Cloudflare KEY.txt中的字符复制到左侧密钥框中,将eveaz.com Cloudflare PEM.txt中的字符复制到右侧证书框中;点击保存;

保存之后会出现证书成功信息和到期时间;将该窗口右上方的“强制HTTPS”按钮打开。

3.5、浏览器打开新建的网站确保网站是https打开(必需有可用节点可以上网,并且开全局,要不然网站打不开);有需求的话自行修改默认首页;

4、安装v2ray.fun面板;(安装完毕之后在SSH界面输入 v2ray 即可管理面板)
4.1、运行下方脚本安装;
wget -N --no-check-certificate https://raw.githubusercontent.com/FunctionClub/v2ray.fun/master/install.sh && bash install.sh
安装到最后会提示:
请输入默认用户名(默认admin):可自行修改,举例为默认;
请输入默认登陆密码(默认admin):可自行修改,举例为默认;
请输入监听端口号(默认5000):可自行修改,举例为默认 ;


4.2、宝塔面板 “安全” – “防火墙” 放行上面的V2ray面板监听端口(默认5000);

4.3、登陆V2ray.fun控制面板;登陆方式是:IP:5000,输入账号(admin)、密码(admin)登陆;
点击控制面板菜单中的“修改连接 ”:
协议类型:VMess;
主端口:10010;(端口号自行修改,后面会用到)
UUID:默认;(可点击旁边的按钮生成替换)
加密方式:默认(auto);
传输协议:WebSocket;(点击修改的时候会提示输入域名,下方有写)
TLS:默认关闭;(默认的就是关闭状态,别管它!!!)
Mux.cool:默认关闭;(默认的就是关闭状态,别管它!!!)


4.3.0、2020年08月13日补充更新:如果在4.3步骤中,打开v2ray.fun面板,”运行状态”都是空白,”修改连接”里面”传输协议”等也是空白且无法修改的,按此步骤(4.3.0)操作:进入宝塔面板文件管理,路径根目录/etc/v2ray/,编辑config.json(在最新脚本安装完成之后config.json的路径可能为/usr/local/etc/v2ray/);删掉config.json中所有代码,复制下方config.json模版内全部代码到config.json中,保存即可;略过4.3.1至4.4.2步骤,直接跳到第5步骤。如果在4.3步骤没有出现空白现象,则略过此步骤(4.3.0),跳到4.3.1步骤操作。
"Host": "v2ray.eveaz.com" ## v2ray.eveaz.com要改成自己的域名
"id": "57c12669-e26b-4bb5-a8a8-17c7bc10bf3e", ##这个id就是uuid,可以用相关客户端生成,或者不改
"alterId": 100, ## 如果v2ray版本是v4.28.0及以上,需要改成 "alterId": 0,
## 来自v2ray项目组提示:VMess AEAD will be used when alterId is 0 in V2Ray v4.28.0+
config.json模版如下:
{
"inbound": {
"streamSettings": {
"network": "ws",
"wsSettings": {
"path": "/ws/",
"headers": {
"Host": "v2ray.eveaz.com"
}
}
},
"protocol": "vmess",
"port": 10010,
"settings": {
"clients": [
{
"alterId": 100,
"security": "auto",
"id": "57c12669-e26b-4bb5-a8a8-17c7bc10bf3e",
"level": 1
}
]
}
},
"outboundDetour": [
{
"tag": "blocked",
"protocol": "blackhole",
"settings": {}
}
],
"outbound": {
"protocol": "freedom",
"settings": {}
},
"log": {
"access": "/var/log/v2ray/access.log",
"loglevel": "info",
"error": "/var/log/v2ray/error.log"
},
"routing": {
"settings": {
"rules": [
{
"ip": [
"0.0.0.0/8",
"10.0.0.0/8",
"100.64.0.0/10",
"127.0.0.0/8",
"169.254.0.0/16",
"172.16.0.0/12",
"192.0.0.0/24",
"192.0.2.0/24",
"192.168.0.0/16",
"198.18.0.0/15",
"198.51.100.0/24",
"203.0.113.0/24",
"::1/128",
"fc00::/7",
"fe80::/10"
],
"type": "field",
"outboundTag": "blocked"
}
]
},
"strategy": "rules"
}
}

4.3.1、修改传输协议为 WebSocket 时会提示输入域名;我这里添加域名是v2ray.eveaz.com,自行根据需要更改;然后点击确认,之后v2ray.fun面板页面可以关掉了;

4.4、添加V2ray的ws path 路径;
4.4.1、编辑 /etc/v2ray/config.json 文件;
vi /etc/v2ray/config.json
## 在最新脚本安装完成之后config.json的路径为/usr/local/etc/v2ray/config.json
vi /usr/local/etc/v2ray/config.json
进入编辑界面,就在前几行,修改”path”: “”,为”path”:”/ws/”, ,这里的“/ws/”可以自行修改,但是要跟后面的操作一致;”Host”: “v2ray.eveaz.com”,其中v2ray.eveaz.com改成自己的域名;
修改前:

修改后:

4.4.2、新建一个文本文档 vmess信息.txt;将修改后部分参数复制到该文本文档中(下方示例);
"inbound": {
"streamSettings": {
"network": "ws",
"wsSettings": {
"path": "/ws/",
"headers": {
"Host": "v2ray.eveaz.com"
}
}
},
"protocol": "vmess",
"port": 10010,
"settings": {
"clients": [
{
"alterId": 100,
"security": "auto",
"id": "375bc108-8f08-45e0-8478-0120a4864aff",
"level": 1

5、打开宝塔管理面板 – 网站,进入刚才新建的网站站点管理,在管理界面点击配置文件;在网站配置文件的最后一个“}”之前添加如下参数;要注意,是location /ws ,不是location /ws/ ;proxy_pass http://127.0.0.1:10010; (这一行中的端口10010跟前面4.3步骤在V2ray.fun面板修改的主端口一致)
location /ws {
proxy_redirect off;
proxy_pass http://127.0.0.1:10010;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
}

6、在宝塔面板里面重启Nginx,在SSH里面重启V2ray;重启V2ray的命令如下:
service v2ray restart
7、回到Cloudflare域名管理面板的DNS选项,将域名的小黄云点亮,即Proxied;

7.1、这时候在浏览器中打开伪装域名v2ray.eveaz.com,显示的是步骤3.5中的网页(不需要可用节点开全局也能打开);打开v2ray.eveaz.com/ws/,显示的是 Bad Request 。

8、Win系统PC客户端使用v2rayN,按文章4.4.2中的信息添加VMess服务器;强调一下,参数参照下方截图中填写,端口是443!!本地PC不能与vps时间相差超过90秒(时间相差太大,v2rayN客户端会报500内部错误),一般vps的时间都是正确的(万一不对,需要同步网络时间),本地PC同步一下网络时间就行了。(不会使用v2rayN客户端的参考《搬瓦工vps的IP被封(3) V2Ray+mKCP部署及V2RayN客户端配置使用教程》)

9、为什么ping域名得到的IP是Cloudflare的IP,而IP test得到的IP是vps的原IP了?如果你使用这个方案,这两者就是必然的!!!

10、v2ray.fun面板在这篇文章中唯一的作用就是方便修改及生成vps上v2ray服务端参数,并不需要在该面板上管理或应用tls和Mux.cool。

11、2019年10月01日补充:
有网友使用LEDE软路由 v2ray for openwrt – 2.3.7 插件进行上网的,以往都是先导出vmess链接,然后再到插件里面直接导入vmess链接添加节点,但是按照本文的Nginx方案安装运行之后,无法通过vmess链接直接导入,以至于不能上网。我在下方提供一个插件的v2ray.json模版,按照自身参数进行修改就行了。
需要改4个位置:
"address": "v2ray.eveaz.com",
##将v2ray.eveaz.com改成自己的域名
"id": "49680fd8-20fa-4ee6-a4a8-e8cee5b911ea",
##将49680fd8-20fa-4ee6-a4a8-e8cee5b911ea改成自己的id,这个id也叫uuid
"serverName": "v2ray.eveaz.com"
##将v2ray.eveaz.com改成自己的域名
"Host": "v2ray.eveaz.com"
##将v2ray.eveaz.com改成自己的域名

v2ray.json模板如下:
{
"outbound": {
"protocol": "vmess",
"settings": {
"vnext": [{
"address": "v2ray.eveaz.com",
"port": 443,
"users": [{
"id": "49680fd8-20fa-4ee6-a4a8-e8cee5b911ea",
"alterId": 100,
"security": "auto"
}]
}]
},
"streamSettings": {
"network": "ws",
"security": "tls",
"tlsSettings": {
"allowInsecure": true,
"serverName": "v2ray.eveaz.com"
},
"tcpSettings": null,
"kcpSettings": null,
"wsSettings": {
"connectionReuse": true,
"path": "/ws/",
"headers": {
"Host": "v2ray.eveaz.com"
}
},
"httpSettings": null
},
"mux": {
"enabled": true
}
}
}

2019年10月06日更新:
12、v2rayN客户端报错503 Service Temporarily Unavailable;
12.1、报错信息如下:
[Warning] failed to handler mux client connection > Proxy|VMess|Outbound: failed to find an available destination > Retry: [Transport|Internet|WebSocket: failed to dial WebSocket > Transport|Internet|WebSocket: failed to dial to (wss://v2ray.eveaz.com/ws/): 503 Service Temporarily Unavailable > websocket: bad handshake] > Retry: all retry attempts failed
12.2、解决方案如下:
12.2.1、在浏览器中打开用于伪装流量的域名,如果载入的是著名的Cloudflare的5秒盾,那么就需要在Cloudflare中进行设置;

12.2.2、登陆到Cloudflare域名管理界面,看看Overview选显卡下方是否显示“Under Attack Mode is active”,右下角“Under Attack Mode”状态是否为“On”;

12.2.3、点击右下角“Under Attack Mode”的开关,弹出窗口“Disable Under Attack Mode”,将“Security Level”右方选项选择为“Essentially Off”;

13、v2rayN客户端报错rejected Proxy|Socks: unknown Socks version: 71;
13.1、首先查看v2rayN客户端参数设置 – Core:基础设置 中的本地监听端口,文中举例为2323;

13.2、因为v2rayN面板使用sock5协议且无法手动在面板中更改协议模式,但是v2ray是提供了http代理端口的,只是没有显示出来而已,一般系统都会根据v2rayN设置的全局或者PAC两种模式自动识别不同的http代理端口;比如socks5端口为2323,那么全局模式下http代理端口为2324,PAC模式下系统会自动识别脚本代理;
13.2.1、v2rayN开启全局模式时,Win10设置界面“网络和Internet”选项下方“代理”设置里面是自动识别http代理端口为2324;

13.2.2、v2rayN开启PAC模式时,Win10设置界面“网络和Internet”选项下方“代理”设置里面是自动识别脚本代理(脚本地址为http://127.0.0.1:2325/pac/*****);

所以在系统无法自动识别代理协议和端口或者使用了类似(Proxy SwitchyOmega)浏览器代理插件的情况下,需要手动指定http代理端口。比如v2rayN客户端socks5端口为2323,那么Proxy SwitchyOmega插件中设置http代理为127.0.0.1:2324即可。

2020年02月06日更新:
14、有网友问v2ray.fun面板如何卸载,脚本作者未提供卸载命令,删除v2ray.fun所有内容参考以下两种方式:
14.1、方式一:重装系统。(简单干脆,直接重新来过)
14.2、方式二:在SSH命令行下依次输入以下命令:
systemctl stop v2ray
systemctl disable v2ray
rm /usr/local/V2ray.Fun -rf
rm /etc/supervisor -rf
rm /usr/local/bin/v2ray/ -rf
rm /etc/v2ray/ -rf
rm /etc/systemd/system/v2ray.service -f
systemctl daemon-reload

368 thoughts on “搬瓦工vps的IP被封(10) V2Ray+WebSocket(ws)+TLS+Nginx+Cloudflare

  1. 本季说道:

    v2ray面板好像不能用了吧?教程有无更新?

    1. 言小五说道:

      @本季 v2ray.fun面板作者已经停更很久了。所谓的教程更新,你再仔细看看本文开头两段话。

  2. manbuz说道:

    请问一下,这个己经部署成功并使用很长一段时间了,现在想要更换UUID的话,这个需要怎么做呢?我试着直接修改了v2ray 的config.json里面的UUID值 ,但是就启动不了了

    1. 言小五说道:

      @manbuz UUID不能随便改的,要用工具生成。v2ray就可以生成,v2fly官网也可以生成,也可以用其它工具生成。

      1. manbuz说道:

        @言小五 那么去v2fly 官网生成新UUID后,到vps里的config.json配置里修改 这个值 ,重启v2ray这就算修改成功了吗

          1. manbuz说道:

            @言小五 好的感谢,这就去试下

  3. Hoshi说道:

    博主大佬你好~参照了你的文章搭建了服务器,但是在本地使用v2rayN连接的时候出现如下报错

    [Warning] failed to handler mux client connection > v2ray.com/core/proxy/vmess/outbound: failed to find an available destination > v2ray.com/core/common/retry: [v2ray.com/core/transport/internet/websocket: failed to dial WebSocket > v2ray.com/core/transport/internet/websocket: failed to dial to (wss://***.tk/): 200 OK > websocket: bad handshake] > v2ray.com/core/common/retry: all retry attempts failed

    系统是Centos7 x86_64 bbr ,v2ray是使用233v2的脚本安装,SSL证书是Let’s Encrypt,IP目前可以正常访问,Cloudflare的解析正常,ssl处于完全状态,开启代理
    由于我对编程啥的完全不懂,不知道是哪里出了问题该如何解决,请问你能帮我看一下改如何解决吗?

    1. 言小五说道:

      @Hoshi 单凭这个报错代码说不清是什么问题,何况你把域名给隐藏了,我也不知道你的伪装站点是否正常。
      你先查看v2ray和caddy是不是正常运行状态,v2ray版本号是多少;然后把v2rayN的MUX多路复用关掉,再看看v2rayN的v2ray-core版本是不是跟VPS上的服务端一致。

      1. Hoshi说道:

        @言小五 感谢大佬回复。域名是****.tk 。v2ray版本的话,服务器上安装的是4.33.0,客户端应该是4.31.0 今天从github下载的(看到你的回复的时候我去更新了4.33.0版本,不过问题还是一样,表现也是一样)。caddy目前是没有安装的状态,今天是装过两次,第一次是有安装caddy(安装脚本自动配置tls然后就安装了)第二次没有让他自动配置就没有安装了,两次显示的错误都是一样的。v2ray的话,不知道如何查看运行状态,不过重装和重启在客户端显示的错误都是一样的。顺带一提,中间使用安装脚本卸载了v2ray(虽然不知道本体有没有真的卸载)第二次安装之前使用客户端连接还是显示一样的错误,不知道是啥问题..
        v2ray的配置文件路径是·根目录/etc/v2ray/·用的是文章上面的模板
        关掉客户端Mux的话是下面这些信息
        2020/12/14 23:27:29 [Warning] [692381653] v2ray.com/core/app/proxyman/outbound: failed to process outbound traffic > v2ray.com/core/proxy/vmess/outbound: failed to find an available destination > v2ray.com/core/common/retry: [v2ray.com/core/transport/internet/websocket: failed to dial WebSocket > v2ray.com/core/transport/internet/websocket: failed to dial to (wss://****.tk/): > dial tcp 104.27.179.210:443: operation was canceled v2ray.com/core/transport/internet/websocket: failed to dial WebSocket > v2ray.com/core/transport/internet/websocket: failed to dial to (wss://****.tk/): > dial tcp: operation was canceled] > v2ray.com/core/common/retry: all retry attempts failed
        2020/12/14 23:27:42 [Warning] [1620356587] v2ray.com/core/app/proxyman/outbound: failed to process outbound traffic > v2ray.com/core/proxy/vmess/outbound: failed to find an available destination > v2ray.com/core/common/retry: [v2ray.com/core/transport/internet/websocket: failed to dial WebSocket > v2ray.com/core/transport/internet/websocket: failed to dial to (wss://****.tk/): 200 OK > websocket: bad handshake] > v2ray.com/core/common/retry: all retry attempts failed

        麻烦大佬看一看了

        1. 言小五说道:

          @Hoshi 解决办法:要么按本文开头写的2020年10月31日更新的新版解决方案完整操作一次;要么按我之前写的用233脚本的文章重来一次。
          这两篇文章配置伪装网页是完全不同的方式,不了解原理的话不要混着来。

          1. Hoshi说道:

            @言小五 好的,谢谢大佬回复,我今天再重装一下看看。

          2. Hoshi说道:

            @言小五 非常感谢大佬,今天重新装了一次,已经可以正常使用了,一开始装完其实还是以前那样一直报错,后面想到之前都是直接URL导入的,会不会是客户端设定有错,翻了一下前面的文章,修正之后已经可以正常使用了,感谢大佬的讲解~然后想问一下如果在这个域名上使用宝塔搭建网站(例如wordpress)会影响到代理的正常使用吗?

            1. 言小五说道:

              @Hoshi 伪装站点可以搭建WP,两者不影响,不冲突。

              1. Hoshi说道:

                @言小五 好的·感谢大佬回复~

  4. 阿虫说道:

    博主你好,请问这个v2ray.fun怎么在浏览器登录,需要输什么网址?还有我vps时间和本地时间应该是一样的,但还是远程错误500,请问要怎么做?

    1. 言小五说道:

      @阿虫 1、关于v2ray.fun面板,比如你的IP是8.8.8.8,开放的面板端口是5000,那么在浏览器输入http://8.8.8.8:5000 即可登陆面板;
      2、你说的远程错误500能描述清楚一些么?

      1. 阿虫说道:

        @言小五 我对照前面重新来过,面板还是空白且无法修改。4.3.0步将域名改了,id是没改,alterId是100,脚本用的是4.1的wget -N –no-check-certificate https://raw.githubusercontent.com/FunctionClub/v2ray.fun/master/install.sh && bash install.sh,编辑的是/usr/local/etc/v2ray/config.json,我看/usr/local/V2ray.Fun也有config.json,是不是这里也需要改?然后就是步骤六用这个命令service v2ray restart后报错Failed to execute operation: No such file or directory。查看状态报错信息为:v2ray.service
        Loaded: not-found (Reason: No such file or directory)
        Active: failed (Result: start-limit) since Thu 2020-10-29 12:33:57 CST; 42min ago
        Main PID: 20160 (code=exited, status=1/FAILURE)

        Oct 29 12:33:57 107.182.***.98.16clouds.com systemd[1]: v2ray.service: main process exited, code=exited, statu…URE
        Oct 29 12:33:57 107.182.***.98.16clouds.com systemd[1]: Unit v2ray.service entered failed state.
        Oct 29 12:33:57 107.182.***.98.16clouds.com systemd[1]: v2ray.service failed.
        Oct 29 12:33:57 107.182.***.98.16clouds.com systemd[1]: v2ray.service holdoff time over, scheduling restart.
        Oct 29 12:33:57 107.182.***.98.16clouds.com systemd[1]: start request repeated too quickly for v2ray.service
        Oct 29 12:33:57 107.182.***.98.16clouds.com systemd[1]: Failed to start V2Ray Service.
        Oct 29 12:33:57 107.182.***.98.16clouds.com systemd[1]: Unit v2ray.service entered failed state.
        Oct 29 12:33:57 107.182.***.98.16clouds.com systemd[1]: v2ray.service failed.
        Hint: Some lines were ellipsized, use -l to show in full.

        1. 言小五说道:

          @阿虫 这个面板应该是出现兼容性问题,有些系统正常,有些系统就空白。/usr/local/V2ray.Fun的config.json不需要改。如果你是直接在命令行操作的,你先看下v2ray的路径是不是找对了;如果是宝塔面板,直接在这两个文件夹(/usr/local/etc/v2ray/或者/etc/v2ray/)去找一下v2ray的config.json文件。

          1. 阿虫说道:

            @言小五 系统是Centos 7 x86_64 bbr。路径是/usr/local/etc/v2ray/config.json ,内容是{
            "inbound": {
            "streamSettings": {
            "network": "ws",
            "wsSettings": {
            "path": "/ws/",
            "headers": {
            "Host": "v2ray.****.xyz"
            }
            }
            },
            "protocol": "vmess",
            "port": 10010,
            "listen":"107.182.***.98",
            "settings": {
            "clients": [
            {
            "alterId": 100,
            "security": "auto",
            "id": "57c12669-e26b-4bb5-a8a8-17c7bc10bf3e",
            "level": 1
            }
            ]
            }
            },
            "outboundDetour": [
            {
            "tag": "blocked",
            "protocol": "blackhole",
            "settings": {}
            }
            ],
            "outbound": {
            "protocol": "freedom",
            "settings": {}
            },
            "log": {
            "access": "/var/log/v2ray/access.log",
            "loglevel": "info",
            "error": "/var/log/v2ray/error.log"
            },
            "routing": {
            "settings": {
            "rules": [
            {
            "ip": [
            "0.0.0.0/8",
            "10.0.0.0/8",
            "100.64.0.0/10",
            "127.0.0.0/8",
            "169.254.0.0/16",
            "172.16.0.0/12",
            "192.0.0.0/24",
            "192.0.2.0/24",
            "192.168.0.0/16",
            "198.18.0.0/15",
            "198.51.100.0/24",
            "203.0.113.0/24",
            "::1/128",
            "fc00::/7",
            "fe80::/10"
            ],
            "type": "field",
            "outboundTag": "blocked"
            }
            ]
            是照着你来的,开始不行,后面我加了一行”listen”:”107.182.***.98″, 还是老样子不行

            1. 言小五说道:

              @阿虫 把相关报错什么的截图发我的私人邮箱(cocofive#foxmail.com #改@)吧。

  5. manbuz说道:

    博主好,又来拜访了,近日手机端v2rayNG 连接后 提示 失败:Get “http://www.google.com/gen_204”:context deadline exceeded ,但是电脑端的又可以链接成功,请您帮忙分析是这是什么问题呢?

    1. 言小五说道:

      @manbuz 很简单的排除法,电脑客户端能用,说明节点没问题;手机客户端连接失败,就是手机与节点之间的网络传输问题。很简单的测试方法就是,手机浏览器上伪装网站能否正常打开?

      1. manbuz说道:

        @言小五 问题找到了,是v2rayng 里配置的端口错了【流汗】

  6. 左手说道:

    楼主你好,我在v2ray.fun面板安装的时候出现报错,之后打开v2ray.fun面板也呈现空白。你在之前更新4.3.0步骤,用于解决v2ray.fun面板空白问题。但是现在安装后etc\v2ray\这个文件夹不存在,用不了你的方法直接修改config文件

    1. 言小五说道:

      @左手 根据你的描述,很可能v2ray.fun面板在安装过程中没有执行v2ray主程序的安装。可以用官方脚本安装,地址: https://github.com/v2fly/fhs-install-v2ray/blob/master/README.zh-Hans-CN.md 。补充一下,这个脚本安装之后,v2ray的config.json路径是 /usr/local/etc/v2ray/config.json

      1. 左手说道:

        @言小五 感谢楼主,再尝试用官方脚本安装之后,然后通过直接修改配置文件的方式成功安装

  7. vanliss说道:

    楼主你好~我之前有按你这个教程成功配置过VPS+WS+TTL的,但我现在又重新安装了一次VPS,请问,安装完v2ray.fun后,登陆v2ray面板-》运行状态、服务器IP全是空的,选修改连接,协议类型也是空的,修改端口也是点不了的,请问是什么原因啊?vps装的是Centos 7 x86_64,Nginx1.15/1.18/1.19都安装过,这一步我重装了3次VPS都是一样。另外在宝塔配置完SSL证书,也是连接不到HTTPS,证书品牌显示的是CloudFlare,有效期到2035年的,这两个问题怎么解决?望指教谢谢

    1. 言小五说道:

      @vanliss v2ray.fun面板空白可能是v2ray.fun面板安装的时候出现报错,跟Nginx版本没啥关系。
      文章宝塔里面配置的本身就是CF的证书,是可以HTTPS连接的,只是会显示证书不对而已;这个证书是用于CF的CDN与vps之间连接的,本身就不是普通的SSL证书。这个并不是问题。
      (补充:文章于2020年08月13日更新了4.3.0步骤,用于解决v2ray.fun面板空白问题。)

  8. manbuz说道:

    hi,博主好,最近想升级一下服务器端的v2ray,之前是全部照 着这一篇文章建立的服务器,但是现在想升级不确定升级代码具体是哪一段?,因为对这个代码一窍不通,所以,感谢哈

    1. 言小五说道:

      @manbuz 我个人是只要能用,就不升级。
      如果要升级,方法1、按文章第4步骤重新再操作一遍;方法2、备份/etc/v2ray/config.json,用v2ray官方脚本更新,然后再手动编辑config.json。

      1. manbuz说道:

        @言小五 近期v2ray被发现存在漏洞 │v2ray的TLS流量可被简单特征码匹配精准识别 个人隐私和VPS存在安全隐患 请尽快修复 6月初网上说发现的一个tsl的漏洞,所以升级看看

        1. 言小五说道:

          @manbuz 上一条回复中我说了我个人只要能用就不升级而已。升级不升级在于你自己。

  9. yc说道:

    博主大佬你好,按照你的教程操作成功了,感谢。
    我只使用了几分钟在 cf 上就有 100 多的请求量了(比我的博客日常请求还多)
    有点怕怕,话说 cf 免费支持多少 ssl 请求啊,会不会到上限给限制了。

    1. 言小五说道:

      @yc 安心用,Cloudflare免费就是免费,不像国内某些厂商。

  10. 幽灵说道:

    不行,做了之后,在全局下访问伪装域名是https,访问 …/ws/ 是Bad Request,一旦关掉代理,就没办法打开域名了,v2ray上也是一直报超时,尝试没有用宝塔面板来做最后也是一样的结果。。。检查了配置应该也没有哪儿有问题。
    另外,我发现在宝塔调整配置文件加上了【location /ws …】之后,v2ray的面板没办法正常登陆了,在ssh里查看面板是在正常运行的,博主有遇到这样的情况么?

    无法打开v2ray面板的问题已解决,但是还是没办法解决挂着全局可以打开网站,不挂就不行的状况。。。
    挂着代理全局,浏览伪装域名就是:恭喜, 站点创建成功!站点为https,浏览伪装域名/ws/ 就是Bad Request,如果关掉代理,伪装域名就打不开了。

    v2ray配置好之后尝试也确实没办法正常使用。
    v2ray客户端报错:
    [Warning] failed to handler mux client connection > v2ray.com/core/proxy/vmess/outbound: failed to find an available destination > v2ray.com/core/common/retry: [v2ray.com/core/transport/internet/websocket: failed to dial WebSocket > v2ray.com/core/transport/internet/websocket: failed to dial to (wss://**.**.**/ws/): > dial tcp *.*.*.*:443: i/o timeout] > v2ray.com/core/common/retry: all retry attempts failed
    v2ray服务端log:
    [Info] v2ray.com/core/transport/internet/websocket: failed to convert to WebSocket connection > websocket: the client is not using the websocket protocol: 'websocket' token not found in 'Upgrade' header

    1. 言小五说道:

      @幽灵 你已经解决的部分,我这里就不说了。我就两个问题:
      1、你ping域名,显示的是vps的IP还是CDN的ip?如果是vps的IP,要么是你没打开Cloudflare DNS里面的代理,要么就是打开了但是还没生效,这种情况等待DNS代理生效就行了。
      2、如果ping域名显示的是CDN的IP,那么能ping通么?如果ping通了,则是你服务端设置有问题;如果ping不通,那么恭喜你中奖了,这个IP被封了。

      1. 幽灵说道:

        @言小五 谢谢回复!
        1、第一个已解决的问题,是由于重启v2ray服务之后,面板保持初始关闭导致的,如果有小伙伴之后需要再次使用的话,需要在ssh中重新开始v2ray的面板,这个你也可以考虑在文章中写一下。
        2、关于后面的问题,发现确实是由于CDN没有生效导致的,CDN生效后正常!非常感谢提供的解决方案!

        1. 言小五说道:

          @幽灵 如果你之前有安装过类似v2ray.fun的其它一键脚本,在没有卸载干净并清理系统启动项的话,会导致在重启v2ray服务之后在命令行输入v2ray不起作用(提示-bash: xx: No such file or directory),这是因为v2ray.fun面板的命令行控制台没有接管v2ray命令的启动项,比较典型的就是卸载233boy大神的一键脚本之后,100%会出现这个问题;但是v2ray主程序以及v2ray.fun面板都是是可以启动的;因为不管用什么脚本,v2ray主程序的安装目录和启动项都是调用的官方默认的;v2ray.fun面板有单独的启动项,跟其它脚本没有冲突。
          另外,我在文章里面写了,要将系统重装至centos7,既然有网友不接受我的建议,那么出现一些错误,不是我的责任。

          1. 幽灵说道:

            @言小五 他们如果不卸载干净,或者不重装就是他们的事儿的咯~~你已经告诫过最好重装了[手动doge]
            我指的需要启动面板,是指5000(默认端口)的面板启动,我这边重启了v2ray服务之后,需要输入v2ray,在v2ray.fun中选中选项1,启动面板,不然的话,就会出现在浏览器中面板打不开的情况了(虽然按你的说法,面板应该是独立于v2ray服务的),而且用的是新鲜出炉的干净centos7,这点我也比较迷就是了…………

            1. 言小五说道:

              @幽灵 我特意花不少时间研究了一下脚本源码。说一下我个人不负责任的猜测:
              脚本用的supervisor来守护进程的,如果发现面板相关程序挂掉了,就会执行脚本重新启动相关服务;但是不排除有些商家默认的系统跟这个supervisor有存在不兼容的情况。我拿两个不同商家的vps同时装上环境,分别重启了至少三次,面板都是正常启动的。

              1. 幽灵说道:

                @言小五 有可能,我不是做开发工作的,所以这个我也不好说是为啥,只能描述显现了。但是也并不影响正常使用,毕竟还可以手动的开启面板入口。而且就评论区的留言看来,估计我这样的情况也是小概率事件,不然应该会有大量反馈才对的。

              2. 幽灵说道:

                @言小五 另外,冒昧的请问一个其他相关的事情。
                使用cf的代理,移动宽带的使用情况很差,就目前我观察的现象看来,似乎主要是在发起连接请求的时候响应速度慢,经常超时,而连续传输数据时的速度还是很快的。
                例如:在油管看视频,进入视频页,以及一开始视频加载的时间特别长,而实际开始播放后,缓冲的速度非常快。

                请问针对这样的情况,有什么改善的办法是值得分享,或者博主愿意分享的么?
                例如看到一些其他的博主提到,关于修改本地DNS克服DNS污染,以及选择合适的DNS等方式来优化访问频繁超时的问题。
                或者有些什么其他的服务器技术手段,可以改善使用cf代理导致的迟钝。

                1. 言小五说道:

                  @幽灵 移动是墙中墙。
                  按目前三大运营商情况来看,使用CDN的情况下,联通最快,电信其次,移不动。解决办法也有,不过我用不上,懒得去弄。关键词“Cloudflare自选IP”。
                  终极解决办法:使用移动优化线路vps,直接跑v2ray+ws+tls。
                  CDN终归到底只是一个vps的IP被封的备用方案而已。

                  1. 幽灵说道:

                    @言小五 好的! 多谢提点!我去找找去~

                  2. 幽灵说道:

                    @言小五 如果博主乐意的话,很希望交个朋友,我喜欢收集灵魂,特别是有趣的那种
                    微信:********
                    QQ:******(用的贼少)

                    1. 言小五说道:

                      @幽灵 抱歉哈,对于一个写这种文章的人来说,知道我信息的人还是越少越好。

                  3. 幽灵说道:

                    @言小五 今天才来尝试博主提供的方案,使用自选IP之后确实连接速度立刻就上去了,只不过域名解析走了国内的,阿里云买的域名,于是直接用了阿里云的智能解析,接的cloudflare国内的合作方笨牛的托管,心里总是觉得很危险啊,哈哈哈哈~ 虽然照理来说套了CDN应该是很安全了~~
                    再次感谢博主厚爱~ 学习了!

                    1. 言小五说道:

                      @幽灵 笨牛很多人用,号称只接入解析不存储任何数据,理论上不存在安全性问题。如果IP解封了,还是直连最安逸。

  11. 幽灵说道:

    宝塔面板在设置ssl证书的时候,可以使用Let’s Encrypt直接申请免费证书,可以节省很多复杂的手动操作

    1. 言小五说道:

      @幽灵 如果你不想使用Cloudflare的CDN中转,直接使用Let’s Encrypt的三个月免费证书就行了;如果你想一直使用Cloudflare的CDN中转,那么是不是每三个月,关掉CDN中转,再申请Let’s Encrypt的证书,然后再打开中转??
      我写这篇文章的目的,不是为了让使用这种方式的网友们在三个月之后又来找我说连不上了,该怎么解决?

      1. 幽灵说道:

        @言小五 有道理,不过用Cloudflare的证书就是有之前有人回复说的提示非安全的问题,Let’s Encrypt的没有而已,从便捷的角度来说Cloudflare是会更方便一些

        1. 言小五说道:

          @幽灵 在点亮Cloudflare的小黄云之后,也就是打开CDN的代理之后,不存在提示非安全的问题。这个15年证书就是用来CDN连接vps的,而不是用来直接面向浏览器的。

          1. 幽灵说道:

            @言小五 原来如此~~

  12. fanning说道:

    实在是找不到可用的免费节点啊,卡在这一步没办法继续搞,有老哥借我用半小时吗

    1. 言小五说道:

      @fanning 实在抱歉。

  13. 小伙子说道:

    你好,这个好像用不了TLS,我一直无法获取证书

    1. 言小五说道:

      @小伙子 你应该描述清楚,是无法获取Cloudflare的证书还是别的什么?

      1. 小伙子说道:

        @言小五 谢谢,自己搞定了,我没理解清楚,请问有必要再装BBR加速吗?

        1. 言小五说道:

          @小伙子 建议bbr还是要装的,根据vps线路情况自行测试bbr版本。

  14. 魏寅璐说道:

    您好,我按照您的方法做完了之后好用了一两分钟,之后又连不上了,我ip被墙了的,请问怎么办

    1. 言小五说道:

      @魏寅璐 仔细看一下本文开头的前言三。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注