1. 高层概览(一句话总结)
Tailscale :构建在 WireGuard 之上,采用“控制平面 + 点对点 WireGuard 数据通道”的设计,主打基于身份的零信任(identity-based)网格(mesh)连接与简单易用的管理。(tailscale.com )
ZeroTier :实现为一个可编程的虚拟以太网/SDN 层(L2/L3) ,使用自有协议实现分布式控制器与数据交换,提供更灵活的网络抽象(例如虚拟 LAN、桥接、流量规则)。(docs.zerotier.com )
2. 架构对比:控制面 vs 数据面
Tailscale
数据面(Data plane) :直接利用 WireGuard(UDP-based)建立加密点对点隧道;WireGuard 提供轻量、固定密码套件(ChaCha20-Poly1305, Poly1305等)和高效内核/用户空间实现。Tailscale 在 WireGuard 之上管理密钥与点对点连接。(tailscale.com )
控制面(Control plane) :Tailscale 提供集中式控制平面(Tailscale 的服务或自托管控制器)负责身份验证、设备注册、密钥派发、并协助 NAT 穿透、DERP 中继的协调。控制平面不解密数据流;数据流仍为端到端加密。(tailscale.com )
ZeroTier
数据面 :ZeroTier 实现虚拟以太网,节点之间交换经过加密的以太网帧,协议支持 L2(桥接)与 L3(路由)语义,节点可以表现为“同一广播域”或通过路由互通。数据以 ZeroTier 自定义的封包格式在点对点链接上传输。(docs.zerotier.com )
控制面 :ZeroTier 使用**分布式网络控制器/根服务器(root servers / network controller)**概念来管理网络配置、授权和路由表。用户可以运行自己的控制器(开源 controller),控制器下发网络规则(rules engine/ACL-style)并可做更细粒度的 SDN 编程。(docs.zerotier.com )
3. 加密、密钥管理与身份认证
Tailscale(WireGuard为核心)
加密套件 :WireGuard 使用一套固定且现代的密码学构建(Curve25519/X25519 用于密钥交换,ChaCha20-Poly1305 用于对称加密/认证);Tailscale 数据面即为 WireGuard 的端到端加密。控制面使用基于 Noise/I K 样式的协议与 Tailscale 元数据服务进行握手与认证。(tailscale.com )
身份绑定 :Tailscale 将设备与用户/身份(如 Google/Azure/SSO 身份)绑定,管理面以身份(而非仅设备 IP)作为访问控制单元(ACLs)。这使访问策略能基于用户身份与组进行细粒度控制。(tailscale.com )
ZeroTier
加密与身份 :ZeroTier 为每个节点分配唯一的 cryptographic node ID / 公私钥对 (基于 Curve25519 等现代算法),流量在节点之间加密,控制平面/信任由网络控制器下发授权来决定哪些节点加入。ZeroTier 文档宣称使用“强、现代加密”;实现细节为其协议所定义(包括对 nonce/IV 管理的研究注记)。(docs.zerotier.com )
授权模型 :默认情况下网络可设为“受控加入”——控制器必须批准节点才能在网络中通信(类似于证书签名/白名单)。同时 Rules Engine 支持较细粒度流量控制(包过滤、规则链)。(docs.zerotier.com )
4. NAT 穿透与中继(实际连通性保障)
Tailscale
优先建立点对点(P2P)WireGuard 连接,使用 STUN-like 技术进行 NAT 打洞;当 P2P 不可达时会回退到 DERP(Tailscale 的中继/relay) ,通过中继保持连通性(流量仍端到端加密)。控制平面协助选择路径。(tailscale.com )
ZeroTier
也尝试 NAT 穿透(UDP 打洞等),并提供跨 NAT 的中继,当直接 P2P 不可达时使用其基础设施或自建桥接/中继。ZeroTier 更强调“虚拟以太网”连通,能通过桥接与本地 LAN 集成(但在严格 NAT/防火墙场景下可能需要额外配置)。(docs.zerotier.com )
5. 网络模型与寻址差异
Tailscale
L3(IP)网格 :为每台设备分配 stable 的 100.x.y.z 地址(Tailscale IP pool),并基于路由/策略进行 L3 互通。重点是“点对点 IP 路由”,容易与现有基于 IP 的工具与路由策略整合。支持子网路由和出口节点(exit nodes)。(tailscale.com )
ZeroTier
L2/L3 混合(可编程以太网) :ZeroTier 将设备放入一个虚拟以太网,节点可以有虚拟 MAC、虚拟网段,支持 VLAN/桥接/以太网广播等行为,适合需要 L2 特性(如某些发现协议、局域网游戏、虚拟机桥接)的场景。ZeroTier 也能作为 L3 路由器使用。(docs.zerotier.com )
6. 协议实现与可编程性
Tailscale :核心依赖 WireGuard(开放标准/实现),控制面由 Tailscale 自有实现,控制面可托管或自托管(Tailnet)。更强调“零信任”与基于身份的访问控制,API/管理面板用于自动化。适合快速部署和以身份为中心的场景。(tailscale.com )
ZeroTier :协议层更接近“软件定义网络 + 虚拟交换机”,提供 SDK(libzt)、Sockets API,可以把虚拟网络嵌入应用或产品中,支持更复杂的网络拓扑与流量编程。更灵活但也更需要网络设计/控制器运维。(docs.zerotier.com )
7. 典型包处理流程(简化说明)
Tailscale(A → B) :A 使用控制平面获取 B 的可达性信息与 WireGuard 公钥 → 尝试 UDP/NAT 打洞建立 WireGuard会话 → 若成功则直接以 WireGuard 数据包互通(端到端加密);若失败则经 DERP 中继转发(仍加密)。(tailscale.com )
ZeroTier(A → B) :A 和 B 向控制器注册并交换 node ID/路由信息 → 尝试直接建立 P2P 链路并封装以太网帧传输 → 若失败则使用中继/基础设施转发;控制器下发规则决定是否允许/如何转发。(docs.zerotier.com )
8. 优势/局限(技术原理角度)
Tailscale 的技术优势
Tailscale 的技术限制
本质为 L3/点对点网络,若应用强依赖 L2 广播或复杂局域网仿真(如某些发现协议),则不如 L2 解决方案自然支持。(tailscale.com )
ZeroTier 的技术优势
ZeroTier 的技术限制
协议实现细节相对自研化,某些加密/nonce 管理在历史上曾有公开的研究笔记(表明团队对性能与 IV 管理做过权衡),这要求审慎理解其安全参数与版本策略。对运维/规则引擎的错误配置可能带来复杂故障或安全后果。(ZeroTier )
1 个赞