通知 欢迎关注我的店铺天天软件圆

UDP2Raw隧道技术详解Windows版下载:UDP流量伪装突破网络封锁的TCP/UDP

2025-04-20
0评论
/
阅读
爱搜啊

Udp2raw-tunnel:突破UDP限制的隧道工具

UDP2Raw隧道技术详解Windows版下载

一、工具简介

UDP2Raw-tunnel 是一款通过 raw socket 将 UDP 流量伪装成 TCP 或 ICMP 报文的工具。它能有效绕过 UDP 流量限制或 QoS 限速,提升网络稳定性。尤其适合配合 Kcptun、Finalspeed 等工具使用,防止 UDP 端口被运营商限速。

核心功能亮点

  • 将 UDP 流量伪装为 TCP/ICMP

  • 模拟 TCP 三次握手和协议特征

  • 心跳保活、断线自动重连

  • AES 加密与防重放攻击

  • 支持多平台(Linux/Windows/OpenWrt/Android)

其他特性

  • 信道复用,client的udp端支持多个连接。

  • server支持多个client,也能正确处理多个连接的重连和连接恢复。

  • NAT 穿透 ,tcp icmp udp模式都支持nat穿透。

  • 支持Openvz,配合finalspeed使用,可以在openvz上用tcp模式的finalspeed.

  • 支持Openwrt,没有编译依赖,容易编译到任何平台上。

对于windows和mac用户:

可以用这个repo里的udp2raw。

https://github.com/wangyu-/udp2raw-multiplatform/releases

对于ios和游戏主机用户:

可以把udp2raw运行在局域网的其他机器/虚拟机上。最好的办法是买个能刷OpenWrt/LEDE/梅林的路由器,把udp2raw运行在路由器上。

二、快速上手

1. 安装部署

下载编译好的二进制文件,解压到任意目录。

https://github.com/wangyu-/udp2raw-tunnel/releases

2. 基础使用示例

场景:假设你有一个server,ip为44.55.66.77,有一个服务监听在udp 7777端口。 假设你本地的主机到44.55.66.77的UDP流量被屏蔽了,或者被qos了

# 服务端执行(需root权限):
./udp2raw_amd64 -s -l0.0.0.0:4096 -r127.0.0.1:7777 -k "passwd" --raw-mode faketcp --cipher-mode xor -a

# 客户端执行:
./udp2raw_amd64 -c -l0.0.0.0:3333 -r44.55.66.77:4096 -k "passwd" --raw-mode faketcp --cipher-mode xor -a

现在client和server之间建立起了,tunnel。想要在本地连接44.55.66.77:7777,只需要连接 127.0.0.1:3333。来回的所有的udp流量会被经过tunneling发送。在外界看起来是tcp流量,不会有udp流量暴露到公网。

MTU设置(重要)

不论你用udp2raw来加速kcptun还是vpn,为了稳定使用,都需要设置合理的MTU(在kcptun/vpn里设置,而不是在udp2raw里),建议把MTU设置成1200。client和server端都要设置。


--cipher-mode xor表示仅使用简单的XOR加密,这样可以节省CPU占用,以免CPU成为速度瓶颈。如果你需要更强的加密,可以去掉此选项,使用默认的AES加密。加密相关的选项见后文的--cipher-mode和--auth-mode。


-a选项会自动添加一条/几条iptables规则,udp2raw必须和相应的iptables规则配合才能稳定工作,一定要注意不要忘了-a(这是个常见错误)。 如果你不想让udp2raw自动添加iptables规则,可以自己手动添加相应的iptables规则(看一下-g选项),然后以不带-a的方式运行udp2raw。

关键提示:

  • 务必使用 -a 参数自动配置 iptables 规则

  • 客户端连接本地 3333 端口即可访问远程 7777 服务

  • 建议在 VPN/Kcptun 中设置 MTU=1200

三、进阶配置技巧

iptables 规则,-a和-g

用raw收发tcp包本质上绕过了linux内核的tcp协议栈。linux碰到raw socket发来的包会不认识,如果一直收到不认识的包,会回复大量RST,造成不稳定或性能问题。所以强烈建议添加iptables规则屏蔽Linux内核的对指定端口的处理。用-a选项,udp2raw会在启动的时候自动帮你加上Iptables规则,退出的时候再自动删掉。如果长期使用,可以用-g选项来生成相应的Iptables规则再自己手动添加,这样规则不会在udp2raw退出时被删掉,可以避免停掉udp2raw后内核向对端回复RST。

用raw收发udp包也类似,只是内核回复的是icmp unreachable。而用raw 收发icmp,内核会自动回复icmp echo。都需要相应的iptables规则。

