N2N 点对点网络、搭建虚拟局域网、防火墙穿透

N2N 不同于传统的网络软件,它的特点是通过网络层实现一种虚拟局域网的功能,使得跨网络通信更加便利,常被用于内网穿透,异地组网等需求方向,其支持点对点特性,对数据传输效率有很大提升,得益于其开源项目,支持跨平台使用,可以满足各类客户端运行。

N2N 官方网站:https://www.ntop.org/products/n2n/

N2N 开源项目:https://github.com/ntop/n2n

准备工作

1. 确认路由器系统有足够的剩余空间,至少100KB。
2. 按需安装软件界面:luci-app-edge(客户端)、luci-app-supernode(服务端)

客户端使用

按需调整“节点配置”,然后启用并运行。

一般只需修改四处参数:

1、# 设置N2N网络组名称,用于标识局域网。
-c=mynetwork

2、# 设置加密密钥,与名称对应的加密密钥。
-k=mypassword

3、# 设置接口 IP 地址,用于此虚拟局域网中,此设备专用的一个局域网 IP 地址,不可与路由器已有的其它网段相同。
-a=10.0.0.1

4、# 设置超级节点 IP 和端口,也可以使用域名。
-l=127.0.0.1:7777

各客户端使用相同的网络组名称和加密密钥即可加入同一个虚拟局域网,使得客户端之间可以互联互通,日常使用方式同物理局域网。

其它参数请根据实际情况自行调整。

注意事项

压缩功能用于自动压缩出站数据包,以便在现有的带宽条件下获得更大的吞吐量,但会消耗更多 CPU 性能。

不要随意启用压缩功能,因为压缩功能并非所有客户端都支持,除非参与组网的设备均支持同样的压缩特性。

服务端使用

服务端软件界面:luci-app-supernode

服务端主要是要配置一个公网可以访问的端口,然后需要打开对应的防火墙端口。

3.0 版本已可配置“网络组列表文件”,以便只允许指定的网络组名称才能连接到服务器。

按需调整 N2N 超级节点的“网络组列表”,将允许连接到服务器的网络组名称填入其中。

N2N 工作原理

N2N 的服务端通常称为“超级节点”,所有参与组网的客户端节点,需要连接至同一个超级节点。

首先由超级节点负责客户端节点间的握手通信,一旦客户端之间建立起了点对点通信,则后续流量不再经过超级节点,如果客户端之间因为 NAT 问题导致无法进行点对点通信,则超级节点将承担所有流量中转。

N2N 网络中,各个客户端节点自行负责数据包的加密与解密,超级节点(服务端)不参与任何加解密工作。