nslookup -debug 可直接获取 query time 数值,精确反映 dns 解析延迟(毫秒级),不依赖额外工具,且排除 tcp/tls 干扰;该值为底层 sendto/recvfrom 实测往返时间。

用 nslookup -debug 看 Query time 数值
这是最直接、不依赖任何额外工具的方式。Windows 和 Linux 都原生支持,且结果明确指向 DNS 层耗时,不掺杂 TCP 或 TLS 干扰。
执行命令:nslookup -debug www.baidu.com 223.5.5.5(把 223.5.5.5 换成你刚配的 DNS),在输出末尾找这行:
Query time: 18 msec
这个 18 就是真实 DNS 解析延迟(毫秒),不是“平均值”,也不是估算——它是系统底层 sendto/recvfrom 的往返实测时间。
- 低于
30ms:优秀,适合高频 Composer 请求 -
50–100ms:可接受,但大量包元数据请求(如/packages.json)会明显拖慢composer install - 超过
200ms:大概率成为瓶颈,尤其在 CI 中触发http.timeout误判
对比不同 DNS 对 mirrors.aliyun.com 的解析结果
别只测 www.baidu.com —— Composer 实际请求的是镜像域名,而国内 CDN 厂商对自家域名的 GSLB 调度策略可能和通用域名完全不同。
运行这两条命令,注意观察 IP 是否不同、Query time 是否有显著差异:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
nslookup -debug mirrors.aliyun.com 114.114.114.114
nslookup -debug mirrors.aliyun.com 223.5.5.5
- 如果两个 DNS 返回相同 IP,说明没启用智能调度,换 DNS 也没用
- 如果返回不同 IP,但
Query time相差100+ms,优先选快的那个 - 若都超
150ms,问题可能不在 DNS 本身,而在本地网络到该 DNS 的路由(下一步用tracert或mtr查)
curl -v 确认 DNS 解析后是否真连上了就近节点
nslookup 只告诉你“解析快不快”,curl -v 才告诉你“解析出来的 IP 是不是离你近”。很多用户配了阿里云 DNS,结果 dig mirrors.aliyun.com 返回的是杭州节点,但自己在北京,实际连接却卡在握手阶段。
执行:curl -v https://mirrors.aliyun.com/composer/ 2>&1 | grep "Connected to"
你会看到类似:
Connected to mirrors.aliyun.com (119.147.200.123) port 443 (#0)
- 记下这个 IP,再用
ping -n 1 119.147.200.123看延迟,才算真正就近 - 如果 ping 延迟高(比如
>50ms),但nslookup很快,说明 DNS 解析没问题,问题是 CDN 节点调度失准或本地路由绕行 - 此时加
--dns-servers 223.5.5.5强制 curl 用指定 DNS,再比对是否 IP 改变
为什么 composer diag 不反映 DNS 延迟
composer diag 只做三件事:检查 vendor/autoload.php 是否可 require、验证 https://packagist.org 是否能 HTTP HEAD、确认 CA 证书链。它根本不走你配的镜像源,也不触发 DNS 查询(HEAD 请求复用已有连接或走系统缓存)。
也就是说,即使你 DNS 卡顿严重,composer diag 也可能显示 “OK”,但它完全不能代表 composer install 过程中每拉一个 /p2/xxx.json 都要重新查一次 DNS 的真实压力。
- 真实场景下,Composer 会为每个包元数据请求单独发起 DNS 查询(尤其未开启
systemd-resolved或容器内无 DNS 缓存时) - 一个典型项目含 80+ 依赖,就可能触发 80+ 次 DNS 查询 —— 此时
100ms × 80 = 8s全耗在 DNS 上,比下载还慢 - 所以 DNS 优化必须在
nslookup和curl -v层验证,而不是信diag的 OK










