内置 Tailscale

ServerCC 内置了 Tailscale 网络支持。你可以直接从 App 连接 Tailscale 网络中的服务器,无须在设备上安装全局 Tailscale VPN。

为什么内置 Tailscale?

传统方式下,从 iOS 连接 Tailscale 网络中的服务器需要 Tailscale App 作为全局 VPN 运行。这意味着:

  • 设备的所有流量都通过 Tailscale 路由
  • iOS 上同一时间只能有一个 VPN 处于活跃状态
  • 可能与你需要的其他 VPN 应用冲突

ServerCC 通过将 Tailscale 网络直接嵌入 App 来解决这个问题。Tailscale 连接仅在 App 级别生效,不会影响设备上的其他网络流量。

配置方法

Tailscale 按服务器配置。在添加或编辑服务器时启用。

1

从 Tailscale 获取 Auth Key

前往 Tailscale 管理控制台 生成一个 Auth Key。你可以根据需要选择可重复使用的密钥或一次性密钥。

2

在服务器表单中启用 Tailscale

添加或编辑服务器时,滚动到 Tailscale 部分,打开通过 Tailscale 连接开关。在出现的 Auth Key 输入框中粘贴你的密钥。

3

将主机设置为 Tailscale 地址

主机字段中,使用服务器的 Tailscale IP 地址(如 100.x.y.z)或 MagicDNS 主机名。ServerCC 会通过内置的 Tailscale 网络路由 SSH 连接。

提示

如果你的 Tailscale 网络启用了 MagicDNS,你可以直接使用机器名(如 my-server)而不是 IP 地址。

连接流程

当你打开启用了 Tailscale 的服务器时,ServerCC 会实时显示连接进度:

  1. 启动 Tailscale 网络 — App 作为临时节点加入你的 Tailscale 网络
  2. 通过 Tailscale 连接 — 通过 Tailscale 隧道拨号目标服务器
  3. 设置连接 — 本地 TCP 代理将 Tailscale 隧道桥接到 SSH 客户端
  4. 建立 SSH 连接 — SSH 认证通过隧道正常进行

服务器详情页面还提供了绕过 Tailscale 直接连接的选项。

连接失败时

ServerCC 会根据本地 Tailscale 客户端上报的 backend state 对失败进行分类,错误提示会直接指向实际原因:

  • Auth Key 无效 / 已过期 — 需要在 Tailscale 管理控制台轮换密钥,然后在 ServerCC 中更新服务器配置
  • 仍在认证中 — 节点正在建立,稍候重试通常即可成功
  • 无法路由到主机 — 目标机器不在线或未加入你的 tailnet
短暂故障不会销毁 Auth Key

ServerCC 不再因短暂的启动失败而清空本地 Tailscale 状态目录,因此网络抖动或短暂的后端问题不会"烧掉"一个可重用的 Auth Key。只有当 Tailscale 自身报告密钥无效或过期时才需要重新生成。

工作原理

配置 Tailscale 后,ServerCC 使用提供的 Auth Key 作为临时节点加入你的 Tailscale 网络。这一切都在 App 内部完成:

  • App 建立用户空间的 Tailscale 连接,不占用系统 VPN 通道
  • 使用相同 Auth Key 的服务器共享 Tailscale 节点(引用计数)
  • SSH 连接通过本地 TCP 代理桥接 Tailscale 隧道
  • 所有其他流量(非 Tailscale 服务器、网页浏览、其他应用)不受影响
  • 你可以同时连接 Tailscale 和非 Tailscale 服务器

与 Tailscale App 共存

由于 ServerCC 使用 App 级别的 Tailscale 连接,它独立于官方 Tailscale App 运行。你可以:

  • 在设备上有其他 VPN 活跃的同时使用 ServerCC 的 Tailscale 功能
  • 同时运行官方 Tailscale App 和 ServerCC 而不会冲突
  • 保持 Tailscale App 断开连接,仅在 ServerCC 中使用 Tailscale 网络
注意

Auth Key 安全存储在 iOS 钥匙串中(按服务器存储)。如果密钥过期,你需要从 Tailscale 管理控制台生成一个新的,并在 ServerCC 中编辑服务器来更新。