问题描述

  1. zerotier-cli 提示 401 错误
  2. ZeroTier(ZeroTier-Desktop-UI) 运行等几秒后闪退
  3. ZeroTier(ZeroTier-Desktop-UI) 一直提示"Waiting for ZeroTier system service..."

解决办法

  1. 删除 ~/Library/Application Support/ZeroTier 内的文件
  2. 卸载已安装的ZeroTier,在terminal中运行:
    sudo /Library/Application Support/ZeroTier/One/uninstall.sh
  3. 重新安装ZeroTier

问题原因

我遇到的情况是通过TimeMachine恢复后,因为权限问题,ZeroTier相关工具无法将正确的authtoken写入用户目录内,使得zerotier-cli及ZeroTier-Desktop-UI使用错误的authtoken连接zerotier-one,zerotier-one的http服务响应返回401。

其他细节

下载ZeroTier-Desktop源代码(Releases · zerotier/DesktopUI ),在serviceclient.rs的get_auth_token_and_port函数可以发现authtoken是读取home目录内的,然后对比了/Library/Application Support/ZeroTier/One和用户目录内的authtoken发现两者不一致。