LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

n2n内网穿透神器

admin
2017年5月30日 15:50 本文热度 16341

网上关于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作为端口穿透确实是个神器,后面我可以用我的树莓派来做只能家居了,很期待。


该文章在 2017/5/30 15:50:06 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved