2026/03/05

为什么 TSLink 使用 Tailscale

tsnet 如何支持私有本地服务分享、Tailscale 已提供什么,以及 TSLink 的具名注册表和 agent 交接位于哪里。

本地预览通常只能从运行它的机器访问。Tailscale 让另一台获策略允许的设备访问私有节点,无需开放公网入站端口。TSLink 内嵌 tsnet,使每个注册服务可拥有独立的 tailnet 节点和名称。

Tailscale 已提供的能力

Tailscale Serve 可私有分享本地服务或文件。Tailscale Services 也提供具名服务身份,但有管理员设置流程。Funnel 用于有意的公网暴露。TSLink 不把这些能力宣称为独有。

TSLink 当前侧重从注册表管理多个具名本地服务,并返回结构化 CLI JSON 或 MCP 结果。例如,tslink share 3000 --name preview --json 可以交给 agent 一个准确的私有 URL,或包含授权 URL、需要人打开的 needs_login 结果。

能力边界

每个 TSLink 服务拥有独立 tsnet 网络身份。这影响 tailnet 可达性,但不沙箱化本地进程。代理和文件 HTTP 服务使用 Tailscale HTTPS listener;原始 TCP 没有 TSLink HTTP 身份头或 TLS 终止。TSLink 节点到本地后端的跳转可能是明文。节点可达性仍由 Tailscale 策略管理,应用也可能需要自身认证。

除非同时用 --funnel 与 --public 明确请求公网 Funnel,否则 TSLink 保持服务私有。代理和文件 HTTP 的 --allow 可按调用者身份收紧访问,但不替代 tailnet 策略。

安装 TSLink v0.1.1。