自托管网络

主机名是安全模型的一部分。

对自托管 Cloud 而言,URL 不只是访问服务器的地址,其中的主机名还须与 TLS 证书匹配。

如果服务器使用 Tailscale HTTPS,.ts.net 主机名可能既是实际访问地址,也是 TLS 证书验证的主机名。

DNS macOS 能解析这个主机名吗?
路由 Mac 能连通服务器的指定端口吗?
TLS 证书与主机名匹配吗?

使用证书上的名称

不要直接把 TLS 主机名换成 Tailscale 原始 IP 地址。IP 地址可能连得通,但证书通常验证的是主机名,而不是 IP 地址。

如果证书签发给 hive.example.ts.net,请用 https://hive.example.ts.net 配置 Contextify,而不是 https://100.x.y.z。

分层逐一检查

层 命令 能说明什么
DNS host hive.example.ts.net 这台 Mac 能否解析该主机名。
Tailscale 状态 tailscale status Mac 是否已连接到 tailnet。
HTTP 健康检查 curl -i https://hive.example.ts.net/api/v1/health 完整 URL 是否可达,以及 TLS 是否成功。
客户端配置 contextify cloud status --json Contextify 当前配置的连接目标。

服务器正常时,MagicDNS 也可能出故障

VPN 客户端和 DNS 安全工具可能改变 macOS 的解析器状态。你也许仍能浏览公共网站,本地应用解析 .ts.net 名称却会失败。

如果 Tailscale 显示 no resolvers found 之类的 DNS 错误,只清除 macOS DNS 缓存可能不够。重新连接 Tailscale 或重置其 VPN 配置,可以让 DNS 解析器重新生效。

tailscale set --accept-dns=false
tailscale set --accept-dns=true
host hive.example.ts.net

如果故障发生前不久你用过其他 VPN,先怀疑 DNS 解析器状态,再怀疑 Contextify 同步。

端口和代理

自托管部署通常把 API 运行在回环端口上(例如 8443),再用 Caddy 或其他代理在前面提供 HTTPS。

在这种形态下,客户端使用不带回环端口的 HTTPS 主机名。仅 HTTP 验证模式可能包含 8444 这样的端口,但那只是用于可信网络的临时方式。

需要向支持人员提供什么

请提供已配置的服务器 URL、脱敏后的最新错误、host 能否解析该名称、curl /api/v1/health 是否正常,以及最近是否有 VPN 或 DNS 工具发生变化。

不要发送原始 API 密钥、配置令牌、认证链接、Cookie 或 OTP 验证码。

最后更新:2026 年 5 月 30 日