TSLinkTSLink 文档

应用健康、到期与请求限制

检查后端就绪状态,查看到期预警,启用主人通知,并配置有限的上传限制。

查看 Markdown

TSLink 节点运行与后端应用健康是不同的事实。Daemon 运行期间会检查每个已注册后端,通过 CLI 状态、诊断和 MCP 报告健康与到期信息。

检查有用的应用行为

选择一个小型只读 endpoint,检查应用需要的依赖:

bash
tslink add preview --proxy localhost:3000 --health-path /ready   --health-status-min 200 --health-status-max 299 --health-body ready   --health-timeout 5s --health-interval 1m
tslink status --json
tslink list --verbose
tslink doctor --json

应用需要实现 /ready。默认 HTTP 检查为 GET /、状态 200–299、不检查正文、5 秒超时与 1 分钟间隔,不跟随重定向。正文匹配只检查前 64 KiB,使用不敏感的子串。同名 add 也会替换其他服务设置。

状态含义
healthy最近检查成功
degraded连续一至两次检查失败
down连续三次检查失败
unknown没有当前可用的观察,包括已过时的检查

TCP 检查连接后端;文件检查共享路径。后端健康不能证明远端 tailnet 可达性、TLS 或策略。还需从获准访问设备打开真实应用 URL。监控不会重启应用。

到期与主人通知

状态报告节点实际观察到的 key deadline,不猜测寿命。剩余 14 天开始预警,3 天进入 critical;未知期限单独标明,凭据期限估计也单独注明。

健康变化与到期阈值写入本地通知记录。如需通知,在 TSLink 配置目录创建 owner-controlled alerts.json(POSIX 权限 0600),选择一个 command 或 HTTPS webhook,然后重启 daemon:

json
{"command":["/absolute/path/to/your-notifier","owner-channel"]}

命令通过 stdin 接收事件 JSON,使用 daemon 的权限。通知投递有时限和频率限制,为 best effort、at most once,可能丢失且不会重试。这些主人通知的频率限制不等于 HTTP 请求限流。事件字段与 webhook 配置见 TSLink 通知指南。

公共 Funnel 有独立的开放截止时间。只有明确公开、应用自身认证合适时才使用 tslink add demo --proxy localhost:3000 --funnel --public --funnel-ttl 1h。新的 Funnel 默认开放 24 小时,公网上限默认 7d,拒绝新的公开 never,见期限。人员期限只适用于私有 HTTP/文件。

上传与请求限制

照片和视频上传应选择有限的完整请求大小,包含 multipart metadata:

bash
tslink add photos --proxy localhost:2283 --max-request-body 20GiB --request-read-timeout 2m

默认请求体 32 MiB、读取 header 窗口 10 秒、请求体读取无进展窗口 30 秒、keep-alive idle 60 秒。--request-header-timeout 和 --idle-timeout 分别调整对应窗口。这些限制的是大小与空闲时间,不是每秒请求数。流式响应与 WebSocket 不受上传窗口限制;后端自身限制仍生效。

移除大小上限需要同时传 --max-request-body unlimited --ack-unlimited-request-body。HTTP middleware 限流、Basic Auth、CORS 和 IP 白名单仍在规划中。

来源:TSLink 健康与通知、TSLink 分享与请求限制。

目录