[分享]应对运营商 udp 屏蔽和 qos 的解决方案,几乎支持任何 udp 程序,适合 kcptun 和 finalspeed

2017-08-11 18:07:42 +08:00
 wangyucn

专门应对 UDP 封锁和 UDP QoS 的通用解决方案。用 raw socket 把 udp 协议包装成 tcp,模拟 3 次握手,模拟序号,模拟 tcp option,可以让防火墙认为是 tcp 流量;还可以把流量包装成 icmp。支持几乎任何 udp 应用。包括 kcptun 和 finalspeed。支持 openvz。支持 NAT 穿透。稳定。

repo: https://github.com/wangyu-/udp2raw-tunnel ,支持桌面 linux、openwrt、树莓派。

另一个功能是心跳保活、自动重连,自动重连后可以恢复上次的连接,重连后上层连接继续有效,底层掉线上层不掉线。可以有效解各种掉线问题的问题(比如你用 kcptun,就算你拔掉网线重插,或者重新拨号获得新 ip,上层的 kcp 也不会断线)。(功能借鉴自 kcptun-raw )

udp2raw+kcptun step by step 教程:

https://github.com/wangyu-/udp2raw-tunnel/blob/master/doc/kcptun_step_by_step.md

udp2raw+finalspeed step by step 教程:

https://github.com/wangyu-/udp2raw-tunnel/blob/master/doc/finalspeed_step_by_step.md

50481 次点击
所在节点    宽带症候群
76 条回复
linhua
2017-08-12 14:24:15 +08:00
@wangyucn
这扯得就有点远了,当初 因为 kcptun 才写了这个小玩意,不过能力有限,只能凑合着用。不过和 finalSpeed 结合着用还是会断流( kcptun 没问题),然后就改用 bbr 了。

用 docker,网络设置成 桥接网卡 , 应该也可以
iijboom
2017-08-12 15:32:06 +08:00
老夫 iperf3 测速这么多年,都是直接单线程梭哈!能跑满就继续上网,跑不动就下海干活(x
KCheshireCat
2017-08-12 15:44:47 +08:00
@wangyucn #55

如果 fack-tcp 完全工作在 2 层或者 3 层,隧道内部承载真实 TCP 流的话,

就可以让承载的流自己完成拥塞检测和重传.

把这个 fack-tcp 当作 TCP/IP 里的一层,不重复劳动,只完成本职工作.
wangyucn
2017-08-12 16:01:28 +08:00
@iijboom 我这个是 udp2raw+openvpn 测的,只应对 qos,没用 kcptun/finalspeed 这种加速工具,所以只有用多线程才能测出吞吐。 kcptun finalspeed 这种工具通过自定的拥塞 /重传 /ACK 策略可以让单线程达到很高的速度,所以单线程测大概也能反映出信道的吞吐率。

udp2raw+finalspeed 之前我测过一次,移动 20m 带宽,单线程 1.6MByte/s。

@KCheshireCat faketcp 通过 openvpn 承载真实 tcp 确实是让上层承担拥塞和重传的,这种用法里 faketcp 相当于 ip 层的作用。
tys
2017-08-15 11:33:51 +08:00
@pisser 可以用。已测试。
wangyucn
2017-08-15 21:53:34 +08:00
@palxex 预装了 udp2raw 的 openwrtx86 虚拟机镜像已发布,容量 4.4m 。
wangyucn
2017-08-20 14:19:55 +08:00
"用 docker,网络设置成 桥接网卡 , 应该也可以"

@linhua 我看了一下 docker,它只有在 linux 上才是原生的,在 windows 上和 mac 上都是跑在 virtualbox 虚拟机里的。 所以。。还是直接用虚拟机更轻量吧。我在 release 里发布了预装了 udp2raw 的 ova image(容量也是 4.4m),用独立的 virtualbox 可以运行,用安装 docker tools 时自带的那个 virtualbox 应该也行。
has
2017-09-06 01:46:33 +08:00
希望能早日推出 osx 编译版
fwkimi
2017-10-07 19:53:42 +08:00
@wangyucn lz 这几天还能用吗?
fcymk2
2017-12-11 13:12:45 +08:00
win 下要虚拟机好麻烦...
bclerdx
2018-08-07 20:52:35 +08:00
怎么测试被运营商进行了 UDP QOS ?
zhouyut001
2018-12-16 05:31:56 +08:00
老哥,有沒有捐贈🐴
1KN6sAqR0a57no6s
2019-12-19 20:48:27 +08:00
这两天第一次遇到了这个问题。。。试一试你的方法先。
1KN6sAqR0a57no6s
2019-12-19 22:22:59 +08:00
@YuxiangLuo linux 服务端配合 windows(非虚拟机)客户端成功了,遇到的问题是在 powershell 里面 ip 地址要加引号。感谢楼主大佬。
mattx
2021-09-28 19:45:52 +08:00
@wangyucn 求问下 为啥需要 iptables 哈?
fan88
2022-09-11 04:41:00 +08:00
对于 tcp 代理,怎么穿透,有哪些比较好的工具吗

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

https://www.v2ex.com/t/382261

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

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

© 2021 V2EX