↓ 跳过正文

TCP 阻断和 UDP 阻断:症状有什么区别

·885 字·2 分钟
作者
吾便宜
TCP 与 UDP 阻断症状对比

插图来源:Storyset

“连不上了"是最让人头大的描述,因为背后的原因可能完全不同。同样是阻断,TCP 被动了手脚和 UDP 被动了手脚,症状天差地别。学会分辨,能少走很多弯路。

先理解两者的根本差异
#

  • TCP 是"面向连接"的:通信前要先握手(三次握手),任何一方发个 RST 包,连接就断了。阻断者有很多"下手点”。
  • UDP 是"无连接"的:发包就不管了,没有握手。阻断手段相对粗暴:要么直接丢包,要么限速。

症状对比
#

症状TCP 阻断UDP 阻断
典型表现连接超时、连接被重置(RST)发包如石沉大海,无任何响应
客户端报错超时、被拒绝、握手失败长时间无响应、测速为 0
特征特定端口/域名突然不行,其他正常整个 UDP 流量异常,TCP 正常
排查难度相对容易定位(看握手到哪一步)较难,因为没有明确的"拒绝"信号

举两个真实场景
#

场景一:Trojan 节点突然连不上,报错超时。 Trojan 跑在 TCP + TLS 上,这种"能解析域名、TCP 握手到一半被掐"的表现,典型是 TCP 层面的干扰。可以试试换端口、换传输方式。

场景二:Hysteria2 节点测速为 0,但 TCP 节点正常。 Hysteria2 跑在 UDP 上,UDP 被整体限速或丢包时就是这个表现——TCP 一切正常,只有 UDP 流量过不去。这时候换 TCP 协议的节点往往立刻恢复。Hysteria2 的原理见 Hysteria 协议详解。

对应的协议选择思路
#

  1. 怀疑 TCP 被针对:优先试 UDP 系协议(Hysteria2、TUIC、WireGuard),换个赛道。
  2. 怀疑 UDP 被针对:退回 TCP 系(VLESS + TCP、Trojan),虽然特征明显,但至少路是通的。
  3. 两者都被针对:考虑套 CDN 的 WebSocket、gRPC 等传输,或者换线路。Trojan 的伪装思路见 Trojan 协议详解。
  4. IP 被墙:换协议也没用,这是 IP 层面的问题,看 IP 被墙怎么办。

给新手的排查顺序
#

连不上时别急着换协议,按这个顺序:先确认是单个节点还是全部节点不行 → 再确认是 TCP 系还是 UDP 系不行 → 最后才是换协议、换线路。对照症状表,基本能缩小到一两个可能性。

理解阻断的"手法",比背一堆协议名字有用得多。