全球主机交流论坛

标题: 应对运营商UDP Qos的方案,防止kcptun/finalspeed的UDP被限速 [打印本页]

作者: wangyu    时间: 2017-8-17 11:51
标题: 应对运营商UDP Qos的方案,防止kcptun/finalspeed的UDP被限速
本帖最后由 wangyu 于 2017-8-18 14:38 编辑

应对运营商udp屏蔽或qos的解决方案,几乎支持任何udp程序,可以有效防止kcptun/finalspeed的UDP被限速或断流。

原理是用raw socket把udp协议包装成 tcp,模拟 3 次握手,模拟序号,模拟 tcp option(但是没有流量控制和重传,支持实时/乱序到达),可以让防火墙认为是 tcp 流量;还可以把流量包装成 icmp。支持 openvz。支持 NAT 穿透,稳定。



开源软件,udp2raw,repo: https://github.com/wangyu-/udp2r ... doc/README.zh-cn.md

支持桌面 linux、openwrt、树莓派。也支持Android,需要root。

(如果需要在windows或MacOs上用,可以用release里的预装了udp2raw的vmware/virtualbox镜像,容量只有4.4mb。已经配置成了自动获取ip,开机即用)

udp2raw+kcptun step by step 教程:

https://github.com/wangyu-/udp2r ... tun_step_by_step.md

udp2raw+finalspeed step by step 教程:

https://github.com/wangyu-/udp2r ... eed_step_by_step.md

==update1==
补充下,这个程序本来是我写给自己用的,我这的移动线路到日本vultr本来丢包巨高,有时候nat pipe直接就打不通,写了这个软件之后满速了= =。
==update2==
效果,移动20m宽带,使用前连不上,使用后:


作者: 莫桑比特    时间: 2017-8-17 11:52
占个位置先
作者: Vicer    时间: 2017-8-17 11:53
提示: 作者被禁止或删除 内容自动屏蔽
作者: 余晖脉脉    时间: 2017-8-17 11:53
提示: 作者被禁止或删除 内容自动屏蔽
作者: 可乐呀    时间: 2017-8-17 11:53
看起来好diao的样子
作者: guonning2000    时间: 2017-8-17 11:53
收藏了
作者: yumin9822    时间: 2017-8-17 11:54
大佬厉害
技术贴
作者: yuqyu    时间: 2017-8-17 12:00
谢谢老哥。。
研究下
作者: greatly    时间: 2017-8-17 12:01
大佬厉害
作者: 3到15个字符    时间: 2017-8-17 12:04
dalao巨diao,收藏一波先。
作者: itsme    时间: 2017-8-17 12:07
支持一波。。。。。
作者: 江南好风景    时间: 2017-8-17 12:07
66666
作者: polerfox    时间: 2017-8-17 12:09
厉害了 支持大佬

作者: 风铃    时间: 2017-8-17 12:12
那啥,都模拟tcp三次握手了,为什么不直接用tcp。。。。。。。
作者: wangyu    时间: 2017-8-17 12:17
本帖最后由 wangyu 于 2017-8-17 13:52 编辑
风铃 发表于 2017-8-17 12:12
那啥,都模拟tcp三次握手了,为什么不直接用tcp。。。。。。。


这个模拟的TCP,没有流量控制和重传,支持实时/乱序到达(标准tcp只要丢一个包,后面的包都必须要等这个包的重传完成才能提交给上层,不能实时/乱序到达)。本质上还是个UDP,只是伪装成了TCP。

如果直接用tcp,上层再承载kcp finalspeed这种协议,会有tcp over tcp的问题。底层协议和上层协议都有重传,会产生复杂的交互导致数据包积压,流量稍微一大一点,连接就会卡住。

关于tcp over tcp问题,可以看 http://sites.inka.de/bigred/devel/tcp-tcp.htmlhttps://community.open扶墙.net/open扶墙/ticket/2
作者: bigexiu    时间: 2017-8-17 12:19
diao da .
作者: wewe0607    时间: 2017-8-17 12:20
不明觉厉
作者: Gengsir    时间: 2017-8-17 12:20
楼主威武啊 Orz此贴必火
作者: wenxhwork    时间: 2017-8-17 12:21
火钳留名
作者: KKhost    时间: 2017-8-17 12:27
udp2raw+finalspeed step by step 教程:

https://github.com/wangyu-/udp2r ... eed_step_by_step.md

本教程会一步一步演示用udp2raw+kcptun加速http流量的过程。加速任何其他tcp流量也一样。

看的一脸的懵圈
作者: wangyu    时间: 2017-8-17 12:29
KKhost 发表于 2017-8-17 12:27
udp2raw+finalspeed step by step 教程:

