如何用一台网络好的VPS来中转另一台网络差的VPS的流量
先举个栗子:博主有一台新加坡VPS,姑且称之为VPS2号,博主本地电信与VPS2号之间去程和回程都绕路,直连效果很差,但是VPS2号是当地原生IP,可以解锁Netflix非自制剧,可以看绝命毒师(带中文字幕)呀。那怎么办呢?诶呀,巧了,博主还有一台香港VPS,名为VPS1号,这VPS1号网络超级好,博主本地电信和VPS1号之间去程和回程都是CN2 GIA线路,根本不惧晚高峰,拿来上网太合适了;但是这VPS1号不是原生IP,不能解锁Netflix非自制剧,看不了绝命毒师呀。这可如何是好呢?问题来了:能不能用VPS1号直接转发流量到VPS2号上去呢?能不能通过VPS1连接到VPS2上看Netflix呢?答案是当然可以呀,只要VPS1号跟VPS2之间的网络传输质量没问题就行。
栗子举完了。介绍一下两台VPS情况:VPS1号为香港电信CN2 GIA线路,VPS2号为新加坡非国内直连线路;VPS1号和VPS2号之间延迟35ms左右,从VPS1号直接iperf3测试到VPS2号的上传与下载都可以跑满VPS1号的带宽(这个很重要);VPS2号连接Netflix的时候是直接在新加坡本地CDN上获取数据(这个更重要)。
先总结一下:在VPS1号上搭建宝塔面板+v2ray+VMess+Websocket(ws)+TLS,在VPS2号上搭建v2ray+VMess+TCP;使用搭建在VPS1号上的v2ray充当客户端连接到VPS2号,这种中转方法是将所有需要从VPS1上走的流量通过VPS2落地,达到解锁VPS2号当地流媒体或者需要当地IP落地的目的。网上中转教程很多,中转工具也很多,这只是其中一种,也是比较通用的方法,兼容包括梅林固件科学上网插件在内的所有客户端。本文为纯新手教程,大神请按Alt + F4。
高速VPS以及落地解锁VPS请移步到 HostCSR 去查看。
准备工作:确保两台VPS均为新安装的Debian 10系统。
步骤如下:
1、首先在VPS1上安装宝塔面板,并安装Nginx。
2、将域名解析到VPS1的IP地址,打开VPS1的宝塔面板,添加网站。
3、给网站加上HTTPS证书,
4、在VPS1和VPS2都安装v2ray,通过v2fly官方的v2ray一键脚本安装,命令如下:
bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh)
4.1、如下图所示,v2ray安装好了。
5、编辑VPS2上的v2ray config.json配置文件,以nano编辑为例。
nano /usr/local/etc/v2ray/config.json
5.1、nano编辑首次使用的时候有个编辑器选项,选第1个就行了,config.json打开之后里面只有”{}”,删掉,将下面代码全部复制粘贴进去。
{ "log": { "loglevel": "warning" }, "routing": { "domainStrategy": "AsIs", "rules": [ { "type": "field", "ip": [ "geoip:private" ], "outboundTag": "block" } ] }, "inbounds": [ { "port": 10086, "protocol": "vmess", "settings": { "clients": [ { "id": "9efb0601-54d8-4eac-a43a-662fa51fca1a" } ] }, "streamSettings": { "network": "tcp" } } ], "outbounds": [ { "protocol": "freedom", "tag": "direct" }, { "protocol": "blackhole", "tag": "block" } ] }
5.2、如下图所示,里面的port和id是可以自己改的,如果不懂的话就别改了。
5.3、VPS2号上的v2ray config.json配置文件编辑完成之后,按一下Ctrl+O,再敲回车保存,之后按Ctrl+X退出nano编辑。
5.4、启动VPS2号上的v2ray,命令如下:
systemctl start v2ray
5.5、查看VPS2号上的v2ray是否为成功启动状态,命令如下:
systemctl status v2ray
5.6、如果显示如下图所示,则v2ray启动成功。(按Ctrl+C可退出状态查看)
6、在宝塔面板编辑VPS1号上的v2ray config.json配置文件,文件位置如下图所示。
6.1、将下方命令复制粘贴进去。
{ "log": { "loglevel": "warning", "access": "/var/log/v2ray/access.log", "error": "/var/log/v2ray/error.log" }, "routing": { "domainStrategy": "AsIs", "rules": [ { "type": "field", "ip": ["geoip:private"], "outboundTag": "block" } ] }, "inbound": { "streamSettings": { "network": "ws", "wsSettings": { "path": "/ws/", "headers": { "Host": "hk-sg.eveaz.com" } } }, "protocol": "vmess", "port": 10085, "settings": { "clients": [ { "alterId": 0, "id": "8bd3d957-626a-4d62-be7a-5bc272557f00" } ] } }, "outbounds": [ { "protocol": "vmess", "settings": { "vnext": [ { "address": "sg1.eveaz.com", "port": 10086, "users": [ {"id": "9efb0601-54d8-4eac-a43a-662fa51fca1a"} ] } ] } }, { "protocol": "freedom", "tag": "direct" }, { "protocol": "blackhole", "tag": "block" } ] }
6.2、如下图所示,标色的地方是需要按自身实际参数修改的,有几个需要注意的地方:
"Host": "hk-sg.eveaz.com" 这个域名需要改成你在VPS1上添加网站时候绑定的域名。 "address": "sg1.eveaz.com", 这个域名需要修改成你VPS2的IP地址。
7、编辑VPS1上搭建的网站的配置文件,添加如下代码:
location /ws { proxy_redirect off; proxy_pass http://127.0.0.1:10085; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; # Show real IP in v2ray access.log proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
7.1、编辑后的网站配置文件如下图所示:
8、重启VPS1的Nginx服务,参照本文5.4~5.6步骤启动并查看VPS1上的v2ray是否启动成功;若启动成功,则在本地相应的客户端上添加VPS1的v2ray相关参数即可愉快的玩耍了。
9、确定科学上网正常,并且在相关外网的IP查看上看到的是VPS2的IP,那么本文基本上就结束了;在两台VPS上输入下方命令,让两台VPS上的v2ray随VPS系统启动。
systemctl enable v2ray
9.1、另外几个v2ray命令如下:
重启
systemctl restart v2ray
停止
systemctl stop v2ray
禁用开机启动
systemctl disable v2ray
生成新uuid即id
v2ctl uuid
本文完。
10、博主非要凑够10条,如果文章内容有错误或者遗漏的地方,还望指正,谢谢。