N2N使用udp2raw绕过UDP屏蔽或QoS

N2N 2022/04/24

由于N2N在Windows下使用的是UDP进行通信,而在部分情况下,运营商会对UDP数据进行一定的限制

参考这篇:聊聊运营商对UDP的QoS限制和应对

所以本文主要介绍通过 udp2raw 来实现绕过N2N通信中的UDP屏蔽或QoS

原理

udp2raw tunnel,通过raw socket给UDP包加上TCP或ICMP header,进而绕过UDP屏蔽或QoS,或在UDP不稳定的环境下提升稳定性。可以有效防止在使用kcptun或者finalspeed的情况下udp端口被运营商限速

准备

以下操作演示基于CentOS 7 x64

1.搭建N2N服务器(略)

2.部署udp2raw

mkdir udp2raw
cd udp2raw
wget https://github.com/wangyu-/udp2raw/releases/download/20200818.0/udp2raw_binaries.tar.gz
tar xzvf udp2raw_binaries.tar.gz
mv udp2raw_amd64 /usr/local/bin/udp2raw
chmod +x /usr/local/bin/udp2raw
udp2raw -h

启动

服务端

假设supernode监听端口为 9527 ,udp2raw监听 19527 ,模式为 faketcp

更多命令说明见:udp2raw 命令行文档

udp2raw -s -l 0.0.0.0:19527  -r 127.0.0.1:9527 -k "asdf1234" --raw-mode faketcp -a

客户端

适用于Windows的客户端(解压得到 udp2raw_mp_wepoll.exe)

#替换77.77.77.77为自己的服务器地址
udp2raw_mp_wepoll.exe -c -l 0.0.0.0:9527  -r 77.77.77.77:19527 -k "asdf1234" --raw-mode faketcp

EasyN2N

服务端地址 本机地址:本机upd2raw监听端口

日志里可以看到已经成功连接到Supernode

问题

NAT穿透存在问题,无法P2P



3条评论

  • FPC12138 评论于 回复

    您好,我有一个问题,情况如下:
    1、服务端是用的阿里云
    2、客户端的话,我和朋友都是用的openwrt,然后nat到各自的内网ip段
    我想问下,这个时候,我和朋友的windows机器联机是P2P的吗?通讯是用的tcp还是udp呢?可以在openwrt里面用这个方案吗?谢谢

    • Bug侠 评论于 回复

      @FPC12138
      1.P2P的判断:https://bugxia.com/2292.html
      2.windows下默认N2N走的UDP通信(Linux支持TCP)
      3.可以在openwrt下实现本文方案(需在udp2raw_binaries.tar.gz内使用对应架构的udp2raw)

    评论(本站已开启评论回复邮件通知功能,请如实填写邮箱以便及时收到回复)

    温馨提示

    1.请考虑提问别人前,是否需要使用「请问」「谢谢」等这样的词?

    2.请回想一下,是否仔细阅读过文章?提出的问题文章内是否已经释疑?