https://github.com/wangyu-/udp2r ... eed_step_by_step.md

不好意思,我打错字了,哈哈,多谢提醒。
应该是演示udp2raw+ finalspeed,已经更正。
作者: vrisen    时间: 2017-8-17 12:29
强大啊
作者: lanleoean    时间: 2017-8-17 12:30
厉害了 马克
作者: KKhost    时间: 2017-8-17 12:34
本帖最后由 KKhost 于 2017-8-17 12:35 编辑
wangyu 发表于 2017-8-17 12:29
不好意思,我打错字了,哈哈,多谢提醒。
应该是演示udp2raw+ finalspeed,已经更正。 ...


安装
下载好udp2raw的压缩包,解压分别解压到服务器和本地的虚拟机。

https://github.com/xtaci/kcptun/releases


表示继续看得懵了...udp2raw的压缩包

https://github.com/wangyu-/udp2raw-tunnel/releases
???
作者: ljm1447669873    时间: 2017-8-17 12:36
这个大佬厉害
作者: 靓坤    时间: 2017-8-17 12:38
技术贴要顶
作者: wangyu    时间: 2017-8-17 12:38
本帖最后由 wangyu 于 2017-8-17 16:21 编辑
KKhost 发表于 2017-8-17 12:34
安装
下载好udp2raw的压缩包,解压分别解压到服务器和本地的虚拟机。
https://github.com/xtaci/kcptun/r ...


好尴尬= =。 多谢大佬提醒。

这个教程是在udp2raw+kcptun的那个基础上改过来的,有些地方漏改了= =。我再检查几遍。

教程的演示过程,是我亲自操作截图的,可以成功的,要有信心= =。
作者: burstkong    时间: 2017-8-17 12:43
mark
作者: KKhost    时间: 2017-8-17 12:49
本帖最后由 KKhost 于 2017-8-17 12:56 编辑
wangyu 发表于 2017-8-17 12:38
好尴尬= =。 多谢提醒。

这个教程是在udp2raw+kcptun的那个基础上改过来的,有些地方漏改了= =。我再检 ...


真心看不懂你写的东西逻辑感觉 东一句西一句
2.在服务器启动udp2raw server

要增加执行的权限才行吧?

另外为了使用它我还需要在本地电脑装虚拟机
3.在本地的虚拟机上启动udp2raw client ,假设服务器ip是45.66.77.XX

本地电脑开着虚拟机,然后再?
4.在本地windows,按图配置好finalspeed的客户端

懵了,这个需要带这么多套子。。。是我没看懂还是根本不需要本地还要安装个虚拟机?
作者: wangyu    时间: 2017-8-17 12:54
本帖最后由 wangyu 于 2017-8-17 16:21 编辑
KKhost 发表于 2017-8-17 12:49
真心看不懂你写的东西逻辑感觉 东一句西一句
2.在服务器启动udp2raw server


多谢大佬批评指教= =。

这个教程我是用root账号演示的,直接执行就行。如果是非root,用sudo就可以了。


作者: wangyu    时间: 2017-8-17 13:00
本帖最后由 wangyu 于 2017-8-17 13:19 编辑
另外为了使用它我还需要在本地电脑装虚拟机
3.在本地的虚拟机上启动udp2raw client ,假设服务器ip是45.66.77.XX

本地电脑开着虚拟机,然后再?
4.在本地windows,按图配置好finalspeed的客户端


就是要本地电脑开着虚拟机,然后在windows运行finalspeed客户端。因为这个程序用的raw socket在windows上支持得不好,所以必须要有台linux才可以。如果你有openwrt路由器或者树莓派,用起来就自然很多了。
作者: dream7758521    时间: 2017-8-17 13:03
提示: 作者被禁止或删除 内容自动屏蔽
作者: wangyu    时间: 2017-8-17 13:06
另外为了使用它我还需要在本地电脑装虚拟机

如果你没有openwrt路由器或者树莓派,暂时是要安装虚拟机的了。我提供了4.4mb的安装了udp2raw的虚拟机镜像。你从网上下个vmplayer(只有75mb)或者virtualbox(118mb),加载这个镜像,开机启动就可以了。一共只需要下载安装个100mb左右的东西,10分钟可以搞定。。
作者: wangyu    时间: 2017-8-17 13:10
本帖最后由 wangyu 于 2017-8-17 13:59 编辑
懵了,这个需要带这么多套子。。。

本来用kcptun/finalspeed+ss已经是2层套子了。udp2raw就是再加1层套子,提供把udp流量通过tcp收发的功能。

