在当前的 SD-WAN 与零信任网络架构生态中,基于网状网络(Mesh VPN)的内网穿透工具已成为主流。本文将以网络工程师视角,对当前最具代表性的两个打洞神器——Tailscale 和 ZeroTier——进行深度的实战分析与横向对比。

零信任与打洞机制

  1. Tailscale (基于 WireGuard) 基于现代、轻量、且被合并入 Linux 内核的 WireGuard 协议。主打:

    • 依赖中心的 Coordination Server 进行公钥交换和打洞协商(DERP中继)。
    • 流量端到端加密直接 P2P 穿透。
    • 优点:配置几乎为零,电池消耗极低(移动端),速度极快,自带内网 DNS (MagicDNS)。
    • 坑点:如果是极度严苛的 NAT4 嵌套(对称 NAT),打洞容易失败,导致默认通过海外自带的 DERP 中继转发,延迟和带宽受限。可以通过自建 DERP 节点优化解决。
  2. 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 中继节点降低延迟)