搬瓦工vps的IP被封 V2Ray+WebSocket(ws)+TLS+Nginx+网站+Cloudflare

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

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

前言二:有不少网友问我,“博主,我只有一台vps,搭建了网站和v2ray,现在IP被封了,网站打不开,v2ray 也连不上了,怎么办?”我之前都是建议直接放弃其中一个环境,也就是说要么挽救网站,要么挽救v2ray,然后坐等解封就行了;但是,时不时还是有网友留言或者发邮件来问我。其实用谷歌搜索相关关键字,很容易找到相关教程;好吧,我还是写一下吧,为此,特意找了一台vps来搭建环境,使用Cloudflare中转网站及v2ray的流量。

本文的方式是在vps上安装宝塔面板并搭建Lnmp网站环境,网站搭建好之后,使用Nginx对V2ray流量进行分流,通过网站来伪装V2ray的流量。假如vps的IP被封了,那么可以利用Cloudflare中转网站以及V2ray的流量,来达到访问网站以及科学上网的目的。

文中“网站”均以WordPress为例,其它CMS框架也可以参考。

PS:我个人不建议用这种方式,如果IP没有被封,我不建议在同一台vps上搭建网站和v2ray;如果IP被封了,我依旧建议挽救其中一个就行了。

以下正文:

准备工作如下:
1、将域名解析到vps的IP;