--cipher-mode 和 --auth-mode

如果要最大的安全性建议用aes128cbc+hmac_sha1。如果要运行在路由器上,建议用xor+simple,可以节省CPU。但是注意xor+simple只能骗过防火墙的包检测,不能防止真正的攻击者。

--seq-mode

faketcp模式并没有模拟tcp的全部。所以理论上有办法把faketcp和真正的tcp流量区分开来(虽然大部分ISP不太可能做这种程度的包检测)。seq-mode可以改变一些seq ack的行为。如果遇到了连接问题,可以尝试更改。在我这边的移动线路用3种模式都没问题。

--keep-rule

定期主动检查iptables,如果udp2raw添加的iptables规则丢了,就重新添加。在一些iptables可能会被其他程序清空的情况下(比如梅林固件和openwrt的路由器)格外有用。

--fifo

指定一个fifo(named pipe)来向运行中的程序发送命令,例如--fifo fifo.file:

在client端,可以用echo reconnect >fifo.file来强制client换端口重连(上层不断线).对Server,目前没有效果。

--lower-level

大部分udp2raw不能连通的情况都是设置了不兼容的iptables造成的。--lower-level选项允许绕过本地iptables。在一些iptables不好改动的情况下尤其有效(比如你用的是梅林固件,iptables全是固件自己生成的)。

格式

if_name#dest_mac_adress,例如 eth0#00:23:45:67:89:b9 。eth0换成你的出口网卡名。00:23:45:67:89:b9换成网关的mac地址(如果client和server在同一个局域网内,可能不需要网关,这时候直接用对方主机的mac地址,这个属于罕见的应用场景,可以忽略)。

可以用--lower-level auto自动获取参数,如果获取参数失败,再手动填写。

client端获得--lower-level参数的办法

在client 端,运行traceroute <server_ip>,记下第一跳的地址,这个就是网关ip。再运行arp -s <网关ip>,可以同时查到出口网卡名和mac。

如果traceroute第一跳结果是* * *,说明网关屏蔽了对traceroute的应答。需要用ip route或route查询网关:

server端获得--lower-level参数的办法

如果client有公网ip,就traceroute <client_ip>。下一步和client端的方法一样。

如果client没有公网ip,就traceroute google.com 或traceroute baidu.com。下一步和client端的方法一样。

server端也可以用--lower-level auto 来尝试自动获得参数,如果无法连接再手动填写。

注意

如果用了--lower-level选项。server虽然还可以bind在0.0.0.0,但是因为你显式指定了网络接口,就只能工作在这一个网络接口了。

如果arps -s命令查询不到,首先再试几次。如果还是查询不到,那么可能是因为你用的是pppoe方式的拨号宽带,查询不到是正常的。这种情况下if_name填pppoe产生的虚拟interface,通常名字叫pppXXXX,从ifconfig命令的输出里找一下;des_mac_adress填00:00:00:00:00:00,例如ppp0#00:00:00:00:00:00

--conf-file

为了避免将密码等私密信息暴露给ps命令,你也可以使用 配置文件 来存储参数。

比如,将以上服务端参数改写成配置文件

server.conf:

-s
# 你可以像这样添加注释
# 注意,只有整行注释才能在配置文件里使用
# 注释必须独占一行
-l 0.0.0.0:4096
-r 127.0.0.1:7777
-a
-k passwd
--raw-mode faketcp

注意,当写入配置文件的时候,密码等参数两边的引号必须去除。

然后就可以使用下面的方式启动服务端

./udp2raw_amd64 --conf-file server.conf

四、性能测试数据

测试环境:Vultr 节点(客户端) vs Bandwagon 节点(服务端)

测试1:XOR 简单加密

单核 CPU 跑满,OpenVPN 中转速度达 53.8Mb/s

测试2:AES 高强度加密

纯 UDP2raw 处理速度约 36.7Mb/s

五、典型应用场景

六、常见问题排查

  • Q:客户端提示 iptables 错误?
        A:检查是否使用 -a 参数,或手动执行 --gen-rule 生成规则

  • Q:连接频繁中断?
        A:尝试 --seq-mode 2--disable-anti-replay

  • Q:Android 如何运行?
        A:参考 Android 专用指南

更多技术细节请访问项目 Wiki:
 https://github.com/wangyu-/udp2raw-tunnel/wiki


点击链接加入群聊四群:722808830
点击链接加入群聊三群:751529538(已满)
点击链接加入群聊二群:376877156(已满)
点击链接加入群聊一群:622891808(已满)

饿了么红包
饿了么红包


本站附件分享,如果附件失效,可以去找找看

诚通网盘附件百度网盘附件

于2025-04-20发布
相关文章