一 、 简介
1.为什么用N2N ?
在一般情况下, 两台机器如果是处在同一个局域网下,那么这两台机器可以通过各自的内网IP进行通信。 但是,在某些情况下你可能希望两个不同局域网的机器进行通信 , 此时 N2N 就能给我们带来一个简单快捷的解决方案,N2N 通过一些特殊的技巧,让不同网段的机器能够进行P2P( 点对点 peer-to-peer ) 通信。
这里列举一些可能的使用场景
- 在外访问家用NAS做数据共享
- 在家访问公司的内部网络
- 开发人员远程调试现场环境
- …
N2N 这个项目被 官方搁置了几年的时间,但这项目仍然被很多人使用,于是官方在其网站表示恢复了对N2N项目的开发和维护( 2018年8月17日 )
- N2N做了什么?
那么,N2N 是怎么工作的呢? N2N是怎么样让两台不在同一网段的机器相互找到对方的。
在一般情况下 , 两台没有公网IP的机器是没有办法直接通过IP地址去找到对方的,这时候如果有一台拥有公网IP的服务器的话,那么事情就会变得很简单。
首先 ,两台处于内部网络的机器 主动去跟拥有公网IP的机器进行连接 , 然后向处于公网的服务器进行“注册登记”, 留下自己的连接方式 ,告诉公网服务器,如果有其它机器要找我,就把这些信息给它,它就知道怎么能够找到我了。 当然,出于安全考虑,这些想要相互连接的机器会留下一些验证口令, 只有口令正确匹配,它们才能够正确的组网。
以上的描述只是帮助你去理解N2N做的事情,但在实际的实现中,边缘节点的连接会有更复杂的策略,而且项目仍然在不断的更新中,如需要继续深入研究,可以查看N2N的源码(https://github.com/ntop/n2n)
1.1. N2N 的一些相关概念
在上面描述的流程中, N2N 官方对里面的角色有一些定义,在开始部署前,了解这些定义,能够帮助你快速理解这个软件的使用。
1.2