Proposal: move udpHop to mask#6327
Conversation
|
重写了一遍才发现旧 udphop 存在内存泄露的可能,取决于 close 的时候 recvQueue 是否未取完 今晚再实测一下这个 pr 应该就差不多了 |
slices.Backward 好像把 index 也反过来了,不是 0 开始,位于最后一层的判断冲突,还得基于 6331 再改下 |
wg + salamander 仅 ips hop 正常,仅 ports hop 正常,ips + ports hop 正常 hy + salamander 仅 ips hop 正常,仅 ports hop 正常,ips + ports hop 正常
|
|
|
之前确实除了 hy2 xp3 其他都用不了,重构 wg 后我才发现 wg 内部默认是支持 peer 修改 ep 的,但是因为使用了 udp hub 把这个特性掩盖了
理论上调用了 internet dialsystem 都可以配置这个字段
wrap 是基于已有的连接, |
|
|
|
tcp有状态啊 |
这种迁移的能力利好网络变化的场景,但是主动 hop 确实,现在最小是 5 秒一次,wg 里配置是无法取消 Roaming 的,要主动调用 device 的接口
那首先服务端要支持连接迁移,不是单客户端 hop 就行 |
咳搞串了,我的意思是:啊?这个端口跳跃是把已有连接也迁移了吗? |
|
其实移到 mask 也只增加了一个 wg 可使用,kcp, raw udp 还不行 |
kcp 为啥还不行,服务端没支持连接迁移(发包到新的来源端口)吗?那你写一下吧 |
|
不过也可以利用每条连接都是新 socket 的特性,mask 只做个 dest overwrite 不新 dial,这样 kcp 也可以搭配 ipt 做出类似 hop 的效果 还没想好是新开个 dest-overwrite mask 还是给 udphop 加个 overwrite dest only 配置 @RPRX
|
|
你说的是客户端?但是 KCP 服务端还是得实现往新的来源二元组发包,不然只是上行 hop 了 |
|
纯客户端,就是新连接自动随机 dest,但这个配置项要应用其实应该配在上层 |
|
先集成在了 udphop 里,缺点是暂时无法搭配 dialerproxy,如果以后解决了 dp 里的 b.udp 那这个缺点也可以消除 开启 overwrite only 是全系通用 当然服务端都需要开启 ipt |

还是草案,抽空给新 wg 测试了下 hop,基本没什么问题,移动可以顺便实现两个增益
第二点背景:iptables 在转发 udp 包时可以根据之前五元组修改返回包的 src ip port,所以搭配 ipt 的服务端天然支持 ips hop,只欠客户端
另外除了 ip addr add 还有个便捷添加 /64 的方法,src