跨省跨运营商, wireguard 丢包。wireguard 能否丢包自动重发

48 天前
 yaocf

如题,有没什么好的办法?

题外话,wireguard 不是运行在链路层的么,理论上,它是不是可以做到链路层的丢包重发?然后让运行在上层的网络层无感知?还是说它本来就是支持的?有什么特殊设置?我记得几年之前 wireguard 即使延时很高(几十秒的都出现过),但是 ping 的时候不会出现丢包的。不知道是不是跨省跨网的 qos 增强了,现在 wireguard 隧道里 ping 丢包特别严重。

1864 次点击
所在节点   WireGuard
14 条回复
loveyu
48 天前
udp2tcp
yaocf
48 天前
@loveyu 试过了,包了 TCP 一样,该丢包照样丢。
yaocf
48 天前
@loveyu 不只是 wireguard ,ssh ( scp ,rsync ),都是一样的。
billlee
48 天前
Wireguard 做丢包重发并不能让上层无感知,因为 wireguard 感知到丢包的时候,上层也已经感知到丢包了。两层都做重发只会发一堆重复的包,反而引起问题。

另外,wireguard 运行在网络层。
再另外,网络层也从来都不去做感知丢包这件事。负责丢包重传的是传输层的 TCP.
yaocf
48 天前
@billlee 嗯嗯,确实是我记错了。
surfwave
48 天前
wireguard 是 udp ,包发了不管的。有流控,重连这些的是 tcp 。
Andim
48 天前
也许 OPENVPN 更好用一点 他有 TCP 模式
Tianao
48 天前
楼主需要的是 FEC (Forward Error Correction), underlay 事后重传解决不了 overlay 的体验问题。
Danswerme
48 天前
可以考虑使用云服务器作为中转节点,我之前尝试通过 IPv6 使用 Wireguard 进行虚拟组网,两个路由器位于同一城市,但运营商不同,分别是联通和电信。

在直接使用 UDP 连接时,丢包率约为 20%;引入 udp2raw 后下降至约 8% ,连接稳定性依然不理想。

后来我使用阿里云作为中转,延迟由 12ms 上升到了 60ms ,但丢包问题完全消失了。
zhcode
48 天前
可以换 easytier 试试,可以通过 kcp 或 quic 代理
irrigate2554
48 天前
现在跨省跨运营商真是不好搞,整个多线 VPS 中转吧,哪怕是国外 VPS 直连的话可能都更好。
mofash
48 天前
@yaocf #3 试试 vmess 默认走 uot
NealLason
48 天前
把 wireguard 网卡的 mtu 改成 512 试试。
NewYear
48 天前
如果有多个 tcp 端口同时连,预测丢包,自动重发包会好一些(并切断之前的 tcp )

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1171343

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX