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 节点

如果觉得我的文章对你有用,请随意赞赏