2026/03/01

认识 TSLink:按名称分享本地服务

Go CLI:在私有 tailnet 内分享已有应用或文件,再用 CLI JSON 和 MCP 管理具名服务。

TSLink 从一个具体任务出发:在另一台 Tailscale tailnet 设备上打开本机运行的应用或文件。它把每个服务注册为独立的 tsnet 节点,赋予名称,并允许之后取回地址。Tailscale Serve 本身已支持私有分享;TSLink 增加了多服务具名注册表和结构化 CLI/MCP 交接。

安装 TSLink v0.1.1。

第一次私有分享

假设本机已有应用监听 localhost:3000:

bash
tslink share 3000 --name preview --json

结果会包含实际私有 URL,或者返回 data.status: needs_login 和 data.auth_url。如需批准,打开授权 URL、批准新节点,然后取回实际地址:

bash
tslink url preview --wait

在同一 tailnet 内、且获策略允许的另一台设备上打开返回的 URL。文件或目录也可用相同的分享路径。完整首次流程见快速开始。

管理多个服务

使用 tslink add 保留具名服务(需要时会启动后台网关),tslink list 或 tslink status --urls 检查状态。代理和文件 HTTP 服务可用 --allow 按 Tailscale 身份过滤请求;原始 TCP 依赖 tailnet 策略和目标服务自身认证。独立网络身份不代表主机进程隔离。

当前自动化可使用 CLI --json 和 MCP 控制服务器。早期开发版本也提供过本地 JSON-over-stdio 接口;该顶层命令现已退役。托管第三方 MCP 服务器 是另一项任务:将该 HTTP 服务器注册为代理服务。

TSLink 仍是开发中的本地工具。路线图 区分已交付行为和实验性设想。