LEDE下udpspeederV2和udp2raw的串联方法
一开始用的koolshare的改版梅林固件,其中udpspeederV2和udp2raw的串联很简单,因为某插件的启动脚本里已经增加了相关的判断命令。
换了LEDE以后,某插件不太智能,而且把udpspeederV2和udp2raw单独做成了插件,串联启动非常不方便。
于是就是一通乱折腾,过程不再啰嗦,直接说方法。
注:
本文主要写串联的一些折腾,如果只是单独启动udpspeeder或udp2raw,文章里的部分方法需修改,但大同小异
一、准备工作
服务端我是这样运行的
某插件:绑定8080端口
udpspeeder:监听本机8080端口,并绑定6226端口
udp2raw:监听本机6226端口,绑定6227端口
大概就是这样一张图
二、路由器端
udp2raw
udpspeeder
以上只是将udpspeeder和udp2raw两个插件成功启动了,并不能实现串联,还需要手动进行分离。
三、手动分离TCP和UDP
默认情况下,LEDE里的某插件是TCP、UDP混合转发,并没有进行分离,也就是同一个进程同时负责两种流量的转发。
先看一下默认的核心命令
$$r-redir -c /koolshare/$$/$$.json -u -f /var/run/kool$$.pid
-u
参数即为开启UDP转发,在开启某插件的游戏模式后,UDP流量均会通过服务器进行转发。
如果不添加 -u
参数,则只转发TCP流量。还有一个 -U
参数,意为开启UDP转发同时关闭TCP转发。
所以要做的就是,开启两个进程,分别转发TCP和UDP,开始分离:
先终止所有$$r-redir进程
killall $$r-redir
重新开启一个进程,只负责TCP转发(不加 -u
参数)
$$r-redir -c /koolshare/$$/$$.json -f /var/run/kool$$.pid
重新开启一个进程,只负责UDP转发(添加 -U
参数)
$$r-redir -s 127.0.0.1 -p 8080 -c /koolshare/$$/$$.json -U -f /var/run/kool$$.pid
这里的 -p 8080
参数,如果在第二步的udpspeeder指定的本地监听端口和某插件一致,则可以不填。否则需要指定 -p 参数
四、测试
五、写脚本
总不能每次都手动执行命令进行分离吧,写个脚本。
下载:
https://file.bugxia.com/s/HSEXgTMezsTZfwC/download
丢到LEDE任意目录,赋予755权限
如果要实现脚本自启动,方法有很多,但是为了省去各种判断
我选择修改某插件的脚本,在其start_$$_redir函数后,加入我的脚本
某插件日志
40 条评论
感谢大神指导,根据大神的办法稍微修改了下插件,支持手动开启是否分离,$$,$$r均可支持
https://github.com/danube533/koolss-udp-separate
websocks+tls++nginx+v2能用吗?
@zhuozi1212
不支持,udpspeeder是加速UDP的,udp2raw是UDP伪装TCP用的,两者均和ws协议没什么关系
@Bug侠
为什么我单单连接udp2raw,都无法连接,就算跟v2一起也无法连接
梅林里面一直处于udp加速未运行
@zhuozi1212
嗯……如果显示udp加速未运行,建议在udp2raw服务器端检查其日志,看看梅林到底有没有连上
@Bug侠
那么v2和udp2raw能使用不同服务器吗?
@zhuozi1212
理论是可以的,不过除非是v2和udp2raw两台服务器之间本身延迟很低,比如内网两台机器,否则就失去加速的意义了
@Bug侠
udp2raw的日志默认在哪里?
@zhuozi1212
这个看你怎么用的,直接运行就会输出日志
@Bug侠
我看到了日志,但是发现梅林那边怎么操作,服务端依旧没有任何反应,包括日志内容
我就想问一下,现在那个udp2raw还能用吗?
@zhuozi1212
如果没有任何输出,那估计还是客户端这边的问题。
udp2raw一直都是正常使用的,见:https://github.com/wangyu-/udp2raw-tunnel
@Bug侠
那udp2raw需要搭配科学上网吗?
或者v2支持吗?
@zhuozi1212
udp2raw的作用是TCP伪装为UDP流量,所以理论上,只要是TCP的流量,它都可以加速,这里不仅仅限于$$\$$R\V2等
———–
梅林的v2也是支持udp2raw的,见:
https://github.com/hq450/fancyss/issues/750
@Bug侠
其实我已经几乎看完wangyu他的方法,但是梅林固件依旧我行我素,完全牛皮灯笼,怎么都治不好,开了游戏模式还是显示udp加速未运行,模式是v2 ws,但是kcptun却能用,udp加速里面没有一个能用
@zhuozi1212
结合我上面贴的issues链接的内容,是不是梅林的v2+udp2raw的启动脚本有些bug,导致启动不了……
@Bug侠
udpspeederv2现在还能用吗?
udp2raw在日志里面看到了连接,但是udpspeederv2的日志没有变化
@Bug侠
好,这个超级重要,我就是找不到开关,手动开关又不代理,谢谢
@Bug侠
udpspeeder现在还能用吗?
其实用LEDE的$$客户端的访问控制就能实现指定主机、协议和端口走不同的流量
@fehead
是的,LEDE可以很方便的控制,不过这篇文章主要写如何把$$\udp2raw\udpspeeder这三者串起来用
@Bug侠
koolshare版LEDE已经提供了更加方便的tinyfecvpn+udp2raw的插件游戏加速器(sgame),可灵活搭配$$或V2的兼容模式,也可不搭配出国旅游工具单独使用,配置方便,UDP和TCP协议通过访问控制分流,全图形化界面,不用担心操作失误。
@fehead
感谢告知,学习了,写这篇文章的时候不知道有这么方便的插件……
@Bug侠
tinyfecvpn就是udpspeeder的更高级版本,具有udpspeeder的所有功能,使用方法基本一致,同一作者开发。
你好,我开启了某插件游戏模式,默认打开 LEDE 软路由的 UPNP,无公网 IP,AP 连接 XBOX 显示 NAT3 严格,GTA5 不能正常在线联机,请问如何解决?想付费请教,如果愿意协助的话请邮件回复我联系方式,感谢!
@Cruz
不用付费,我也是瞎捣鼓,不过这里面牵扯的问题太多,需要一步一步的分析。
我这里没有XBox,所以只能理论上帮你整理一下思路。我这边开启PC和PS4的游戏模式后,NAT类型在PC端通过检测软件检测到的是Fullcone,PS4端开启前后都显示的是NAT3,但是开启后能顺畅的联机。建议你逐个排查,比如同时再PC端测试一下游戏模式。
@Bug侠
游戏模式下,XBOX 丢包率 100%,NAT 严格;
大陆白名单下,丢包率17%,NAT 中等,可以进入线上玩了;
拿了一台老 PC Win7 用户NAT 测试工具显示依然是 Port Restricted Cone,不管是连AP还是连光猫自带的 wifi,目前初步猜测跟不是公网 IP 有很大关系,你觉得呢?
@Cruz
根据你说的这个情况,我大概分析一下:
1.XBox游戏模式下能不能上网呢?XBox有自带的浏览器吧?因为游戏模式是TCP+UDP全部交由$$服务器转发,所以如果开启游戏模式,XBOX连谷歌之类的网页(TCP)都打不开,那说明转发还是有问题。
2.结合我分析的第一点,同时在PC下试试开启游戏模式后,网页能否打开。
3.我这边的网络也不是公网IP(陕西电信),不开启游戏模式,NAT类型是Fullcone,开启后也是Fullcone,开不开启均可以正常联机(PC&PS4),所以我也没法怀疑是公网IP的问题。
阿侠,按照你的方法,终于成功了!感谢你!
另外,我又发现一个 udpspeeder 作者 新的加速软件: tinyfecvpn, 这个可以和udp2raw 一起用,LEDE固件里也有相关的插件。效果貌似不错,这个号称除了能加速udp, 连tcp也能加速。
我小白,研究了几天,一直成功不了。你能看一下,出个教程吗? 你这么厉害,肯定分分钟就搞定了。
期待
阿侠! “某插件:绑定8080端口“ 这个在LEDE上面如何操作啊?我用的是$$
@needfor
就是插件里设置的$$服务器端口
@Bug侠
懂了,多谢阿侠!今天我再试试
还想请假,我看大神用的是$$R, 但我用的是$$, 你的这个分离脚本 管用吗? 还是说需要再修改一下?改成$$的分离?
@needfor
$$R的转发程序是$$r-redir,$$则是$$-redir,理论上可行的。具体没测试~一直用的都是$$R
@Bug侠
阿侠!又是我! 2个问题:
1. 我用的最新的 koolshare 固件2.3, 然后最新版koolss, 还需要添加你的那个脚本吗? 我昨天看了看koolss里的原装的脚本,貌似有什么$$-redir -u什么的。
2. 如果还要添加脚本的话,start_$$_redir函数后,之前自带的内容是需要先删掉吗?然后再添加 /koolshare/ss/udp.sh?
还是说是自带的start_$$_redir函数那一堆不用删,在函数的最后加上你的脚本运行命令?
方便的话,能传一个修改后的$$脚本的样本吗? 或者截个图也行!
多谢了!
@needfor
1.最新版的kool$$也是一样,它没有提供udpspeeder\udp2raw插件单独运行或串联的方法,需要自己手动分离。
2.添加脚本的话,start_$$_redir函数之前自带的内容是【需要保留】的,只要在这个函数的尾部执行分离脚本即可。
3.我测试了一下,$$和$$R的参数用法是一样的,需要把我的脚本里8、12、16行的【$$r-redir】替换为【$$-redir】就可以了。
@Bug侠
感谢阿侠!!这下彻底明白了!晚上回家就试,等我的好消息吧!
大神厉害!感谢分享这么有用的文章!
6666,大佬可以教教我怎么使用udpspeed和udpdraw吗
@大大的坏蛋
呃……我也是瞎捣鼓的
如此好文章一定要留下名啊