轻连 derp · Tailscale 排障专区

Tailscale 国内慢、走中继、打洞失败?
一张决策树定位你的问题

症状级落地页索引:每条症状都给出「一条判断命令 + 判定规则 + 下一步」。不用猜,跑完命令就有结论。

01 30 秒决策树

按你的症状走对应行:每条命令 10 秒,结论直接指向下一步。

症状整体很慢 / 传文件卡
→
跑这条tailscale status
→
看这里对方后面是 direct ip:port 还是 relay "code"
→
relay → 去看「走中继」;direct 但仍慢 → 去看「延迟高」
症状ping 值很高 / 跨城传文件慢
→
跑这条tailscale ping 100.x.x.x
→
看这里结尾 via IP:port(直连)还是 via DERP(region)(中继)
→
直连但延迟 > 60ms → 缺就近节点,见「换 DERP 节点」
症状网页打不开 / 视频连不上
→
跑这条tailscale netcheck
→
看这里第一段 UDP: false 是否出现
→
UDP: false → 你的网络封了 UDP,必然全走中继,见「UDP 被封」
症状换了网络还是老样子
→
跑这条tailscale netcheck
→
看这里MappingVariesByDestIP: true
→
true = 对称型 NAT,直连很难建立,见「打洞失败」
不想看命令?直接粘结果。把 tailscale netcheck 的输出粘进诊断工具,10 秒出结论:直连还是中继、为什么、你缺什么、该买哪档。联系方式选填。
去即时诊断 →

02 症状索引

每个症状一节:判断方法、判定规则、结论去向。点目录跳到对应详解。

症状词一句话判断去向
tailscale 慢先分「慢在网络」还是「慢在应用」:status 看是否 relay本页详解
延迟高 / 延迟突然变高ping 看 via 路径;直连仍高 → 就近 DERP 太远本页详解
一直显示走中继ping 全 via DERP → 三种成因,逐个排本页详解
打洞失败 / 连不上netcheck 看 NAT 类型与 UDP 通不通本页详解
netcheck 怎么看逐行解读 8 个关键字段本页详解
100.x ping 慢先确认 via 路径,再谈延迟数字本页详解
换 DERP 节点什么时候该换、怎么换、换完怎么验证本页详解
UDP 被封 / 网页打不开UDP: false 的两种解法本页详解

03 症状详解

以下每节都可以单独成立——如果搜索引擎只收录这一页,每一节都仍是完整可用的答案。

tailscale 慢 —— 先分清是网络还是应用

80% 的「慢」分两类:链路走了中继(网络问题),或者链路正常但应用本身慢。先用一条命令分开它们。

tailscale status # macOS: /Applications/Tailscale.app/Contents/MacOS/Tailscale status复制
判定规则:对方设备名后面是 direct ip:port → 已直连,慢的原因不在 Tailscale 链路,去查应用层(SMB 协议、磁盘、路由);后面是 relay "code" → 流量在绕中继,见「一直显示走中继」。

两步之内能定位:把 status + netcheck 一起粘进诊断工具,直接出结论。

延迟高 / 延迟突然变高 —— 看路径,不看数字

延迟数字本身不说明问题,先确认流量走的是哪条路,再判断这个数字正不正常。

tailscale ping 100.x.x.x # 换成对方的 100.x 地址复制
判定规则:结尾 via IP:port = 直连,此时国内同城 < 20ms、跨城 30–60ms 算正常;超过 80ms 说明你们之间绕了远路(跨运营商 / 没有就近接入点)。结尾 via DERP(region) = 中继,延迟由中继位置决定,见下一节。

直连仍慢的根因通常是缺一个国内就近接入点:看「换 DERP 节点」,或先测一遍你到 10 城的实际延迟。

一直显示走中继 —— 三种成因,逐个排

全走中继不可怕,可怕的是不知道为什么。三种成因按出现频率排:

tailscale netcheck # 关键看 UDP 和 MappingVariesByDestIP 两行复制
判定规则:① UDP: false → 你的网络封了出网 UDP,必然全走中继(见UDP 被封);② MappingVariesByDestIP: true → 对称型 NAT,打洞基本没戏(见打洞失败);③ 两者都正常但还是中继 → 就近 DERP 太远或不可达,属于「缺一个国内就近节点」,换节点即可解决。

第三种情况是最典型的成交场景:看看国内 10 城节点定价,或先诊断确认是第几种。

打洞失败 / 突然连不上 —— 九成是 NAT 类型

Tailscale 打洞(UDP 打洞)成功率由双方 NAT 类型决定,服务端能做的事情很有限,先确认你属于哪种。

