跨地区、多局域网、NAT、异构环境的终极解决方案
ZeroTier 和 Tailscale 都是优秀的组网工具,但它们各有优势,也各有痛点:
| 特性 | ZeroTier | Tailscale |
|---|---|---|
| 登录速度 | 一般 | 快 |
| 多地区稳定性 | 较好(支持 Moon) | 较好(WireGuard) |
| 穿透能力 | 强,需 Moon 加强 | 很强(DERP) |
| 子网路由 | 强 | 强 |
| 出口节点 | 支持 | 支持 |
| Controller | 自建(ztncui) | 仅官方 |
| 网络结构 | 灵活 | 简单直接 |
为什么要“双栈”?
在真实网络环境中,单靠一套组网方案不能完美应对所有场景:
- Tailscale 登录快但跨国网络有时抖动
- ZeroTier 有 Moon 依赖,偶尔 handshake 慢
- 不同设备(OpenWrt/Windows/Linux/Mac)兼容性不同
- 跨局域网互访时,两者都有强项
因此:
最稳的做法是:设备同时加入 Tailscale + ZeroTier,两套网络互为冗余,提高可靠性与访问质量。
1. 双栈网络拓扑概念
┌──────────────┐
│ 服务器节点 A │
│ ZeroTier + │
│ Tailscale │
└───────┬──────┘
│
│ 同时加入两个 Overlay 网络
│
┌───────────────┼────────────────┐
│ │ │
┌───────┴───────┐ ┌─────┴────────┐ ┌─────┴────────┐
│ 家庭网络 B │ │ 公司网络 C │ │ VPS 网络 D │
│ ZT + TS │ │ ZT + TS │ │ Only TS/Only ZT│
└───────────────┘ └──────────────┘ └──────────────┘
每台设备拥有:
- ZeroTier IP(通常是 192.168.xxx.xxx)
- Tailscale IP(100.x.x.x)
双链路互访:
- ZeroTier 访问失败 → 自动切回 Tailscale
- Tailscale 抖动 → ZeroTier Moon 继续畅通
2. 适合双栈的典型设备
| 设备 | 推荐 |
|---|---|
| OpenWrt 路由器 | ZeroTier(子网路由)+ Tailscale(出口节点) |
| 软路由 / x86 | 同时启用两个,性能无压力 |
| NAS | 双栈访问文件系统最稳定 |
| 服务器 / VPS | 双入口防止 Cloudflare 断流、运营商限速 |
| Windows / Mac / Linux 工作站 | 自动选择最通畅链路 |
3. 双栈部署流程概述
以下为推荐的部署顺序:
- ZeroTier 组网
- 建立 ZT 网络
- 可使用 Moon / 自建 Controller(ztncui)
- 路由器加入、子网路由开启
- Tailscale 组网
- 各设备执行
tailscale up - 路由器启用子网路由、出口节点(可选)
- 各设备执行
- 路由互通与策略
- ZeroTier 负责跨网段通信
- Tailscale 作为低延迟链路备用
- 必要时设置策略路由、分流
- 跨网络访问策略
- ZT & TS 双 IP 均可访问
- 监控链路质量选择最佳路径
4. OpenWrt 双栈配置(核心部分)
4.1 安装 ZeroTier
opkg install zerotier
/etc/init.d/zerotier start
/etc/init.d/zerotier enable
加入网络:
zerotier-cli join <zt-network-id>
开启子网路由:
zerotier-cli set <network-id> allowDefault=1
zerotier-cli set <network-id> allowGlobal=1
4.2 安装 Tailscale
opkg update
opkg install tailscale tailscaled
/etc/init.d/tailscale start
/etc/init.d/tailscale enable
登录:
tailscale up
子网路由:
tailscale up --advertise-routes=192.168.1.0/24
也可以启用出口节点:
tailscale up --advertise-exit-node
5. 双栈路由策略建议
你可以让两个 Overlay 网络各司其职:
方案 A:ZeroTier 主路由 + Tailscale 备份
- ZeroTier:跨设备 LAN 访问
- Tailscale:连不上就 fallback
最佳适用:
- 多局域网互访
- 企业互联
方案 B:Tailscale 主出口 + ZeroTier 局域网
- Tailscale:用于远程访问公网(Exit Node)
- ZeroTier:用于局域网内互访、NAS、办公
最佳适用:
- 家庭 / 工作室网络
方案 C:动态选路(智能)
许多系统默认支持智能选择:
| 系统 | 智能选路 |
|---|---|
| Windows | 是 |
| macOS | 是 |
| Linux | 通过 fwmark 识别 |
| OpenWrt | 可设置策略,但需手动 |
这是双栈最灵活模式。
6. 常见双栈使用技巧
技巧 1:用 ZeroTier 访问内网,用 Tailscale 当出口 VPN
很多人这样配置:
NAS / 摄像头 / 路由器:通过 ZeroTier 访问
浏览器 / 手机外网:通过 Tailscale Exit Node 出去
完全两不耽误。
技巧 2:跨国访问,使用 Tailscale DERP + ZeroTier Moon 组合
- Tailscale → DERP 中继优先,速度快
- ZeroTier → Moon 稳定,穿透强
两个同时开,跨国体验大幅提升。
技巧 3:容器专用网络使用 ZeroTier,系统网络使用 Tailscale
例如:
- Docker 内的服务走 ZT
- 系统本身走 TS
方便分流、避免冲突。
7. 是否会冲突?需要注意什么?
实际上 ZeroTier 与 Tailscale 完全不会冲突,因为:
- ZeroTier 走自己的 Tap 接口(ztxxxx)
- Tailscale 走 tun 接口(tailscale0)
- 都是虚拟网卡
- 都是 P2P Overlay 网络,各走各的链路
只是:
- 不要让两个都开启 advertise-default-route(出口)
- 避免默认路由被覆盖
→ 否则可能流量跑偏
建议:出口节点只开 Tailscale
ZeroTier 不开默认路由(只开子网路由)
8. 最佳实践(推荐方案)
如果你不知道怎么设计,下面是我为你总结的最优方案:
✅ 家庭 / 公司:
ZeroTier 负责局域网互访
Tailscale 负责远程登录 + 外网出口
✅ Linux 服务器 / VPS:
Tailscale 主链路
ZeroTier 备用链路(或内网共享链路)
✅ OpenWrt 路由:
ZeroTier → 子网路由
Tailscale → 出口节点(或分流)
✅ NAS:
双栈运行,随时用最快链路访问文件
(Synology / QNAP 都很适配)
9. 结语:双栈是目前最稳的组网方案
单靠 ZeroTier 或 Tailscale 都有一定局限性:
- 某些国家/地区对某一协议限速
- 某些时间段 ZeroTier handshake 慢
- 某些设备对 Tailscale 内核支持不足
- NAS、路由器等多设备混用更复杂
双栈混合,几乎可以保证任何地区、任何网络环境都能稳定互通。
这是自建私有网络最“保险”、最“通用”、最“稳”的方式。
