一.介绍

前面介绍的其实内网穿透方案更大意义上是端口转发或者反向代理,而这次要提的,则是P2P组网方案,要知道P2P在打洞穿透方面优势是挺大的,而且成功打洞之后不通过第三方服务器直接连接,能够不受第三方服务器的带宽限制,而如果没有成功打洞,则可以通过第三方服务器中转,进退皆有路,一定意义上来说是最好的解决方案。

在这一类P2P VPN中比较出名的几种有N2N、Tinc、PeerVPN以及ZeroTier,本次介绍的是N2N。

N2N是开源的,其作者是Ntop作者Luca Deri,也是个牛人,可惜的是他现在已经不再维护N2N,也不知道是啥原因,不过还好开源社区有其他人加入了维护,并且已经成熟了,Bug也没啥太严重的,所以没啥问题,还是挺好用的,N2N分为SuperNode和EdgeNode,前者被称为超级节点,能够在EdgeNode之间建立握手并为无法直连的EdgeNode中转数据,是网络的核心部分。当然由于SuperNode的重要性,N2N支持为EdgeNode指定多个SuperNode,以便组成更复杂的网络,并且防止单个SuperNode出问题导致的整个网络瘫痪。

二.安装配置

N2N的安装其实挺简单的,因为没太多依赖

然后就装好了,会生成supernode和edge两个可执行程序,看看名字就知道一个是SuperNode一个是EdgeNode

需要了解一点,EdgeNode和SuperNode是不冲突的,所以在SuperNode的机器上是可以同时运行EdgeNode的,所以这个网络可以搞得很复杂的说,就看你需求了。

对了,在相同平台下编译的supernode和edge文件直接拷贝过去就能跑,不用再次编译,所以……你懂的

服务端的运行很简单,最少情况下只需要指定一个参数就行

那么接下来就是EdgeNode了,这个的参数就比较多了

如果创建虚拟网卡出问题了,可以尝试手动创建

然后使用-d指定虚拟网卡名,-m指定MAC来连接,至于uid和gid这个你不是root的情况下可以研究下

另外如果运行在后台的情况下要看问题,可以在/var/log/message文件中查看日志

正常情况下在配置完supernode和edge后就能正常连接了