其实只加了1层套子呀。只是windows上没有原生客户端,要用虚拟机,才显得麻烦了点。
作者: bios12567496    时间: 2017-8-17 13:48
大佬啊!
作者: phyrOY    时间: 2017-8-17 13:50
大佬厉害
作者: darksheen    时间: 2017-8-17 14:05
又来了个大神,前来膜拜
作者: helaobibi    时间: 2017-8-17 15:46
楼主厉害啊,感谢分享,我家有个刷了梅林的路由器,请问有没有安装的办法?
作者: pifu    时间: 2017-8-17 16:15
大佬厉害了
作者: yousihai    时间: 2017-8-17 16:28
dalao厉害,必须顶
作者: plyu007    时间: 2017-8-17 16:32
大佬牛逼,先顶再看看
作者: uuis    时间: 2017-8-17 17:06
大佬牛逼,好久出windows 客户,服务端??
作者: zcm135246    时间: 2017-8-17 17:12
大佬厉害,马一个
作者: skywing    时间: 2017-8-17 17:15
后排膜一下大佬
作者: ming997hk    时间: 2017-8-17 17:51
楼主,请问斐讯K2的MT7620A处理器应该用哪个文件啊?
作者: wangyu    时间: 2017-8-17 17:59
ming997hk 发表于 2017-8-17 17:51
楼主,请问斐讯K2的MT7620A处理器应该用哪个文件啊?

这个cpu是mips的。 你可以试一下udp2raw_ar71xx,看兼容不兼容。如果不兼容,就要自己编译一下了。
作者: Yankee    时间: 2017-8-17 18:08
先膜一个~

linux服务端需要设置规则drop RST嘛?
作者: wangyu    时间: 2017-8-17 18:26
本帖最后由 wangyu 于 2017-8-17 18:42 编辑
Yankee 发表于 2017-8-17 18:08
先膜一个~

linux服务端需要设置规则drop RST嘛?


不用手动加。只要不是android,用教程里面的命令(带-a选项),iptables规则会自动加好。
作者: wangyu    时间: 2017-8-17 18:30
helaobibi 发表于 2017-8-17 15:46
楼主厉害啊,感谢分享,我家有个刷了梅林的路由器,请问有没有安装的办法? ...

可以的。梅林底层也是linux(貌似就是openwrt?)。前提是要懂命令行、ssh、iptables这些。
作者: ming997hk    时间: 2017-8-17 21:10
wangyu 发表于 2017-8-17 17:59
这个cpu是mips的。 你可以试一下udp2raw_ar71xx,看兼容不兼容。如果不兼容,就要自己编译一下了。 ...

好的,多谢大佬
作者: hdown    时间: 2017-8-18 09:33
本帖最后由 hdown 于 2017-8-18 09:34 编辑

感觉不靠谱,不用。
tcpkun好不容易把tcp转成udp,你现在又把udp转回tcp,坑爹呢,摔。
作者: ming997hk    时间: 2017-8-18 09:44
hdown 发表于 2017-8-18 09:33
感觉不靠谱,不用。
tcpkun好不容易把tcp转成udp,你现在又把udp转回tcp,坑爹呢,摔。 ...

只能说你太无知,完全没有理解作者做的东西的原理以及用途
作者: dreammes    时间: 2017-8-18 09:53
收藏
作者: winooxx    时间: 2017-8-18 10:10
思考,UDP 扶墙 能不能这么玩
作者: nerlnsqy    时间: 2017-8-18 10:20
顶大佬
作者: KKhost    时间: 2017-8-18 13:34
本帖最后由 KKhost 于 2017-8-18 13:38 编辑
wangyu 发表于 2017-8-17 13:00
就是要本地电脑开着虚拟机,然后在windows运行finalspeed客户端。因为这个程序用的raw socket在windows上 ...


继续 疑问,请问 客服端在局域网里面的虚拟机 要做哪些 端口 映射??? NAT和路由器???
作者: LuckyAlien    时间: 2017-8-18 13:48
你说的我都懂,就是不知怎解。。。
作者: 白龙君    时间: 2017-8-18 14:10
马克

作者: fl20002    时间: 2017-8-18 14:28
也就是说UDP不被限制  就没有必要?

话说 哪些运营商限制了UDP的速度?


作者: skycms    时间: 2017-8-18 14:38
握手协议本身丢包的情况下,再使用TCP来进行数据传输,那就多此一举了
仍然保持UDP只是乱序和不需等待?这本身就是UDP的方式
作者: wangyu    时间: 2017-8-18 14:42
KKhost 发表于 2017-8-18 13:34
继续 疑问,请问 客服端在局域网里面的虚拟机 要做哪些 端口 映射??? NAT和路由器??? ...

