本文主要是介绍内网穿透-p2p通讯服务器-基于n2n和udp2raw-tunnel,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
内网穿透-p2p通讯服务器-基于开源软件n2n和udp2raw-tunnel
原本在简单的网络环境中n2n可以很好的达到p2p通讯功能,但是由于公网ip服务器(如阿里云等)可能会屏蔽掉UDP协议,使得n2n无法使用,于是通过一个非常棒的开源软件udp2raw-tunnel(https://github.com/wangyu-/udp2raw-tunnel)来将UDP伪装成TCP协议,实验证明是可行的。具体过程记录在下:
1 编译n2n (ubuntu 1604)
sudo apt-get install subversion build-essential libssl-dev
svn co https://svn.ntop.org/svn/ntop/trunk/n2n
cd n2n/n2n_v2
sudo make
sudo make install
2 公网服务器(centos 7.4)配置n2n 和udp2raw-tunnel
# 1. 启动n2n 服务器
supernode -l 7077 #udp协议 监听在7077端口
# 由于udp协议无法收到来着客户端的udp包(被屏蔽了)
# 所以采用udp2raw-tunnel 来接收经过伪装的udp包
# 2. 启动udp2raw-tunnel 服务器./udp2raw_amd64 -s -l0.0.0.0:4096 -r127.0.0.1:7077 -k "passwd" --raw-mode faketcp --cipher-mode xor -a
3 客户端1(ubuntu 1604)配置n2n 和udp2raw-tunnel
# 1. 先启动udp2raw-tunnel 客户端,搭建好桥梁
sudo ./udp2raw_amd64 -c -l0.0.0.0:3333 -r44.55.66.77:4096 -k "passwd" --raw-mode faketcp --cipher-mode xor -a
# 2. 启动n2n 客户端,注意设置 -M (MTU=1200),因为udp2raw-tunnel 要求的
sudo edge -d n2n01 -c test -k key -a 192.168.111.1 -l 127.0.0.1:3333 -M 1200
4 客户端2(ubuntu 1604)配置n2n 和udp2raw-tunnel
# 1. 先启动udp2raw-tunnel 客户端,搭建好桥梁
sudo ./udp2raw_amd64 -c -l0.0.0.0:3333 -r44.55.66.77:4096 -k "passwd" --raw-mode faketcp --cipher-mode xor -a
# 2. 启动n2n 客户端,注意设置 -M (MTU=1200),因为udp2raw-tunnel 要求的
sudo edge -d n2n02 -c test -k key -a 192.168.111.2 -l 127.0.0.1:3333 -M 1200
客户端之间这样可以直连了
参考:
https://github.com/wangyu-/udp2raw-tunnel
https://blog.csdn.net/ppp2006/article/details/52386252
这篇关于内网穿透-p2p通讯服务器-基于n2n和udp2raw-tunnel的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!