使用N2N进行内网穿透

目前主要的内网穿透方式是FRP N2N 和Ngrok 其中两种本博客都有介绍过 这次给大家推荐一下n2n
n2n是在数据链路层实现的一套P2P协议,包括super node 和 edge node。
n2n是开源的,遵循GPL v3协议,可运行于Linux,Windows,Android,甚至是Openwrt之上。其作者是著名的开源网管软件ntop的作者Luca Deri。

具体使用教程

搭建super node:需要公网IP,也可以使用公用的super node,且不用担心安全性,因为edge间通信数据不经过super node,具体原理参看N2N官方的论文及源码。

 sudo apt-get install subversion build-essential libssl-dev
 git clone https://github.com/meyerd/n2n.git
 cd n2n/n2n_v2
 mkdir build
 cd build
 cmake ..
 make
 sudo make install
 supernode -l 你要打开的端口

建立 edge node

edge -d [node name] -a [IP] -c [net name] -k [key] -u 1000 -g 1000 -l [supernode IP]:[supernode port]
实例:edge -d edge0 -a 10.0.0.1 -c owlNet -k owl -u 1000 -g 1000 -l 8.8.8.8:88
ifconfig

此时在此电脑上应该会看到类似下面的信息

edge1     Link encap:以太网  硬件地址 xx:xx:xx:xx:xx:xx  
          inet 地址:10.0.0.1  广播:10.0.0.255  掩码:255.255.255.0
          inet6 地址: xxxx::xxxx:xxxx:xxxx:xxxx/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1400  跃点数:1
          接收数据包:0 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:38 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:1000 
          接收字节:0 (0.0 B)  发送字节:0 (0.0 B)

此时可以在edge所在的电脑上 ping 10.0.0.1 , 测试连通性。

Windows版已编译的安装包
官方源码下载 GAYHUB

后话

本文参考 文章1 文章2编写
大家可以自行研究~