你只需要运行udp2raw,然后改kcptun的端口,让kcptun和udp2raw串在一起。跟你用kcptun加速ss的操作类似,其他的什么都不用改。
作者: wangyu    时间: 2017-8-18 14:45
skycms 发表于 2017-8-18 14:38
握手协议本身丢包的情况下,再使用TCP来进行数据传输,那就多此一举了
仍然保持UDP只是乱序和不需等待?这 ...

这个软件作用是骗过防火墙,让防火墙以为这个流量是TCP,这样就不会对你做UDP QOS了。

如果你的运营商完全不限制UDP,那么确实是多此一举了。
作者: wangyu    时间: 2017-8-18 14:48
fl20002 发表于 2017-8-18 14:28
也就是说UDP不被限制  就没有必要?

话说 哪些运营商限制了UDP的速度?

如果确实是不被限制的,那么就没必要用。

实际上很多人都提到过自己被UDP QOS了的问题,具体比例有多少不详。以我自己的经验,我自己这边的移动线路到美国UDP正常,到日本被严重限制了。
作者: KKhost    时间: 2017-8-18 15:06
wangyu 发表于 2017-8-18 14:42
你只需要运行udp2raw,然后改kcptun的端口,让kcptun和udp2raw串在一起。跟你用kcptun加速ss的操作类似, ...

finalspeed 不是150默认的吗?

根据教程跟反馈也好,一路弄下来 却发现 不能用

服务端一直显示 received syn,sent syn ack back

但是 ss不能代理
作者: wangyu    时间: 2017-8-18 15:12
KKhost 发表于 2017-8-18 15:06
finalspeed 不是150默认的吗?

根据教程跟反馈也好,一路弄下来 却发现 不能用

received syn,sent syn ack back
只显示这一步,表示没通。正常会显示client ready和server ready。

你的虚拟机用的是桥接网卡吗?

你在github上提个issue描述下环境、贴出配置吧。目前为止issue里的连接问题,最后都调试通了。要么是不是桥接网卡,要么是client/server端有特殊的iptables,要么是参数配错了。
作者: wangyu    时间: 2017-8-18 15:24
KKhost 发表于 2017-8-18 15:06
finalspeed 不是150默认的吗?

根据教程跟反馈也好,一路弄下来 却发现 不能用

或者你可以email我  wangyucn at gmail.com
作者: weilai丶    时间: 2017-8-18 15:29
大佬厉害
作者: KKhost    时间: 2017-8-18 15:33
本帖最后由 KKhost 于 2017-8-18 15:35 编辑
wangyu 发表于 2017-8-18 15:24
或者你可以email我  wangyucn at gmail.com


(, 下载次数: 0)

我已经 被弄的头晕了 你这个太TM的难懂了,感觉应该需要做路由器上的端口映射才能,但是我已经懵了绕啊绕啊我看还是放弃吧
作者: wangyu    时间: 2017-8-18 15:39
本帖最后由 wangyu 于 2017-8-18 15:44 编辑
KKhost 发表于 2017-8-18 15:33
我已经 被弄的头晕了 你这个太TM的难懂了,感觉应该需要做路由器上的端口映射才能,但是我已经懵了绕啊 ...


大佬。。淡定呀。。就差一点点了。。换成桥接模式。。

我在教程里已经说了要桥接模式。 虚拟机zip的readme里也说了一定要桥接模式。

这个程序可以穿透运营商的NAT,什么端口映射也不用。

教程一共就5步呀,大佬。简单来说就是在你原来的finalspeed前面串个udp2raw,这个udp2raw要跑在虚拟机里。
作者: KKhost    时间: 2017-8-18 15:51
wangyu 发表于 2017-8-18 15:39
大佬。。淡定呀。。就差一点点了。。换成桥接模式。。

我在教程里已经说了要桥接模式。 虚拟机zip的read ...

桥接故障也是一样
也许是局域网机器太多把要的端口给占用了
作者: skycms    时间: 2017-8-18 17:37
防范于未然,有这个东西总比没有的好,不过运营商限制UDP,估计会被炮轰吧
可能是被挂BT的给坑怕了
作者: null_vicer    时间: 2017-8-18 18:38
看看大佬的黑魔法

作者: 番茄你个西红柿    时间: 2017-8-18 21:38
不明觉厉
作者: 蓝洛水深    时间: 2017-9-11 13:38
牛掰啊
作者: dream7758521    时间: 2017-9-11 16:31
提示: 作者被禁止或删除 内容自动屏蔽
作者: SuperBox    时间: 2017-9-11 17:25
仰慕大佬
作者: Verfunk    时间: 2017-9-11 18:12
厉害厉害,支持一波
作者: vpsbar    时间: 2017-9-11 18:25
你这个机房的人会气炸把~




欢迎光临 全球主机交流论坛 (https://loc.010206.xyz/) Powered by Discuz! X3.4