你的应用,在你的 Tailscale 网络里有私有地址。

用自己的设备打开。可以把应用分享给某个人,也可以通过链接分享,有效期到你选的日期。

通过 Homebrew 安装 TSLink
brew install --cask anydoor7/tap/tslink
macOS · Linux其他平台

访问私有应用的设备需要 Tailscale。 获取 Tailscale

独立项目,不由 Tailscale 开发,也未获其认可。

每个应用,一个私有地址
你的照片Immich

photos.<tailnet>.ts.net

你的影音Jellyfin

media.<tailnet>.ts.net

你的智能家居Home Assistant

home.<tailnet>.ts.net

你的设备

手机、平板和电脑

谁能访问,由你决定

你选择的人 你设定的期限
地址仅作示意。完成入网后,请使用 TSLink 实际返回的 URL。

先从自己的设备开始

换个设备,应用还在。

应用继续在原来的电脑或服务器上运行。用手机、平板或另一台电脑,在你的 tailnet 里访问。

一个入口页

私有入口页列出每位访问者可以打开的应用及其健康状态。

打开第一个应用

应用配方

熟悉的应用,少一些配置摸索。

查看应用配方

应用保留自己的登录。配方帮助你配置代理,不负责安装应用,也不会为没有认证的应用补上认证。

项目动态

发布与笔记。

所有更新

选择访问方式

同一个应用,三种访问方式。

自己使用

通过 tailnet,从自己的设备访问应用。每个应用都有独立的地址。

接收者需要: Tailscale,以及 tailnet 中的访问权限。

访问私有应用的设备需要 Tailscale。 获取 Tailscale

仍受 tailnet 策略约束。未设置人员或 allow 规则时,其他获网络策略允许的调用者也能连接。

创建私有分享

指定的人

按 Tailscale 登录名,给指定的人开放选定的 HTTP 或文件应用,并设定可调整的期限。

接收者需要: 安装 Tailscale 并登录;必要时还需接受该应用的设备邀请。

访问私有应用的设备需要 Tailscale。 获取 Tailscale

检查适用于 HTTP 和文件请求。原始 TCP 和开放式公网 Funnel 不支持按人授权。

分享给指定的人

浏览器访客

发送一个有期限的链接,访问单个 HTTP 应用。可以加设 PIN,访问结束后撤销链接。

接收者需要: 只需浏览器和链接;如设置了 PIN,还需要 PIN。

链接和 PIN 可以被转发,不能证明访客身份。主机需要通过 Funnel 开放公网入口。

创建访客链接
有截止时间的 HTML 报告

使用流程

想分享时,再选对象和期限。

阅读快速入门

以已运行在端口 2283 的 Immich 为例。先打开自己的私有地址,再按需要分享。

  1. 1

    给应用一个私有地址

    注册应用,再获取实时 URL。需要时,TSLink 会自动启动后台网关。

    tslink share 2283 --name photos
    tslink url photos --wait

    首次使用时,先打开打印出的 Tailscale 授权 URL,完成审批,再运行第二条命令。如果 share 返回了不同的名称,请使用返回的名称。

  2. 2

    选一个人,定一个期限

    允许这个人访问 photos 七天,同时遵守 tailnet 策略。应用自身的登录仍然保留。

    tslink people add alice@example.com --apps photos --for 7d

    用对方实际的 Tailscale 登录名替换 alice@example.com。对方需要登录和网络权限;外部人员可能还需要逐应用邀请。

  3. 3

    也可以发一个浏览器访客链接

    对方没有 Tailscale?创建三天有效的链接,并在隐藏输入提示中设置 PIN。

    tslink guest create photos --for 3d --pin --public --print-link

    --public 开启带强制访客验证的 Funnel;--print-link 显示链接。请单独发送 PIN,并先用 status 和 doctor 检查可用性。

  4. 4

    随时收回访问权

    移除该人员的受管授权,应用继续运行。对方的下一个请求就会被拒绝。

    tslink people remove alice@example.com

    浏览器访客请使用 tslink guest revoke 加上对应授权 ID。撤销无法收回已下载的数据;已经接受的私有连接也可能继续。

    了解访客链接的撤销方式

与 Tailscale 配合使用

什么时候需要 TSLink?

在自己的设备上访问一个应用,Serve 就够了。TSLink 将应用地址、期限和访问权限变更放进同一个工作流。

要做的事只用 TailscaleTSLink
用手机打开一个网页应用只用 Tailscaletailscale serve 3000 就够了TSLinktslink share 3000
多个应用,各有名称只用 Tailscale配置 Services,或使用独立节点TSLink每个应用执行一次 share/add;逐个注册节点
一个人、一个应用、七天只用 Tailscale配置策略规则,再使用 JIT 工具或手动移除TSLinktslink people add alice@example.com --apps photos --for 7d(HTTP/文件)
浏览器链接,三天有效只用 Tailscale公开 Funnel;添加访问门禁并安排到期关闭TSLinktslink guest create photos --for 3d --public --print-link(仅 HTTP)

私有访问的接收者需要 Tailscale。访客链接是公开且可转发的访问凭证。

阅读完整指南

CLI + MCP

让 AI 助手帮你管理。

让智能体为 localhost 上的应用设置私有地址,报告准确 URL,用完再移除。受限角色可以查看应用,并管理你指定应用的授权。

配置 AI 助手
{"mcpServers":{"tslink":{"command":"tslink","args":["mcp"]}}}
四种角色,明确的权限范围
viewer、app-operator、people-manager、owner。可为支持的角色绑定应用和最长期限。本地默认是 owner;MCP 权限范围不约束助手的 shell 或文件系统。
owner 会话提供 44 个工具
受限角色可见的工具更少。请通过实时 tools/list 确认当前会话的工具集合;访客和公网变更仍仅限 owner。
遇到 needs_login,需要人来接手
打开入网 URL 并完成审批,然后获取实时应用 URL、实际验证访问。出现授权提示不代表分享已经可用。

先了解边界

控制明确,限制也说清楚。

阅读架构说明

01

撤销能做到什么

人员授权从下一个请求起失效,无法收回已传输的数据,也不能终止已接受的私有连接。访客撤销还会取消受跟踪的访客数据流。

02

选择合适的访问模型

人员授权适用于 HTTP 和文件应用。原始 TCP 依赖 tailnet 策略与后端登录。浏览器访客链接可以被转发。

03

应用仍在你的主机上

TSLink 管理单台主机上的访问,不安装应用、不隔离主机进程,也不汇总多台主机。网络传输和 HTTPS 由 Tailscale 提供。

从一个应用开始

装在运行应用的那台电脑上。

支持 macOS、Linux 和 Windows。应用继续在原处运行,TSLink 负责管理访问方式。

需要 Tailscale 账号,并启用 MagicDNS 和 HTTPS。访问私有应用的设备需要安装 Tailscale。访客链接和 Web 应用的公网访问需要 Funnel 权限,访客只需浏览器。

通过 Homebrew 安装 TSLink
brew install --cask anydoor7/tap/tslink
macOS · Linux其他平台

发布文件附带校验和与构建证明;安装指南包含验证步骤。

几个常见问题

开始之前,你可能想知道。

阅读完整 FAQ

从小处开始

从一个私有地址开始。

安装 TSLink,在自己的设备上打开一个应用。想分享时再分享。

觉得有用?给 TSLink 点个 Star,方便下次找到。 要接收发布通知,请选择 Watch → Custom → Releases。