标签归档:wireguard

wireguard使用tcp传输简单办法

前言

wireguard是次世代的vpn,它足够安全且小巧,核心代码仅四千余行,并且已合并入了linux内核,效率足够高。

它为了追求高效率低延时,仅支持udp传输。

udp传输不是问题,但国内网络运营商对udp的不待见会导致其时不时断连,这非常影响体验!

解决办法

把wireguard传输使用一些办法转成tcp,牺牲一些效率换来更多稳定。

我使用gost把wireguard转换成ss传输

说说怎么实现

wireguard监听51820端口

服务端: gost -L relay+ss://:1088

节点:gost -L udp://:1088/wireguard_IP:51820 -F relay+ss://服务端IP:1088

wireguard node设置不需要动,peer把对端改成gost监听的1088端口。

简单测试了下性能

测试方法:iperf3测试单条TCP连接速度 持续30秒

实测数据如下

不通过gost转发 54Mbits/sec

[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-30.00  sec   193 MBytes  54.0 Mbits/sec                  sender
[  4]   0.00-30.00  sec   193 MBytes  54.0 Mbits/sec                  receiver

通过gost转发 52.9 Mbits/sec

[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-30.00  sec   189 MBytes  52.9 Mbits/sec                  sender
[  4]   0.00-30.00  sec   189 MBytes  52.8 Mbits/sec                  receiver

性能损耗微小(起码是在我这种家宽上传带宽有限的环境下,没有那种千兆对等的线路,无法实测大带宽环境下的传输损耗。PS:对端为N5105虚拟openwrt软路由,本地为MacminiM1版,gost转发对端使用的是N5105的lxc容器,本地使用的是一台群晖DS218+),在PT高速下载时不会出现断连了。