n2n内网穿透神器

   免费的内网穿透,内网端口映射工具,无需设置路由器,公网IP,不限流量,不限连接数
了解更多  立即下载
FinalShell最好用的国产SSH客户端,一体化服务器管理软件,点击获取

网上关于n2n的介绍还是很少的,本人在安装的过程中也遇到过不少的问题,折腾了大半天才解决了,这里记录下以便需要的同学可以参考。

n2n用途

假如想实现远程访问,访问家里的路由、电脑,等等设备,最简单的方式就是采用端口映射(端口转发),但是很多情况下我们没有路由的权限,这样根本就没有办法访问私网,因为受网关的保护。

本想通过sock请求来发送的,但是实现起来必须是内网主动发起,不能外网主动发起,可以保持长连接来通信,但是还是有很多的局限性。放弃采用。

考虑过VPN,但是VPN配置还是比较复杂,不能做到随意使用,放弃。

这时N2N进入了我的视野,其实就是P2P协议,及点对点协议,实现UDP打洞。

原理图如下:

1

2

N2N分两个部分,一个是supernode,一个是edge。supernode即中心节点,edge 即边缘节点,supernode的作用就是对两个edge节点进行连接的作用,和p2p服务器作用一样,且n2n数据是不走supernode的,所以数据很安全。

配置N2N

注意:不要使用yum或者apt-get还安装n2n(下面待会儿说)

我一开始也是 使用yum install n2n安装的,结果中间发生很多问题。

这里尽量采用源码包编译安装。

在supernode和edge 节点运行下面命令

帮助
1
2
3
4
5
svn co https://svn.ntop.org/svn/ntop/trunk/n2n
cd n2n/n2n_v1/
make && make install
cp supernode /usr/sbin/
cp edge /usr/sbin/

如果没有安装svn的话执行下面的命令

帮助
1
yum install subversion

启用N2N

启用中心节点(supernode)

帮助
1
supernode -l 8080 -v

8080即开发给边缘节点的端口

分享个我自己的supernode

地址:n2n.phpbulo.com

端口:8080

协议版本:n2n_v1

如果采用我的中心节点,您只需要在两台机器上面运行edge ,这样两台内网机器直接互通,由于数据不走中心节点,所以数据很安全。(不保证节点能一直运行下去

example:

edge -d n2n0 -c mynetwork -k encryptme -a 10.1.12.1 -l n2n.phpbulo.com:8080 >/dev/null &

启用边缘节点(edge)

在需要加入n2n的机器上执行

帮助
1
edge -d n2n0 -c mynetwork -k encryptme -a 10.1.12.1 -l 1.2.3.4:8080

-a 参数 是指指定一个IP给边缘节点

如果出现如下信息表示成功了

20150211114821

您还可以再次加入其他edge节点,这样节点与节点可以互相ping 通

再次在第2节点上运行如下命令
edge -d n2n0 -c mynetwork -k encryptme -a 10.1.12.2 -l 1.2.3.4:808
0

如果成功的话 在 第一个节点上面进行ping第二个节点是能互相通的。

以上命令也可以放入后台执行

supernode -l 8080  >/dev/null &

edge -d n2n0 -c mynetwork -k encryptme -a 10.1.12.1 -l 1.2.3.4:8080 >/dev/null &

1.2.3.4是指中心节点ip

运行 supernode 的时候可以带上-v 参数,来查看报错情况。

关于可能遇到的错误

问:我有一个中心节点 一个边缘节点,加入之后为什么中心节点不能ping通边缘节点的ip?

答:这中情况下一般是中心节点没有去运行边缘节点。需要在中心节点加入edge边缘节点,参考上面的边缘节点运行方式,加入后重新ping试试。

若出现如下错误

帮助
1
2
3
4
11/Feb/2015 00:05:42 [ sn.c: 409] ERROR: Failed to decode common section
11/Feb/2015 00:06:37 [ n2n.c: 303] Purging old registrations
11/Feb/2015 00:06:37 [ n2n.c: 308] Remove 0 registrations
11/Feb/2015 00:06:42 [ sn.c: 409] ERROR: Failed to decode common section

很可能能你用的是yum 和编译的造成的版本不一致造成的,这也是 一开始为什强调不要使用yum 和复制两个文件到/usr/sbin的原因,尽量使用make 后的命令make 后会在 当前目录下面生产supernode,edge文件把它覆盖到系统变量目录下面。

参考上面编译源码部分。

本教程基于N2N_V1版本,安装V2版本同样适用,但是v1和v2是不能相通的,也就是说必须运行同一版本。

n2n还有很多客户端,比如android和win客户端,安卓下面可以到googleplay上下载。相当简单这里不多介绍。

n2n作为端口穿透确实是个神器,后面我可以用我的树莓派来做只能家居了,很期待。

未经允许,不得转载本站任何文章:内网穿透 » n2n内网穿透神器
分享到: 更多 (0)
   免费的内网穿透,内网端口映射工具,无需设置路由器,公网IP,不限流量,不限连接数
了解更多  立即下载
FinalShell最好用的国产SSH客户端,一体化服务器管理软件,点击获取

评论 抢沙发

评论前必须登录!