tailscale netcheck # 看 MappingVariesByDestIP 和 UDP 两行复制
判定规则:MappingVariesByDestIP: true = 对称型 NAT(对称型 NAT 与大四层 NAT 组合时打洞成功率极低),此时换客户端网络(手机热点 / 换 NAT 较轻的路由)比调服务端有效;UDP: false 则见 UDP 被封。

NAT 类型改不了,但中继体验可以修:诊断一下你的中继延迟,一个就近中继能把打洞失败的体验从「不可用」拉回「可用」。

netcheck 怎么看 —— 8 个关键字段逐行解读

netcheck 是 Tailscale 自带的链路体检,字段不多,但每行都有用:

tailscale netcheck # macOS 用完整路径:/Applications/Tailscale.app/Contents/MacOS/Tailscale netcheck复制
判定规则:UDP = false 则必然全走中继;MappingVariesByDestIP = true 则对称型 NAT;IPv4 / IPv6 告诉你流量走哪个栈;Nearest DERP 是当前分配的中继及延迟表——如果它是境外城市或延迟 > 100ms,就是你缺一个国内就近节点的直接证据;其余行(UPnP、PMP、hairpinning)家里路由场景才需要关心。

不想读字段?把整段输出粘进诊断工具,自动解读。

100.x ping 慢 —— 先看路径,再看数字

100.x.x.x 是 Tailscale 的虚拟地址,ping 它测的是「你 → 对方」的整条路径,不是单段网络。

tailscale ping 100.x.x.x # 加 --icmp 排除 Tailscale 协议本身的开销复制
判定规则:结尾 via DERP(region) → 慢的是中继段,换就近节点立竿见影;结尾 via IP:port → 慢的是你和对方之间的公网路径,换节点帮助有限,问题在运营商互联或一方网络质量。

结论不确定时用工具兜底:贴 ping + netcheck 输出,10 秒出诊断。

换 DERP 节点 —— 什么时候该换、怎么换、换完怎么验证

DERP 节点是中继服务器。Tailscale 官方国内没有就近节点,这是「国内用着慢」的结构性原因,也是唯一靠花钱能直接解决的一环。

什么时候该换:netcheck 里 Nearest DERP 是境外城市(新加坡 / 东京 / 法兰克福…)或延迟 > 100ms;或者 ping 全走中继且中继在境外。
怎么验证换对了:换完后跑 tailscale netcheck,Nearest DERP 应变成国内城市且延迟 8–35ms;再跑 tailscale ping 对比前后。

国内 10 城就近节点、月付 ¥7.5 起:查看定价。不确定自己需不需要?先做免费诊断,报告里会写清楚。

UDP 被封 / 网页打不开 —— 两条路

公司网、校园网、部分运营商会封出网 UDP。此时 Tailscale 不可能直连,全部流量走 TCP 中继——链路是通的,但体验取决于中继在哪。

tailscale netcheck # 第一段出现 UDP: false 即确诊复制
两条路:① 换网络(手机热点、换个出口)治本;② 治不了网络就治中继——一个国内就近中继能把「境外中继 200ms+」压到「国内 20ms 内」,这是 UDP 被封场景下唯一的有效优化。注意:走 TCP 中继时如果目标网络还对非标准端口敏感,需要中继支持标准 443 端口的 TLS 接入。

UDP 被封 = 必然全走中继 = 中继质量决定一切:看看带标准端口接入的节点档位。

04 常见问题

Tailscale 国内为什么默认很慢?
因为 Tailscale 官方在中国大陆没有 DERP 中继节点。打洞失败时流量被分配到新加坡、东京或法兰克福的中继,延迟 100–300ms。装一个国内就近中继(DERP 节点)即可解决,这也是国内「DERP 租赁」服务存在的原因。
走中继安全吗?数据会经过第三方吗?
安全。Tailscale 全程端到端加密(WireGuard),中继服务器只搬运它解不开的密文,看不到内容。中继影响的是速度和稳定性,不是安全性——真正要评估的是中继运营者的信誉和稳定性。
自己买服务器搭 DERP 不是更便宜?
技术上一个人用 AI 几小时就能搭起来。但「搭起来」和「常年稳定可用」是两回事:证书自动续期、多城就近接入、故障时有人值守、带宽被跑超时的成本,这些才是租赁服务卖的东西。个人玩具场景自建够用,团队生产场景建议买现成的。
怎么测我到现在各个国内城市的实际延迟?
打开即时诊断工具,点「测速」——浏览器会直接从你的网络探测我们 10 个城市节点(杭州、上海、北京、南京、广州、成都、武汉、河源、深圳、青岛)的往返延迟并排名,不用装任何东西。
netcheck 输出可以贴给你们看吗?安全吗?
可以。netcheck 只包含网络路径信息(NAT 类型、延迟、中继位置),不含你的设备名、账号或流量内容。tailscale status 会显示设备名,粘贴前建议把设备名打码。