自建n2n supernode (国内n2n supernode)
国外的supernode慢,延迟都快1s了,ssh打字都卡,借助开源硬件,在家自建了一个n2n 的supernode
地址:ustc.gq:2000 或 ngrok.iok.la:2000
协议版本:n2n_v2 端口:2000
补充:什么是n2n?
n2n内网穿透神器
n2n用途
假如想实现远程访问,访问家里的路由、电脑,等等设备,最简单的方式就是采用端口映射(端口转发),但是很多情况下我们没有路由的权限,这样根本就没有办法访问私网,因为受网关的保护。
本想通过sock请求来发送的,但是实现起来必须是内网主动发起,不能外网主动发起,可以保持长连接来通信,但是还是有很多的局限性。放弃采用。
考虑过VPN,但是VPN配置还是比较复杂,不能做到随意使用,放弃。
这时N2N进入了我的视野,其实就是P2P协议,及点对点协议,实现UDP打洞。
原理图如下:
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/`
|
1 |
`yum ``install` `subversion`
|
启用N2N
启用中心节点(supernode)
1 |
`supernode -l 2000 -``v`
|
如果采用我的中心节点,您只需要在两台机器上面运行edge ,这样两台内网机器直接互通,由于数据不走中心节点,所以数据很安全。(不保证节点能一直运行下去)
example:
edge -d n2n0 -c mynetwork -k encryptme -a 10.1.12.1 -l ustc.gq:2000 >/dev/null &
启用边缘节点(edge)
在需要加入n2n的机器上执行
1 |
`edge -d n2n0 -c mynetwork -k encryptme -a 10.1.12.1 -l 1.2.3.4:8080`
|
如果出现如下信息表示成功了
您还可以再次加入其他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`
|
参考上面编译源码部分。
本教程基于N2N_V1版本,安装V2版本同样适用,但是v1和v2是不能相通的,也就是说必须运行同一版本。
n2n还有很多客户端,比如android和win客户端,安卓下面可以到googleplay上下载。相当简单这里不多介绍。
n2n作为端口穿透确实是个神器,后面我可以用我的树莓派来做只能家居了,很期待。