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 节点运行下面命令
如果没有安装svn的话执行下面的命令
启用N2N启用中心节点(supernode)
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的机器上执行
-a 参数 是指指定一个IP给边缘节点 如果出现如下信息表示成功了 您还可以再次加入其他edge节点,这样节点与节点可以互相ping 通 再次在第2节点上运行如下命令 如果成功的话 在 第一个节点上面进行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试试。 若出现如下错误
很可能能你用的是yum 和编译的造成的版本不一致造成的,这也是 一开始为什强调不要使用yum 和复制两个文件到/usr/sbin的原因,尽量使用make 后的命令make 后会在 当前目录下面生产supernode,edge文件把它覆盖到系统变量目录下面。 参考上面编译源码部分。 本教程基于N2N_V1版本,安装V2版本同样适用,但是v1和v2是不能相通的,也就是说必须运行同一版本。 n2n还有很多客户端,比如android和win客户端,安卓下面可以到googleplay上下载。相当简单这里不多介绍。 n2n作为端口穿透确实是个神器,后面我可以用我的树莓派来做只能家居了,很期待。 该文章在 2017/5/30 15:50:06 编辑过 |
关键字查询
相关文章
正在查询... |