QUIC MTU 探测导致的 Hysteria2 连接失败排查

2026-07-15 · 分类:故障排查
QUICHysteria2MTU

记录一次 Hysteria2 客户端在某些网络环境下无法建立 QUIC 连接的问题。现象:客户端报 timeout,但 TCP 服务正常。

根因

QUIC 协议在握手阶段会进行 Path MTU 探测。当中间网络设备对 UDP 分片处理不当时,大包会被丢弃,导致探测超时。

解决方案

在服务端配置中检查 mtu 设置。默认值 0 表示自动探测,但在某些路径上需要手动指定:

# 保守设置 MTU 为 1200
quic:
  initStreamReceiveWindow: 8388608
  maxStreamReceiveWindow: 8388608
  initConnReceiveWindow: 20971520
  maxConnReceiveWindow: 20971520
  maxIdleTimeout: 60s
  maxIncomingStreams: 1024
  disablePathMTUDiscovery: false

如果客户端在特定 ISP 下仍有问题,可以尝试 disablePathMTUDiscovery: true,代价是效率略降但兼容性更好。