N2N使用tcptunnel绕过UDP屏蔽或QoS

N2N 2023/03/19

目前N2N默认还是UDP传输,在Linux下可以通过 -S2 参数强制使用TCP传输,以实现绕过部分特殊环境下对UDP的限制

但是Windows下并不支持 -S2 参数,所以之前写过 N2N使用udp2raw绕过UDP屏蔽或QoS

其原理是利用udp2raw把N2N的UDP数据包进行伪装成TCP数据包(faketcp),但其本质还是UDP,详见 官方说明

今天介绍的小工具为 gnb_udp_over_tcp,它可以实现将UDP数据转换为TCP进行传输,绕开UDP限制

工具示例

#example:
#./gnb_udp_over_tcp -u -l listen_udp_port tcp_address tcp_port
#./gnb_udp_over_tcp -t -l listen_tcp_port des_address des_udp_port
gnb_udp_over_tcp -u -l 监听的UDP端口 TCP源地址 TCP源端口
gnb_udp_over_tcp -t -l 监听的TCP端口 UDP源地址 UDP源端口

服务端

假设有一台CentOS 7,上面跑着N2N的服务端(supernode),端口为55555(UDP)

现在想通过gnb_udp_over_tcp将这个 55555 UDP端口转换为 44444 并监听到TCP

下载,解压,在bin\Linux_x86_64找到 gnb_udp_over_tcp ,CMD运行

gnb_udp_over_tcp -t -l 44444 127.0.0.1 55555

客户端

有一台Windows,下载,解压,在bin\Window10_x86_64找到 gnb_udp_over_tcp.exe

依然是通过gnb_udp_over_tcp,连接到服务端的 44444 端口(TCP),然后监听到本机 5555 端口

#77.77.77.77为服务端IP
gnb_udp_over_tcp.exe -u -l 55555 77.77.77.77 44444

测试

EasyN2N里,服务端填写 127.0.0.1:55555

服务端通过iftop检测到 44444 端口下有大流量

另外,测试后发现这种模式下,P2P的组建不受影响,这一点比udp2raw要好~



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