1. RouterOS安装容器
/system/device-mode/update container=yes
2. 创建 veth 网络
/interface veth add name=zerotier address=10.10.10.86/24 gateway=10.10.10.253
/interface bridge add name=bridge1 如果已建桥,这条不用
/interface bridge port add interface=zerotier bridge=bridge1
3. 上传zerotier.tar至routeros系统,启动容器
/container add file=zerotier.tar interface=zerotier root-dir=container/zerotier start-on-boot=yes
4. 加入ZeroTier网络
- 查看容器:
container/print
,如果状态显示为 running,说明容器已启动。 - 进入容器(容器编号2):
/containe/shell 2
- 加入网络:
zerotier-cli join 网络id
4. RouterOS静态路由Route list设置
- Dst Address :zerotier网段
- Gateway: ros docker容器的IP
5. RouterOS防火墙设置及nat设置
目的 | 配置思路 |
---|---|
1️⃣ 其他 ZeroTier 节点能访问 RouterOS 本地局域网(如 10.10.10.0/24) | 添加路由 + 防火墙 |
2️⃣ RouterOS 局域网可以访问 ZeroTier 网络设备(双向) | 添加 NAT + 防火墙 |
3️⃣ ZeroTier 访问外网(例如 ZeroTier 远程设备能上网) | 添加 SNAT 伪装 |
4️⃣ 允许容器流量转发 | 防火墙允许 veth 接口转发 |
✅ 防火墙设置(允许转发)
1️⃣ 允许 veth 到本地网络通信(ZeroTier → LAN)
/ip firewall filter
add chain=forward in-interface=bridge1 src-address=192.168.192.0/24 dst-address=10.10.10.0/24 action=accept comment="ZeroTier → LAN"
veth-zerotier
是你给容器 veth 接口的命名(可用/interface print
确认)
2️⃣ 允许 LAN 到 ZeroTier 网络(可选)
/ip firewall filter
add chain=forward in-interface=bridge1 src-address=10.10.10.0/24 dst-address=192.168.192.0/24 action=accept comment="LAN → ZeroTier"
✅ NAT 设置(ZeroTier 上网 & 访问 LAN)
1️⃣ SNAT:ZeroTier → 互联网
/ip firewall nat
add chain=srcnat src-address=192.168.192.0/24 out-interface=pppoe-out1 action=masquerade comment="Zerotier 上网"
2️⃣ DNAT(如果你要从 ZeroTier 远程访问内网服务)
/ip firewall nat
add chain=dstnat src-address=192.168.192.0/24 dst-port=80 protocol=tcp action=dst-nat to-addresses=10.10.10.100 to-ports=80 comment="Zerotier 访问内网 80 端口"
✅ 路由设置(可选)
如果其他设备(非 RouterOS)需要访问 ZeroTier 网络,可以在 RouterOS 添加静态路由:
/ip route
add dst-address=192.168.192.0/24 gateway=10.10.10.86 comment="Route to Zerotier container"
✅ 验证通信是否正常
在 RouterOS 上 ping:
/ping 192.168.192.1
在其他 LAN 设备上 ping:
ping 192.168.192.x # 其他 ZT 节点