---
title: "应用健康、到期与请求限制"
description: "检查后端就绪状态，查看到期预警，启用主人通知，并配置有限的上传限制。"
url: "https://tslink.md/zh/docs/health-and-alerts"
locale: "zh"
product_version: "0.1.1"
source: "https://github.com/anydoor7/tslink/blob/v0.1.1/docs/health-and-alerts.md"
---

> Documentation index: https://tslink.md/zh/llms.txt · Installed binary is authoritative: `tslink manifest`.

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 通知指南](https://github.com/anydoor7/tslink/blob/v0.1.1/docs/health-and-alerts.md)。

公共 Funnel 有独立的开放截止时间。只有明确公开、应用自身认证合适时才使用 `tslink add demo --proxy localhost:3000 --funnel --public --funnel-ttl 1h`。新的 Funnel 默认开放 24 小时，公网上限默认 7d，拒绝新的公开 never，见[期限](https://tslink.md/zh/docs/durations.md)。人员期限只适用于私有 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 白名单仍在[规划中](https://tslink.md/zh/docs/experimental-roadmap.md#middleware)。

来源：[TSLink 健康与通知](https://github.com/anydoor7/tslink/blob/v0.1.1/docs/health-and-alerts.md)、[TSLink 分享与请求限制](https://github.com/anydoor7/tslink/blob/v0.1.1/docs/sharing.md)。
