先举个栗子:博主有一台新加坡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请移步到 香港VPS 去查看。
准备工作:确保两台VPS均为新安装的Debian 10系统。
步骤如下:
1、首先在VPS1上安装宝塔面板,并安装Nginx。详请查看下面这篇文章:
新手专用VPS安装宝塔BT面板及使用最新教程 – Debian 10
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条,如果文章内容有错误或者遗漏的地方,还望指正,谢谢。
以下内容为进阶篇
上文讲到有一台新加坡VPS(名为VPS2号)是当地原生IP,可以解锁Netflix非自制剧也适合用来当当地落地IP使用,但是VPS2号与国内之间网络不是直连的,网速不太好;这时候使用一台香港VPS(名为VPS1号)将所有流量中转到VPS2号上,这样既可以看新加坡Netflix,也可以通过新加坡IP访问特定网站。这样的优势是访问某些网站的时候始终是使用新加坡IP,以应对网站限定IP的硬性要求;劣势是,所有中转的流量会在两台VPS上都过一遍,如果只是想通过VPS2号看Netflix,那么这种全中转会耗费VPS2号不必要的流量。那么在VPS1号中转VPS2号的时候,能不能指定只有Netflix流量需要通过VPS2出站,而其它流量直接通过VPS1出站呢?答案是可以的,在上文的基础上做一个指定分流即可。
跟上文相同,在VPS1号上搭建宝塔面板+Nginx+v2ray(VMess)+Websocket(ws)+TLS,在VPS2号上搭建v2ray(VMess)+TCP;跟上文不同的是,在VPS1号搭建v2ray环境的时候,额外设置v2ray内置路由规则以及通过路由规则指定只有Netflix流量走VPS2号出站,其它所有流量都直接在VPS1号上出站。举个栗子:访问Netflix的时候是VPS1号中转到VPS2号,但访问Google/Youtube等之类的直接在VPS1号上就访问到了,这部分流量不需要经过VPS2号。
博主啰嗦两句:如果需要用VPS2号访问所有境外网站,也就是把VPS1号当全中转,这种情况直接参考上文步骤实施就可以了;如果只是想通过VPS2号看Netflix,参考本文步骤实施即可,博主称之为半中转。
高速VPS以及落地解锁VPS请参考本站的 香港VPS 去查看。
步骤如下:
1、准备工作请参考上文;
2、搭建两台VPS1上的环境,参考上文步骤 1 ~ 5.6 步骤;
3、在VPS1号宝塔面板的文件管理编辑v2ray config.json配置文件,见上文 6步骤;将下方代码复制进去。
{ "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" } ] }, "sniffing": { "enabled": true, "destOverride": ["http", "tls"] } }, "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" }, { "type": "field", "outboundTag": "VPS2", "domain": ["geosite:netflix"] } ] }, "outbounds": [ { "protocol": "freedom", "tag": "direct" }, { "protocol": "blackhole", "tag": "block" }, { "tag": "VPS2", "protocol": "vmess", "settings": { "vnext": [ { "address": "sg1.eveaz.com", "port": 10086, "users": [ {"id": "9efb0601-54d8-4eac-a43a-662fa51fca1a"} ] } ] } } ] }
3.1、有几处需要修改的地方如下:
"Host": "hk-sg.eveaz.com" 这个域名需要改成你在VPS1上添加网站时候绑定的域名。
"address": "sg1.eveaz.com", 这个域名需要修改成你VPS2的IP地址。
4、剩余步骤参考 上文 7 ~ 9 步骤。
5、搞定,收工!(写完才发现这篇文章这么短,太省事了。)
6、如果文章内容有错误或者遗漏的地方,还望指正,谢谢。