内置 Tailscale
ServerCC 内置了 Tailscale 网络支持。你可以直接从 App 连接 Tailscale 网络中的服务器,无须在设备上安装全局 Tailscale VPN。
为什么内置 Tailscale?
传统方式下,从 iOS 连接 Tailscale 网络中的服务器需要 Tailscale App 作为全局 VPN 运行。这意味着:
- 设备的所有流量都通过 Tailscale 路由
- iOS 上同一时间只能有一个 VPN 处于活跃状态
- 可能与你需要的其他 VPN 应用冲突
ServerCC 通过将 Tailscale 网络直接嵌入 App 来解决这个问题。Tailscale 连接仅在 App 级别生效,不会影响设备上的其他网络流量。
配置方法
Tailscale 按服务器配置。在添加或编辑服务器时启用。
从 Tailscale 获取 Auth Key
前往 Tailscale 管理控制台 生成一个 Auth Key。你可以根据需要选择可重复使用的密钥或一次性密钥。
在服务器表单中启用 Tailscale
添加或编辑服务器时,滚动到 Tailscale 部分,打开通过 Tailscale 连接开关。在出现的 Auth Key 输入框中粘贴你的密钥。
将主机设置为 Tailscale 地址
在主机字段中,使用服务器的 Tailscale IP 地址(如 100.x.y.z)或 MagicDNS 主机名。ServerCC 会通过内置的 Tailscale 网络路由 SSH 连接。
如果你的 Tailscale 网络启用了 MagicDNS,你可以直接使用机器名(如 my-server)而不是 IP 地址。
连接流程
当你打开启用了 Tailscale 的服务器时,ServerCC 会实时显示连接进度:
- 启动 Tailscale 网络 — App 作为临时节点加入你的 Tailscale 网络
- 通过 Tailscale 连接 — 通过 Tailscale 隧道拨号目标服务器
- 设置连接 — 本地 TCP 代理将 Tailscale 隧道桥接到 SSH 客户端
- 建立 SSH 连接 — SSH 认证通过隧道正常进行
服务器详情页面还提供了绕过 Tailscale 直接连接的选项。
连接失败时
ServerCC 会根据本地 Tailscale 客户端上报的 backend state 对失败进行分类,错误提示会直接指向实际原因:
- Auth Key 无效 / 已过期 — 需要在 Tailscale 管理控制台轮换密钥,然后在 ServerCC 中更新服务器配置
- 仍在认证中 — 节点正在建立,稍候重试通常即可成功
- 无法路由到主机 — 目标机器不在线或未加入你的 tailnet
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 中编辑服务器来更新。