Tailscale 客户端删除多余 account

前言

由于之前部署 headscale 的服务器域名发生变化,必须更新各个 tailscale 客户端的配置。更新配置过程比较简单,对于 Windows 和 Mac 只需要在右键菜单中 add account 并切换过去就行,对于 Linux 可以先 logout 再重新 login,这个过程中 headscale 服务端中的配置不会被覆盖,因此各个客户端获得的 ip 也会保持不变。

Mac 平台误切换至无法访问的 account 导致卡死的解决方案

在 Application -> Tailscale.app -> 显示包内容 -> MacOS 目录启动终端,后续可以使用和其他平台类似的 CLI command 强制切换 account(参考 tailscale 的官方 user switching guide)。

1
2
3
4
5
6
7
8
# 显示当前所有 account
tailscale switch --list

# 切换至指定 account
tailscale switch <account>

# 给当前 account 增加别名
tailscale set --nickname=<nickname>

删除多余 account

上述 add account 的缺点在于此前的失效 account 也会在列表中显示,无论怎么 logout 也无法删除。后续使用中发现,部分机器重启后 tailscale 会一直尝试连接失效的 account,每次都需要手动切换成 active account,给使用带来了很大的困扰。

正常方式无法删除多余的 account,我们可以参考官方 uninstalling guide 来手动修改配置文件,之后卸载并重新安装 tailscale 客户端即可。这样的方式不会影响 headscale 服务端中的配置,同样也不会改变获得的 ip。

Windows

修改 C:\ProgramData\Tailscale\server-state.conf 文件的内容,其结构为

1
2
3
4
5
6
7
8
{
  "_current/S-1-5-21-1543750596-75798679-1832901484-1001": "...",
  "_machinekey": "...",
  "_profiles": "...",
  "profile-77c4": "...",
  "profile-a056": "...",
  "server-mode-start-key": "..."
}

其中所有值都以 base64 编码,可以通过 base64decode 解码,修改完成后再通过 base64encode 编码写回。按照自己的需求,解码 _profiles 找到不需要的 account 删除,并删除对应 profile-* 的项,保存后重新安装 tailscale 即可删除 account。

实际上应该有不用重装软件的方法,但我用 Process Monitor 也没有找到对应的配置文件在哪,只能暂时使用这种并不优雅的解决方案。

Linux

和 Windows 类似,修改 /var/lib/tailscale/tailscaled.state 文件的内容。

MacOS

未完待续(还在找配置文件)

京ICP备17016743号
Built with Hugo
主题 StackJimmy 设计