在网络管理中,有时需要在ZeroTier虚拟网络和物理网络之间进行路由设置,以便实现远程访问你的局域网(LAN)。本教程将介绍一种简单的模式,可以帮助你实现这一目标,而不需要访问LAN的路由器或遇到桥接的一些问题。这个模式需要在你的LAN上运行Linux PC或虚拟机,以及运行iptables的设备,如树莓派。本教程将指导你进行NAT/Masquerade设置,以便在ZeroTier和物理网络之间进行路由。
请注意,如果你的路由器支持运行ZeroTier,那么最好使用路由器厂商提供的ZeroTier包,而不是使用本文的方法。许多路由器厂商和操作系统都提供了ZeroTier包。
可能的缺点
在使用这种方法时,可能会遇到一些限制,包括:
- 不能在不同网络之间进行广播/多播(但移动操作系统通常也不允许这样做)。
- 不能从LAN主动连接到外部ZeroTier客户端。
摘要
下面是在ZeroTier和物理网络之间进行路由设置的摘要步骤:
- 安装ZeroTier。
- 添加管理路由到ZeroTier网络(在my.zerotier.com上进行)。
- 启用IP转发。
- 配置iptables。
所需信息
在开始之前,请收集以下所需信息,以便在配置过程中使用:
- ZeroTier网络ID($NETWORK_ID)
- ZeroTier接口名称($ZT_IFACE)
- 物理接口名称($PHY_IFACE)
- ZeroTier子网
- 物理子网($PHY_SUB)
- ZeroTier路由器的IP地址($ZT_ADDR)
步骤
步骤1:安装ZeroTier
首先,安装ZeroTier。你可以从ZeroTier的官方网站下载安装程序并进行安装。安装完成后,运行以下命令以加入ZeroTier网络,并在my.zerotier.com上进行授权:
sudo zerotier-cli join $NETWORK_ID
sudo zerotier-cli listnetworks
步骤2:配置ZeroTier管理路由
登录到my.zerotier.com,找到你的ZeroTier网络($NETWORK_ID),然后在“设置”中添加管理路由。管理路由会自动添加到所有加入该ZeroTier网络的设备上。配置管理路由时,请确保目标设置如下:
- 目标:$PHY_SUB
- 通过:$ZT_ADDR
例如:
- 目标:192.168.100.0/23
- 通过:172.27.0.1
请注意,目标路由应设置为略大于实际物理子网的范围,以便既在物理网络上又在ZeroTier网络上的设备优先选择物理连接。
步骤3:启用IP转发
启用IP转发的方法可能因Linux发行版而异,但通常包括以下步骤:
编辑/etc/sysctl.conf
文件,取消注释net.ipv4.ip_forward
以在启动时启用转发。
立即启用IP转发,运行以下命令:
sudo sysctl -w net.ipv4.ip_forward=1
步骤4:配置iptables
在进行iptables配置之前,请分配一些shell变量以便在命令中使用。个性化这些变量以匹配你的网络设置:
PHY_IFACE=eth0
ZT_IFACE=zt7nnig26
然后,添加iptables规则以进行NAT设置和数据包转发:
sudo iptables -t nat -A POSTROUTING -o $PHY_IFACE -j MASQUERADE
sudo iptables -A FORWARD -i $PHY_IFACE -o $ZT_IFACE -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i $ZT_IFACE -o $PHY_IFACE -j ACCEPT
最后,保存iptables规则以便在下次启动时生效:
sudo apt install iptables-persistent
sudo bash -c iptables-save > /etc/iptables/rules.v4
步骤5:测试
现在,你已经完成了路由设置。可以通过以下步骤测试它是否正常工作:
- 关闭手机上的Wi-Fi。
- 将手机连接到ZeroTier网络并进行授权。
- 尝试访问物理LAN上的某些内容。
结论
通过本教程,你学会了如何在ZeroTier虚拟网络和物理网络之间进行路由设置,以实现远程访问你的LAN。这个模式可以在不访问LAN路由器的情况下实现,同时避免了一些桥接引发的问题。
希望这个教程对你有所帮助。如果你有任何其他问题或需要更多的帮助,请随时联系我们。祝你成功配置你的ZeroTier网络!