maOS peers.d 缓存可能会卡死,无法添加 LEAF 对等体的路径条目;Daemon 通过 PLANET WHOIS 从未刷新。

作者: daniilino创建于 2026年5月12日更新于 2026年8月27日

TL;DR

在 macOS Tahoe 26.3.1 与 ZeroTier 1.16.1 环境下,在一个 NATed 企业局域网中,此设置直到大约 7 天前一直运行良好,LEAF 对等发现永远无法完成。zerotier-cli listpeers 显示具有 path: -latency: -1 的 LEAF;/peer/<addr> 返回 paths: []version: -1.-1.-1。守护进程还向 peers.d/<ztaddr>.peer 写入负值的"无路径"条目,这些条目在每次软修复(服务重启、leave/join、上行链路更改)后都会保留。forceTcpRelay 解决方案确实建立了与 204.80.128.1:443 的 TCP 连接,但仅在某些情况下才真正转发流量。 可能与 #2584 有关(相同的操作系统主版本、相同的 ZT 版本,还涉及与另一个 VPN 共存),但症状和代码路径不同。

环境

  • 操作系统: macOS Tahoe 26.3.1,构建 25D771280a(Apple Silicon,MacBook Pro)
  • ZeroTier: 1.16.1,从官方 .pkg 安装。二进制文件 mtime Dec 12 20:11:57 2025 — 约 5 个月未变。
  • 网络: 私有,默认流规则(accept;),5 个成员,所有成员均授权且在整个问题期间在中央上处于“活动 < 1 分钟”的状态。
  • **共存 VPN(在初步诊断期间):Homebrew OpenVPN /opt/homebrew/sbin/openvpn 使用 dev tun(经典的 tun 驱动,而不是 NetworkExtension/NEPacketTunnelProvider)。分割隧道(不使用 redirect-gateway)。仅推送特定的 10.x 路由。

时间 — 很可能是最近的 macOS 回归

此特定环境(相同的 Mac、相同的网络、相同的 ZT 安装、相同的 OpenVPN 配置)在 2026 年 5 月 5–6 日前一直运行良好。今天是 2026 年 5 月 12 日。

log show --predicate 'subsystem == "com.apple.SoftwareUpdate"' --info --last 14d

…显示了在 2026-05-05 和 2026-05-06 上的大量 OS 更新活动。ZeroTier 本身在该窗口中未被更新(statzerotier-one 确认了 Dec 12 20:11:57 2025)。与 macOS Tahoe 点版本而不是与 ZT 之间的强相关性。

症状

1. 企业局域网上永远不会形成 LEAF 对等路径

  • zerotier-cli infoONLINE
  • zerotier-cli listnetworksOK PRIVATE feth3618 10.147.18.235/24
  • 控制平面与网络控制器和几个 PLANET 之间的通信正常(具有降级的新鲜度 — 部分 PLANET 的 lastReceive 值为 100 秒以上,这些 PLANET 位于与其他一切都完全正常的同一上行链路)。
  • listpeers 中的 LEAF 对等节点:
    98da488706 - -1 - LEAF
    d624836ca0 - -1 - LEAF
    e751b8120a - -1 - LEAF
  • /peer/<ztaddr> 返回:
    { "address": "98da488706", "paths": [], "version": "-1.-1.-1", "latency": -1, "role": "LEAF" }
  • 过期后,守护进程会完全从 listpeers 中删除 LEAF 条目。
  • 该对等节点的 ZT IP 的内核路由在 feth 接口上添加了 REJECT 标志(<UP,HOST,REJECT,...>),而 ping 返回 No route to hostHost is down。 这在以下情况下持续:
  • launchctl kickstart -k system/com.zerotier.one
  • 完全杀死 OpenVPN + 等待 utunX 接口消失
  • zerotier-cli leave 35c192ce9b9531d1 + zerotier-cli join(成员 …

内容来源: zerotier/ZeroTierOne