将远程ip分配给本地(二) 进一步优化

上一篇文章通过Wireguard将远程服务器的ip分配给本地使用实现了通过wireguard加上iptables以及iproute几条命令的方式实现将远程服务器的ip分配给本地使用,但是在那一篇文章中使用的wireguard在中国的网络环境下可能有一些局限性,比如跨境的udp(甚至是国内的大流量udp)可能会被运营商限制、wireguard可能会导致端口、ip被封锁等等。

将远程服务器的ip分配给本地使用(二) 进一步优化

上一篇文章 通过Wireguard将远程服务器的ip分配给本地使用 实现了通过wireguard加上iptables以及iproute几条命令的方式实现将远程服务器的ip分配给本地使用,但是在那一篇文章中使用的wireguard在中国的网络环境下可能有一些局限性,比如跨境的udp(甚至是国内的大流量udp)可能会被运营商限制、wireguard可能会导致端口、ip被封锁等等。我在使用中也遇到了这个问题,如果有公网ip的那台服务器也是国内的机器还好,一但是境外机器,通过这种方式转发之后,经常就没什么速度了,所以我想着还是找一些更好的替代方法,hysteria虽然可以加速连接,但是经过一些测试,当前版本对于udp转发的兼容性貌似还存在着一些问题,于是我又想到了另外一个建立隧道的工具——gost

gost隧道套娃

如果你还是想用 wg较为简单的配置方式,那么可以尝试wireguard in gost的方案,通过tcp隧道来传输wireguard的流量(当然,gost还有很多其他的传输方式可供选择)。

以下操作前提是已经安装、配置好了wireguard,操作很简单:

!!单ip的服务器使用这种方式,需要添加不进行转发的端口供gost使用

1
2
3
4
5
6
7
8
# 在双方机器上都安装gost
wget https://github.com/ginuerzh/gost/releases/download/v2.11.1/gost-linux-amd64-2.11.1.gz
gunzip -c gost-linux-amd64-2.11.1.gz > gost
chmod +x gost
# 服务器上 10000为监听端口、16000为wg连接端口
./gost -L relay+tls://username:password@:10000/:16000
# 本地机器
./gost -L udp://:16000 -F relay+tls://admin:password@example.com:10000

之后修改wg.conf中的Endpoint为 127.0.0.1:16000 并启动即可。

再次提醒,远程服务器如果只有一个ip的情况下需要排除wireguard的连接端口,不进行转发,操作方式可以查看单ip服务器的转发

至于效果,可以看下面这两个图片的对比(最大带宽30M):

使用纯wireguard

gost tun模式

查看文档的时候,发现gost可以创建TUN设备,使用这种方式的话,压根就不需要再套娃或者安装wireguard了,不过这种情况操作会麻烦一些。

注: gost的TUN/TAP隧道默认也是使用UDP进行传输的。

待更新…

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
本站访客数:
使用 Hugo 构建
主题 StackJimmy 设计