OpenWrt N2N组网记 - 自己组建大内网

n2n结构图(图自互联网)

N2N是一款十分简单且强大的p2p组网软件。它可以实现组网和p2p直连。只需要拥有一台服务端,任何主机都可以接入进来做为客户端。在本篇文章,将使用OpenWrt做为服务端来搭建组网。事不宜迟,开干~

  1. 首先,选择一台具有公网ip的vps。这里的VPS不能使用基于OpenVZ架构的vps
  2. 在vps上安装带有N2N的OpenWrt固件
  3. 安装完成后,打开Luci后台,并进入N2N设置界面
  4. 在界面中同时开启Edge节点和Supernode节点
  5. 在edge设置中,无需修改隧道设备名称,接口模式选择static(DHCP也可以,但是还未测试),设置一个自定义的内网IP,子关掩码。MTU请修改为1500以下,Supernode节点和端口请保持和下方supernode设置一致。N2N网络组名称和密码也可以自定义,但是其他客户端需和此处保持一致。勾选允许数据包转发

到这里,服务端就搭建完成了。您可以通过N2N Linux客户端或Windows客户端配置相应的设置以连入网络。在Linux下,若您想通过N2N客户端访问NAT内网下其他主机,您只需对iptables做出以下改变:

iptables -t nat -I POSTROUTING -j MASQUERADE && service iptables save

之后,在命令中执行:

ip route add 192.168.0.0/24 via 10.0.0.2

PS:这里的192.168.0.0/24指的是NAT子网,10.0.0.2指的是Linux通过N2N获得的IP地址。

同时,开启ip_forward,命令如下:

echo 1 > /proc/sys/net/ipv4/ip_forward   ** 临时开启

编辑/etc/sysctl.conf,修改net.ipv4.ip_forward = 1  ** 永久开启

上面的编辑保存后,执行:sysctl -p

到这里,就算完全完成了,可以通过内网间的设备互ping来进行测试。但是以上的ip route命令仅限于重启之前有效。若希望它永久有效,可以把该命令加入/etc/rc.local,并给予/etc/rc.local读写执行权限。

Enjoy~

 

[10.4更新] 若出现无法ping通其他N2N内网下Linux主机,请参阅本文章:ZeroTier内网主机互ping时出现destination host unreachable的解决方案

 

Ref: https://4fk.me/post/n2n-interconnection

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注

You must enable javascript to see captcha here!