看到另一个帖子 ( /t/898479 ),我才发现原来是中国移动默认禁止UDP主动入站,个人实测连IPv4都受影响,难怪我用iperf3无法从电信家宽发UDP数据给移动手机热点后面的笔记本电脑。
我造这个试验品主要是为了满足两个场景的需求:
因为目前并没有单独的工具可以同时适应以上两个场景(实在不喜欢多套工具同时组合起来用,增加复杂程度的同时又降低稳定性),所以就自己造一个来试试。而且墙内互联用VPN回家在大多数情况下可以不理会拥塞丢包(对我来说是这样),那就没必要使用众多的承载协议了(比如QUIC),因此就只做最普通的数据包转发。
一开始就忘了说,这个试验品同时还自带NAT打洞的功能。
反正我是没发现部分楼层提到的Hysteria 有提供STUN的NAT打洞功能。
正如我前面提到过的,我个人不喜欢多种工具套娃式组合,再在Hysteria 前面套一个NAT打洞工具等于把事情弄得越来越复杂了。
何况NAT打洞后的端口并不固定,套娃后配置起来十分麻烦,这样我才想到不如尝试在客户端那边自动重连。
1
unnamedhao 2022-11-27 19:44:22 +08:00 via iPhone
纯好奇,udp 怎么伪装成 tcp ,ip 包的类型字段就不同
|
2
wangyucn 2022-11-27 19:52:00 +08:00
滋瓷
|
3
cnbatch OP @unnamedhao 可以问问你楼下的这位资深 UDP 限速破解专家,他就是 udp2raw 的作者
@wangyucn 果然是资深 UDP 限速破解专家,平时几乎不出现,只要有人发帖的内容跟运营商的 UDP 限速相关就基本会出现😆 |
4
XiaoxiaoPu 2022-11-27 21:42:39 +08:00
跳端口频率较快时,可能会给光猫等设备的 NAT 造成较大压力,导致其他使用 UDP 的应用(例如即时语音、视频)出现网络问题
|
5
XiaoxiaoPu 2022-11-27 21:57:44 +08:00
把一个 UDP session 拆成多个是不是也可能有效果?
|
6
swxk521 2022-11-27 22:03:15 +08:00 via Android
hysteria 的端口跳跃,和你说的功能一样吧,用这好多了
|
7
cnbatch OP @XiaoxiaoPu
@swxk521 其实我是受到 v2ray 的启发,v2ray 很早就支持了 UDP 动态端口的功能,比起 hysteria 和 kcptun 还要早得多。 它们甚至有并行 session 的设置,多条 UDP session 一起来。 只不过它们并非单纯的简单转发,而是另有传输协议( v2ray 用的是 vmess + mkcp ,kcptun 顾名思义就是 kcp ,hysteria 用魔改版 QUIC ),效果自然不一样,它们都可以顺便对抗拥塞丢包。 当然了,多一个选择总没坏处,我就是打算单纯转发数据,因为部分场景不太需要对抗拥塞丢包(比如墙内跨运营商 VPN 回家)。 我个人的使用情况是,联通↔电信这样用的效果不错,这两家运营商互联基本上极少拥塞导致的丢包,倒是特别需要对付 UDP 限速。 一条 UDP Session 拆成多个,这也是个好办法,只要每一条 Session 的数据量不是太大的话,应该也不会被限速策略盯上 |
9
jousca 2022-11-27 23:59:02 +08:00
是个好办法。
我是中移动家宽,其实中移动还好(成都移动),成都电信家宽会这个操作。封 UDP 电信专线不会。 |
10
Zy143L 2022-11-28 00:59:48 +08:00 via Android
目前来看移动 UDP 同网没啥问题
异网流量才有 UDP 限制的毛病 |
11
a9k1n9 2022-11-28 06:06:03 +08:00 via Android
qos 不是以 IP 限制的吗?躲得过初一,躲不过十五~
|
12
benwjrumd 2022-11-28 10:20:28 +08:00 via iPhone
Hysteria 也支持咯
|
13
yulon 2022-11-28 12:33:53 +08:00
按我几年前实验的结果,需要多 IP ,端口只是数据包里面的一个数字,只要发往同一个 IP ,就没多大区别,有时候可能还会变慢,因为多个端口收到数据后要同步与合并
|
14
lly8666 2022-11-28 15:32:20 +08:00 via Android
请问支持动态域名自动解析重连么?
|
16
smartisan2047 2022-11-28 19:17:05 +08:00
@jousca 我成都电信没遇到过封 UDP ,电信-移动跨网 UDP 也没太大问题
|
17
emma3 2022-11-28 20:11:44 +08:00
V2ray 的 mkcp 插件,好像很早就已经支持动态端口了,一直不太知道有什么用。
|
18
cnbatch OP @lly8666 支持,每次更换端口时会自动扫一次。
如果数据一直传输不间断的话,它可以自动跟踪新的 IP ,所以理论上不用动态域名只填 IP 地址也能跟踪新 IP 的变化。 之所以这样做,主要是用于 STUN 给 NAT 打洞的场景,毕竟 NAT 打洞获得的新端口并不固定,这就必须自动跟踪了。 |
19
cnbatch OP @emma3 在 7 楼那里我就提到过是受到 v2ray 的启发,因为我就用这个功能用了很长时间。
好处是爬梯时减少端口被封的概率,也能减轻 UDP 限速的影响。 只不过 v2ray 的方案不太完美,必须指定固定的主端口,一旦主端口被 ban 那就无法通讯。主端口受到严重限速时也会影响更换端口时的稳定性。 影响最大的还是 NAT 打洞,墙内想要打洞互联的话,靠 v2ray 做底层传输就不适合了。 |
20
aru 2022-11-29 10:00:42 +08:00
最后相当于提供了一个 socks5 服务么?
|
21
cnbatch OP |
24
hsly109 2022-11-29 15:47:20 +08:00
請問加密方式是否可以考慮增加 stream cipher 這類加密方式? stream cipher ,也就是流加密 目前用的比較多的有 rc4 ,chacha20-ietf-poly1305 ,xchacha20-ietf-poly1305
希望開發者可以考慮一下,並非所有 client 設備或者伺服器默認都啟用或者有 aes-ni 這個指令集 |
25
2000wcw 2022-11-29 16:23:44 +08:00
Hysteria 最新版支持端口跳跃,很好用。
|
29
huangjinjiang20 2022-11-30 17:41:28 +08:00
客户端中的 destination_address 是填服务端的地址?
|
30
cnbatch OP @huangjinjiang20 是的
|
31
lly8666 2022-11-30 23:06:48 +08:00
./udphop: error while loading shared libraries: libbotan-2.so.19: cannot open shared object file: No such file or directory
debian10 已经安装了 libbotan2-dev |
32
lly8666 2022-11-30 23:40:40 +08:00
libbotan-2.so.19 解决了,debian 安装的是 libbotan-2.so.9
liburing.so.2 这个在 debian 里找不到 |
34
hsly109 2022-12-01 20:31:48 +08:00
debian 11 還是不太行 那個 libbotan 版本 2.so.9 是 debian LTS buster 的 package ,2.so.19 是 testing 的……我是 stable bullseye ,剛好卡在中間
|
35
cnbatch OP @hsly109 针对最新 Debian 11 弄了个 2.17 的版本,应该够用的了。
原本我是打算全部以 static linking 的方式发布二进制的,奈何 Linux 版本的 Botan 只有动态库方式能用,静态库几乎反倒没法用。其他平台却可以正常用静态库。 我刚刚去看了下作者本人对开发环境的描述 ( https://botan.randombit.net/handbook/support.html ),Linux 是主力,然后是 Windows ,剩下的都靠 Github 自动化工具。既然 Linux 是作者的主力平台,使用起来却最“拉跨”,实在费解。 |
36
lly8666 2022-12-03 09:10:34 +08:00 via Android
debian10 还是跑不起来,一些依赖版本不对
|
37
Neur2n 2022-12-09 17:08:30 +08:00
看 udp2raw 的文档,服务端似乎是要搭建在 VPS 上,udphop 也需要这样吗
|
39
cnbatch OP @Neur2n udphop 并非一定要 VPS ,我自己就没把 udphop 放在 VPS 上,而是放在路由器(服务端模式)和自己的电脑(客户端模式)
|
41
cnbatch OP @Neur2n 还不至于复杂到需要文档的地步吧
目前位于 Readme 的介绍就是完整的功能介绍了,可以配置的选项都写在了表格内 |
42
sbilly 2023-02-03 10:16:41 +08:00
UDP 国内环境太恶劣,QoS 不是基于会话是基于源 IP 的就没戏了。
TCP 打洞成功率太低了。 |
43
coolchen112 2023-10-05 17:13:05 +08:00
你好题主,看了你的项目表示很感兴趣,我司最近正在招聘相关内核开发人员,不知道是否有机会聊聊? V2EX 上未找到私信功能,有可能的话希望可以邮件联系我 x#betaidc.com 我司目前开发人员 base 杭州。
|
44
meteora0tkvo 2023-11-06 17:40:29 +08:00
大流量跑 udp ,电信运营商直接把 ip 地址拉黑,任凭怎么换端口都没用
|
45
juzisang 179 天前
额,有个疑问,我看描述有说如果服务端位于 NAT 后方,然后提供了 stun_server 配置,没看懂这个是做什么的。
服务端都在 NAT 后面了,客户端怎么连接,这个 stun_server 配置是用来做什么的呢? 我现在就是服务端和客户端都在不同的 NAT 后面,想让他们能够互相通信,好像现在是做不到的? |
46
cnbatch OP |