在当前的 SD-WAN 与零信任网络架构生态中,基于网状网络(Mesh VPN)的内网穿透工具已成为主流。本文将以网络工程师视角,对当前最具代表性的两个打洞神器——Tailscale 和 ZeroTier——进行深度的实战分析与横向对比。
零信任与打洞机制
-
Tailscale (基于 WireGuard) 基于现代、轻量、且被合并入 Linux 内核的 WireGuard 协议。主打:
- 依赖中心的 Coordination Server 进行公钥交换和打洞协商(DERP中继)。
- 流量端到端加密直接 P2P 穿透。
- 优点:配置几乎为零,电池消耗极低(移动端),速度极快,自带内网 DNS (MagicDNS)。
- 坑点:如果是极度严苛的 NAT4 嵌套(对称 NAT),打洞容易失败,导致默认通过海外自带的 DERP 中继转发,延迟和带宽受限。可以通过自建 DERP 节点优化解决。
-
ZeroTier (二层虚拟交换机) 相当于在全球拉了一台巨大的二层交换机。
- 自创的加密协议。
- 通过 Planet (根节点) 和 Moon (行星中继节点) 辅助打洞。
- 优点:不仅支持三层路由,还支持二层桥接,连组播/广播协议(比如各种跨地域局域网游戏、智能家居自动发现)都能跑。
- 坑点:特定网络环境下与 Planet 握手可能不畅(建议自建 Planet 或 Moon 提升稳定性),移动端耗电略高。
实际使用场景分析(干货)
场景一:旁路由与出口节点 (Exit Node)
Tailscale 胜。
Tailscale 原生自带了 Subnet Routing (子网路由) 和 Exit Node (出口节点) 功能。比如将软路由配置为 Exit Node,在外部网络连上 Tailscale 后,就能直接把所有流量全局代理回该节点,且只需一行命令即可开启。ZeroTier 实现同样的功能需要手搓大量的 iptables NAT 和路由表规则,维护成本较高。
注:在实战部署中,曾观察到 Tailscale Exit Node 访问特定目标端点发生黑洞截断的问题,本质是中间链路 MTU 不匹配导致的大包丢弃。最终通过在防火墙增加一条 MSS Clamping (iptables -t mangle) 可以完美解决。这也是 WireGuard 在复杂宽带环境下常见的排错考点。
场景二:跨网段大二层互通
ZeroTier 胜。 如果需要两个异地机房的设备不仅能互相 Ping 通 IP,还需要接收局域网内的 ARP 请求(例如为了某些老旧工控设备或者 NAS 的 Bonjour 自动发现协议),ZeroTier 几乎是无可替代的方案。而 Tailscale 纯粹是三层网络隧道,无法透传二层数据包(MAC 地址)。
场景三:企业级访问控制 (ACL)
Tailscale 完胜。 Tailscale 的 ACL 规则统一配置在控制台的 JSON 策略里,基于身份(Identity)和标签(Tag)而不是单纯依赖 IP 控制。员工使用企业账号登录,默认集成 SSO(单点登录),权限回收一键切断。面板直观显示权限矩阵。ZeroTier 同样支持流控规则(Flow Rules),但语法底层晦涩。
结语
对于 90% 只想快速、安全地穿透回局域网纳管内部设备的用户,首选 Tailscale (建议搭配自建 DERP 防打洞失败)。 如果业务强依赖二层广播域穿透实现异地组网交互,则必上 ZeroTier (配合自建 Moon 中继节点降低延迟)。