使用VPS中转提升网络流量

举个例子:博主拥有一台新加坡的VPS,暂称为VPS2,其本地电信与VPS2之间的网络连接非常差,但VPS2是当地的原生IP,可以畅游Netflix的非自制剧,比如《绝命毒师》(带中文字幕)。遇到这种情况该如何处理呢?好巧,博主还有一台香港VPS,称为VPS1,该VPS的网络非常优秀,本地电信与VPS1之间使用CN2 GIA线路,即使在高峰期也不在话下,适合上网;然而,VPS1并非原生IP,无法解锁和观看Netflix的非自制剧,这可怎么办呢?问题来了:能否通过VPS1号转发流量到VPS2号上,以便能通过VPS1连接VPS2观看Netflix呢?答案是肯定的,只要VPS1和VPS2之间的网络传输质量没有问题即可。

举完例子,来介绍一下两台VPS的情况:VPS1使用的是香港电信的CN2 GIA线路,VPS2则是新加坡的非国内直连线路;VPS1和VPS2之间的延迟大约为35毫秒,直接在VPS1上使用iperf3测试到VPS2的上传和下载速度都可以达到VPS1的带宽极限(这一点十分重要);而当VPS2连接Netflix时,是直接从新加坡本地的CDN获取数据(这个也很关键)。

总结一下:在VPS1上搭建宝塔面板、v2ray、VMess、Websocket完美结合TLS协议,在VPS2上配置v2ray、VMess和TCP;使用在VPS1上搭建的v2ray作为客户端连接到VPS2,这种转发方法可以让所有需要经过VPS1的流量在VPS2上落地,从而实现解锁VPS2的本地流媒体或需要本地IP的功能。在网络上有很多转发教程和工具,这是其中一种,也是比较通用的方法,兼容包括梅林固件科学上网插件等各类客户端。本文主要针对新手,高手请按Alt + F4。

要获取高速VPS和解锁VPS,请前往相关网址查询。

准备工作:确保两台VPS均为新鲜安装的Debian 10系统。

步骤如下:

1、首先在VPS1上安装宝塔面板,并添加Nginx。

2、将域名解析到VPS1的IP地址,访问VPS1的宝塔面板并添加新网站。

3、为网站申请HTTPS证书,

4、在VPS1和VPS2上安装v2ray,使用v2fly官方发布的一键安装脚本,命令如下:

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编辑器首次启动时会提示选择编辑器,选择第一个。打开config.json后,内容初始为”{}”,删除这部分代码并将下面的代码粘贴进入。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
{
"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、将以下代码粘贴进去。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
{
"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、如图,标记的部分需要根据实际情况进行修改,注意以下几点:

1
2
"Host": "hk-sg.eveaz.com" 需要替换为在VPS1上添加网站时绑定的域名。
"address": "sg1.eveaz.com" 需要更改为VPS2的IP地址。

7、编辑VPS1上网站的配置文件,添加如下代码:

1
2
3
4
5
6
7
8
9
10
11
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随系统启动。

systemctl enable v2ray

9.1、此外,其他v2ray的命令包括:

`重启

systemctl restart v2ray

停止

systemctl stop v2ray

禁用开机启动

systemctl disable v2ray

生成新uuid即id

v2ctl uuid`

本文结束。

10、博主试图凑够10条,如果文章内容有错误或者遗漏,望不吝指正,非常感谢。