Plainnotes

DNS 解析慢,不一定是 DNS 的问题

2026-09-19 · 3 分钟网络

“打开网站要等两秒”,直觉是 DNS。先量一下:

dig example.com +stats | grep 'Query time'
time curl -o /dev/null -s -w '%{time_namelookup} %{time_connect} %{time_total}\n' https://example.com

time_namelookup 是解析耗时,time_connect 减掉它就是 TCP 握手。如果解析 5ms、连接 800ms,那问题在链路,不在 DNS。

真正慢的 DNS 通常有几个特征:resolv.conf 里列了多个不可达的 nameserver,每次都要等 5 秒超时再试下一个;或者只配了 IPv6 的 DNS,而机器没有 IPv6 出口,解析直接卡住。

还有一种隐蔽情况:应用每次都新建连接,没有连接池,DNS 缓存也不生效,等于每个请求都要解析一次。这时候该改的是应用,不是 DNS。