1.1、如果IP被封了,需要将域名的DNS服务器更换成Cloudflare的DNS服务器,并且把需要解析的域名解析到vps的IP上,注意:小黄云要成灰色状态,也就是DNS only;
(参照《搬瓦工vps的IP被封(4) Cloudflare+V2Ray+Caddy+WebSocket+TLS》
1.1.1、本博客使用的域名是在NameSilo注册的,输入本站域名“eveaz.com”或者“eveaz”可以直减1美刀;阿里云域名注册、其它渠道或者免费域名请自行搜索。
1.1.2、没注册域名的网友或者在NameSilo上注册了域名但是不会更改NS服务器,请移步《言小五系列教程之NameSilo域名注册&续费&管理》

1.2、如果IP被封了,需要准备一个没有被封IP的vps或者一个可用的上网节点用于SSH连接vps以及打开宝塔面板;参考下方文章:
《搬瓦工vps的IP被封(2) Xshell如何设置代理SSH》
《搬瓦工vps的IP被封(5) Xshell如何使用V2RayN客户端代理SSH连接vps》
《搬瓦工vps的IP被封(6) Xshell如何使用ss客户端代理SSH连接vps》
1.2.1、如果找不到合适的可用节点,又或者不想为了vps的IP被封的事情来回折腾,建议购买Just My Socks搬瓦工自建机场的ss节点,无需担心IP被封,CN2 GIA线路,月付2.8刀起;优惠码:JMS9272283
Just My Socks四个方案如下:
方案1:月付2.88刀/年付28.88刀/100G月流量/1G带宽/限制3个设备
方案2:月付5.88刀/年付58.88刀/500G月流量/2.5G带宽/限制5个设备
方案3:月付9.88刀/年付98.88刀/1T流量/5G带宽/不限制设备
方案4:月付48.99刀/年付489.99刀/5T流量/5G带宽/不限制设备
方案5:月付29.99刀/年付299.99刀/100G流量/100M带宽/限制3个设备/日本节点
1.2.2、《言小五系列教程之搬瓦工Just My Socks详细购买及使用教程&优惠码

2、将vps重装至Centos7;
2.1、博主使用的是”BandwagonHOST(搬瓦工)“的vps,优惠码 BWH3HYATVBJW 。目前最具有性价比的vps是(CN2 GT线路洛杉矶机房,1核1G,20G SSD,流量1T/月)
2.2、购买BandwagonHOST(搬瓦工)的vps请移步到
言小五系列教程之BandwagonHOST(搬瓦工)的vps购买及使用教程&优惠码
2.3、需要代购请发邮件至cocofive#foxmail.com。

步骤如下:
3、vps上安装宝塔面板,安装Lnmp环境,搭建WordPress网站;(这里只叙述过程,不作演示!!!)
3.1、SSH连接上vps,安装宝塔面板6.x;
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

##如果IP被封了,建议用下方的宝塔官方美国备用节点:
yum install -y wget && wget -O install.sh http://128.1.164.196:5880/install/install_6.0.sh && sh install.sh

3.2、登陆宝塔面板,一键安装Lnmp环境:根据vps配置自行选择,例如:
Nginx 1.15/MySQL 5.5/PHP 7.0/pure-Ftpd 1.0.49/phpMyAdmin 4.7

3.3、搭建WordPress网站并申请https证书,确保网站能够通过 https://域名 打开,宝塔网站管理SSL选项开启强制HTTPS;

4、安装配置V2ray;
4.1、SSH里面运行脚本安装V2ray.fun面板:(安装完毕之后在SSH界面输入 v2ray 即可管理面板)

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
主端口:10086;(端口号自行修改,后面会用到)
UUID:默认;(可点击旁边的按钮生成)
加密方式:(auto);
传输协议:WebSocket;(点击修改的时候会提示输入域名,下方有写)
TLS:默认关闭;(默认的就是关闭状态,别管它!!!)
Mux.cool:默认关闭;(默认的就是关闭状态,别管它!!!)


4.3.1、修改传输协议为 WebSocket 时会提示输入域名;

我这里添加域名是v2ray.eveaz.com,自行根据需要更改;然后点击确认,之后v2ray.fun面板页面可以关掉了;

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

"inbound": {
"streamSettings": {
"network": "ws",
"wsSettings": {
"path": "",
"headers": {
"Host": "v2ray.eveaz.com"
}
}
},
"protocol": "vmess",
"port": 10086,
"settings": {
"clients": [
{
"alterId": 100,
"security": "auto",
"id": "375bc108-8f08-45e0-8478-0120a4864aff",
"level": 1
}
]
}
},

修改后:

"inbound": {
"streamSettings": {
"network": "ws",
"wsSettings": {
"path": "/ws/",
"headers": {
"Host": "v2ray.eveaz.com"
}
}
},
"protocol": "vmess",
"port": 10086,
"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:10086; (这一行中的端口10086跟前面4.3步骤在V2ray.fun面板修改的主端口一致)

location /ws {
proxy_redirect off;
proxy_pass http://127.0.0.1:10086;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
}

截图如下:

6、宝塔面板 “安全” - “防火墙” 放行放行V2ray主端口也就是举例中的 10086 ;

7、在宝塔面板里面重启Nginx,在SSH里面重启V2ray;重启V2ray的命令如下:

service v2ray restart

8、Win系统使用V2rayN客户端,添加VMess服务器,按照步骤4.4.1中的相关参数填写;
强调一下,参数参照下方截图中填写,端口是443!!!

9、如果IP没有被封,那么按步骤操作的话,在v2rayN客户端面板更新v2rayCore至4.20.0、更新PAC规则、启动系统代理就可以科学上网了;

10、如果IP被封了,不用Cloudflare的CDN是无法科学上网的;那么继续按步骤操作;
10.1、在Cloudflare的域名控制台,Crypto选项(“Crypto”选项卡也叫“SSL/TLS”,图标没变,选项卡位置也没变。)确认 Universal SSL Status 状态为 Active Certificate;SSL方式改为Full;

10.2、在DNS选项下面把域名解析的小黄云点亮;

10.3、这个时候,v2ray以及网站已经开始走Cloudflare的CDN流量了,意思就是说可以科学上网了,网站也可以打开了;但是,还需要对CDN的缓存做一些设置,才能让WordPress网站的后台能够正常访问;(之所以需要设置,是因为如果不设定规则的话,后台wp-admin页面会被CDN缓存,那就只能访问网站前台而无法进入后台了);
10.4、点击Page Rules 进入缓存设置页面,点击右方的 Create Page Rule 创建页面规则;

10.4.1、点击Create Page Rule会弹出一个小窗口,有一个输入域名的页面;

10.4.2、输入域名之后,点击 Add a Setting 新增规则;注意:免费版只能添加三个规则;
10.4.3、第一个规则,首页缓存规则:https://v2ray.eveaz.com/* ;永远在线 Always Online:On;缓存等级 Cache Level:Cache Everything (首页全部缓存);缓存时间 Edge Cache TTL:a month(一个月);点击 Save and Deploy 保存并部署;

10.4.4、第二个规则,后台缓存规则:https://v2ray.eveaz.com/wp-admin* ,缓存等级 Cache Level:Bypass,优先顺序级别为默认 First ;点击 Save and Deploy 保存并部署;

10.4.5、第三个规则,评论页面缓存规则:https://v2ray.eveaz.com/*comment-* ,缓存等级 Cache Level:Bypass,优先顺序级别为默认 First ;点击 Save and Deploy 保存并部署;

10.4.6、三个规则添加完成之后是这样的:

10.5、最后一步:在WordPress网站后台安装Cloudflare插件及配置;
10.5.1、在网站后台插件中心搜索Cloudflare,安装并启用;

10.5.2、打开Cloudflare插件设置界面;点击中间的 Sign in here;

10.5.3、进入到插件登陆页面;这里需要用Cloudflare的登陆邮箱及API Key登陆;点击下方的Get your API Key from here;

10.5.4、会弹出一个小窗口,这是Cloudflare的API界面(如果浏览器没有登陆到Cloudflare的话需要输入账号密码登陆一次);点击API Tokens,点击API Keys下方的Global API Key 右边的View;根据提示输入Cloudflare的密码和验证码;

10.5.5、输入Cloudflare的密码和验证码之后API Key就显示出来啦;复制API Key;关闭小窗口;

10.5.6、关闭小窗口之后应该回到10.5.3的登陆页面了(如果没有回到登录页面,就自己走回去-,-),输入Cloudflare登陆邮箱和API Key就进入插件设置界面了;把最下面的Automatic Cache Management 开关点成On状态就行了;意思就是网站内容更新自动更新CDN的缓存;

10.5.7、Cloudflare插件配置延伸:如果你的站点被攻击了,可以在插件里一键开启Cloudflare著名的5秒盾;点击插件右上方的“Enable "i'm Under Attack" Mode” 就行了(没事别点这个5秒盾,开了5秒盾,网站是相对安全了,但是v2ray连接会报错)。

效果如下:

11、v2ray.fun面板在这篇文章中唯一的作用就是方便生成或者修改v2ray参数,并不需要用它来开启tls和Mux.cool。

12、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"
},

文章来源:https://eveaz.com/1104.html

点赞

发表评论

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