问题出现得很突然,日志倒是留得挺全。服务器开了 IPv6 优先,解析模型网关域名先拿到 IPv6 地址,但网关只监听了 IPv4,客户端连了 20 秒才回退,首字延迟整体被拉高。

刚开始盯着「网关监听地址只绑了 0.0.0.0,没有 v6 监听」,折腾了半个多小时,排掉了。

把日志和配置对完,能解释这个现象的基本就这几处。解析结果优先返回 AAAA,而目标并没有真正提供 v6 服务。另一种情况是客户端没有启用快速回退,串行等待 v6 连接超时。

少数情况下是防火墙放行了 v6,但 v6 路由本身不通。

先分别查 A 与 AAAA 记录

nslookup -type=AAAA api.example.com

随后确认网关实际监听地址

Get-NetTCPConnection -LocalPort 443 | Select-Object LocalAddress

强制走 IPv4 做对照测连接耗时

curl -4 -s -o /dev/null -w "%{time_connect}\n" https://api.example.com/v1/models

等前面都确认过,再打开双栈快速回退

python -c "print('happy_eyeballs_delay=0.25')"

改完先别撤,确认这几项。首包时间从 20 秒降到 1 秒以内,连接日志显示握手走的是 IPv4,请求返回 200。

提醒一点。回退慢是症状不是根因,能补 AAAA 就补,补不了就让客户端优先 v4,别只调超时参数。报错文案容易误导,真正的原因往往在相邻那一层的日志里。

作者 9823189