月下博客

udp2raw一键安装脚本 解决KCPTUN等UDP流量被QOS限速掉线

 

 

关于udp2raw

udp2raw,又名udp2raw-tunnel,是由网友wangyu开发的一款UDP流量伪装工具,可以将udp流量伪装为TCP流量,本工具完全开源。

实现原理是模拟TCP 3次握手,让防火墙将UDP流量误认为是TCP流量,从而避开部分运营商对UDP流量的QOS限速和干扰,有效提高网络连接的速度和稳定性。

udp2raw在用于KCPTUN等科学上网辅助工具时,则可以在保证KCPTUN加速效果的基础上,进一步增强连接的稳定性,避免由UDP限速导致的频繁掉速和断线。

 

关于运营商UDP流量限速:

在大部分网络环境中,TCP流量的优先级是高于UDP流量的。

举个例子,我们日常的网页流量和资源下载,使用的是TCP流量;而BT下载则使用的UDP流量;两者相比的话,运营商当然是要优先保证基本的TCP流量,甚至会对UDP流量进行各种干扰和限速。

而加速工具KCPTUN使用的正是UDP流量,如果遇到运营商限制,则会对其加速效果形成很大干扰。

 

KCPTUN被QOS限速的表现:

  1. 加速效果不稳定,速度时快时慢
  2. 每隔一段时间,KCPTUN会掉线无法连接,无法正常科学上网。
  3. 掉线持续几分钟后,恢复正常连接

 

 

udp2raw的使用对象

上文以KCPTUN为例,大致介绍了udp2raw的加速原理。

事实上,除了KCPTUN以外,udp2raw几乎可以伪装任何UDP流量。

包括但不限于:

 

以KCPTUN为例,udp2raw的加速实现路径大致为:

Shadowsocks/SSR客户端——KCPTUN客户端——udp2raw客户端————udp2raw服务器端——KCPTUN服务器端——Shadowsocks/SSR服务器端

其它各工具与此类似,大同小异。

一点疑问:

Shadowsocks或者SSR本身就走的TCP流量,绕这么大一圈,最后还是TCP流量。既然这样,为什么不单独使用SS/SSR连接就好了,效果不是一样吗?

这个问题有一定道理,但是两种连接的效果其实是不一样的。

因为KCPTUN的加速效果,基本是目前所有加速工具中效果最好的。如果使用SS/SSR+KCPTUN+udp2raw的组合,可以在KCPTUN加速连接的同时,避开UDP限速,最终实现加速效果最大化。

 

 

udp2raw一键安装脚本

udp2raw加速效果的实现,需要同时安装服务器端和本地客户端,两者连接成功即可。

下面我们先介绍一下udp2raw服务器端的安装过程。

udp2raw一键安装脚本233版(服务器端)

安装环境:

安装流程:

1.使用Putty连接至服务器,右键复制如下命令运行:

 

2.如果以上命令运行时出现关于curl的错误提示,那么需要先为服务器安装curl后,再运行以上命令。如果没有错误提示,则忽略本段内容。

根据系统不同,curl的安装命令分别为

CentOS:

Debian/Ubuntu:

 

3.udp2raw一键脚本成功运行后,会出现下图界面。按提示输入1回车继续。

 

4.出现下图界面时,代表udp2raw安装成功。

 

 

如何卸载:

再次运行以上脚本命令,然后输入数字2回车,即可卸载udp2raw。

 

提示:

此udp2raw一键安装脚本的功能较少,仅包括安装和卸载功能。

关于udp2raw的设置、运行及开机启动,下文会继续介绍。

 

 

udp2raw启动前的准备工作

如果你要加速的对象是KCPTUN,那么KCPTUN默认的mtu是1350。在这个配置下,容易造成udp2raw崩溃,我们需要将其调整至1300或1200.

如何修改mtu:

1.如果你的KCPTUN是根据KCPTUN一键安装脚本安装的,那么其参数配置文件路径为:/usr/local/kcptun/server-config.json

2.用Winscp打开该文件,修改其中mtu的一行 为:

 

3.修改完成后保存文件,putty运行如下命令重启KCPTUN即可。

 

4.记得同时修改KCPTUN客户端的mtu值,服务端与客户端的mtu值保持一致。

 

另外,如果你的加速对象不是KCPTUN,比如是WireGuard等其它工具,那么也需要根据实际情况,提前修改mtu值。

 

 

udp2raw的参数配置及运行

目前udp2raw并没有独立的参数配置文件,因此需要在运行udp2raw命令时,同时加入启动参数。

udp2raw启动命令示例:

 

以上启动命令中

如何启动udp2raw:

1.根据个人情况做好修改后,putty运行修改后的udp2raw启动命令,出现下图界面,代表启动成功:

 

2.下面就可以使用udp2raw客户端连接服务器端了。

关于udp2raw客户端的相关设置,我们随后会有专门的文章介绍

 

以上udp2raw启动命令的缺点:

根据以上命令成功启动udp2raw后,是不能关掉putty窗口的,否则udp2raw进程也会随之终止,造成客户端无法连接。

这就需要我们每次使用udp2raw时,都要重新运行启动命令,非常不方便。

解决办法:

下文介绍的udp2raw开机自启教程,设置好之后,可以同时实现:

 

 

udp2raw的开机自启

本文介绍的udp2raw一键安装脚本,默认并没有为udp2raw设置开机自启,需要我们手动设置。

具体步骤:

1.使用putty分别运行如下两条命令:

 

2.用Winscp打开服务器的rc.local文件,路径是/etc/rc.d/rc.local,如果这个位置找不到,那么可以尝试/etc/rc.local

3.将如下udp2raw启动参数加入到rc.local文件中(另起一行)

注意事项:

  1. 需要将下面nohup后面的启动参数,替换为你之前修改好的实际参数
  2. 如果rc.local原文件中最后一行是exit 0字样,那么下面的启动参数需要加在exit 0上面一行

 

4.修改完成后保存,重启服务器后,udp2raw就会自动运行,也就实现了开机自启。