Zerotier 几种模式的介绍
🛠 ZeroTier 常见网络模式(按拓扑和用途划分)
| 模式 | 原理 | 优点 | 缺点 | 典型场景 |
|---|---|---|---|---|
| 点对点直连(P2P) | 两个节点通过 ZeroTier 控制器交换握手信息后,直接建立加密隧道(UDP NAT 穿透) | 延迟低、带宽高 | 仅适合少量节点 | 两台服务器互联、远程桌面 |
| 全互联(Mesh) | 所有节点互相直连 | 任意节点间通信最快 | 节点多时连接数爆炸,维护成本高 | 小型团队、实验室 |
| 星型(Hub/Spoke) | 所有节点只连到中心节点(Hub),Hub 转发流量 | 易管理、可控出口 | Hub 成为瓶颈 | 统一出口上网、集中安全审计 |
| 路由模式(Gateway) | 某节点作为网关,ZeroTier 虚拟网卡与物理网卡做路由/NAT | 可访问整个内网 | 需配置路由表、防火墙 | 异地访问公司内网 |
| 桥接模式(Bridge) | ZeroTier 虚拟网卡桥接到物理交换网络 | 远程设备像在同一二层网络 | 广播风暴风险、性能受限 | 打印机、NAS、摄像头等二层设备接入 |
⚙ ZeroTier 网络配置关键选项(客户端侧)
ZeroTier 在每个网络的本地配置文件 <network-id>.local.conf 中,有几个布尔开关:
allowManaged=1
allowGlobal=0
allowDefault=0
allowDNS=0
1. Allow Managed IP(allowManaged)
-
作用:允许 ZeroTier 控制器下发并自动配置虚拟网卡的 IP 地址和路由(仅限私有网段,如 10.x.x.x、192.168.x.x)
-
原理:控制器通过“Managed Routes”功能,把 IP 和路由表推送到客户端,客户端自动写入系统路由表
-
用途:
-
自动分配 ZeroTier 内网 IP
-
自动添加访问其他网段的路由
-
注意:
-
关闭后需手动配置 IP 和路由
- 常与“Managed Routes”配合使用
2. Allow Default Route(allowDefault)
-
作用:允许 ZeroTier 将 0.0.0.0/0(默认路由)推送到客户端
-
原理:客户端会将所有非本地流量发往 ZeroTier 网关(Full Tunnel 模式)
-
用途:
-
全局代理上网(如统一出口、跨境访问)
-
安全控制(所有流量经过公司防火墙)
-
注意:
-
会覆盖本地默认路由,可能导致本地网络不可达
- 需确保网关节点有公网出口且带宽足够
- 常与“Allow Global”配合(允许全局 IP 路由)
3. Allow DNS(allowDNS)
-
作用:允许 ZeroTier 下发 DNS 服务器配置到客户端
-
原理:控制器在网络设置中配置 DNS 服务器地址,客户端接收后写入系统 DNS 配置
-
用途:
-
内网域名解析(如
server.company.local) -
统一使用内网 DNS(如 AD 域控)
-
注意:
-
不同系统支持程度不同(Windows/macOS/iOS/Android 支持较好,Linux 需额外配置)
- macOS 下
dig/nslookup可能不走系统 DNS,需要用scutil --dns检查 - 如果同时有本地 DNS,可能会出现优先级冲突
4. Allow Global(allowGlobal)
-
作用:允许 ZeroTier 下发公共 IP 段的路由(非私有网段)
-
用途:
-
访问公网但通过特定网关(如出口审计)
-
注意:
-
默认关闭,避免错误路由导致流量劫持
🔍 Managed Routes 与这些选项的关系
- Managed Routes 是 ZeroTier 控制器端的路由表配置
- 客户端是否接受这些路由,取决于:
- 私有网段 → 需
allowManaged=1 - 公网网段 → 需
allowGlobal=1 - 默认路由(0.0.0.0/0) → 需
allowDefault=1 - DNS 配置下发则独立于路由,由
allowDNS=1控制
🧩 常见组合场景
| 场景 | allowManaged | allowGlobal | allowDefault | allowDNS |
|---|---|---|---|---|
| 异地访问内网 | ✅ | ❌ | ❌ | ✅ |
| 全局代理上网 | ✅ | ✅ | ✅ | ✅ |
| 仅内网互通 | ✅ | ❌ | ❌ | ❌ |
| 内网 + 公网特定路由 | ✅ | ✅ | ❌ | ✅ |
⚠ 常见坑
- IP 段冲突:不同站点的内网网段不能重复,否则路由表会混乱
- 防火墙未放行:路由器做网关时需放行 ZeroTier 虚拟网卡(如
zt0)的转发和 NAT - DNS 优先级问题:系统可能优先用本地 DNS,导致内网域名解析失败
- 默认路由覆盖:开启 Allow Default 后,本地网络可能断开,需要静态路由保留本地网关