首页/云/云网络与负载均衡速查/dig / nslookup 常用排查姿势
云 DNS 与 CDN49 条

dig / nslookup 常用排查姿势

dig 是排查解析的主力工具:+short 看结果、@ 指定服务器、+trace 跟踪委派链、+noall +answer 看完整应答;Windows 侧可用 nslookup 或 Resolve-DnsName。掌握几个组合即可覆盖多数场景。

dig 是排查解析的主力

dig 直接向指定 DNS 服务器发起查询并打印完整应答报文,比 ping 域名更适合脚本化排查。它输出的不只是地址,还有应答码、TTL 与权威段,能区分「解析被缓存」和「委派链断了」。Windows 上没有 dig,可用 nslookup 或 PowerShell 的 Resolve-DnsName 达到同样目的。

基本信息

适用平台Linux/Unix 安装 bind-utils 后自带,Windows 用 nslookup 或 Resolve-DnsName
权限要求普通用户即可,指定服务器在命令里加 @地址
常用选项+short、@server、+trace、+noall +answer、-x 反向查询
输出重点status 应答码、ANSWER 段、TTL、AUTHORITY 段

典型使用场景

  • 改完解析记录后确认是否生效,以及当前缓存的剩余 TTL
  • 怀疑运营商递归异常,直接对比公共 DNS 与权威服务器的结果
  • 排查解析失败:区分 NXDOMAIN(记录不存在)与 SERVFAIL(服务端异常)
  • 跟踪委派链断点,确认某一级 DNS 是否返回了正确的 NS
  • 查 TXT、MX、PTR 等记录,用于验证邮件与反垃圾相关配置

常用 dig 组合

常用 dig 组合
dig +short www.example.com             # 只看最终结果,适合写进脚本
dig www.example.com @8.8.8.8            # 指定递归服务器查询
dig +trace www.example.com              # 从根域逐级跟踪委派链
dig +noall +answer www.example.com      # 只看应答段,含剩余 TTL
dig -x 203.0.113.10 +short              # 反向解析,查 PTR 记录
dig TXT example.com +short              # 查 TXT 记录,注意输出带引号

输出逐列读法

字段含义读数要点
status应答码NOERROR 正常,NXDOMAIN 记录不存在,SERVFAIL 服务端异常,REFUSED 被拒绝
ANSWER SECTION最终应答记录为空说明没有这条记录或查询类型写错
TTL剩余缓存秒数递减说明仍在缓存期内,归零后才会重新回源
AUTHORITY SECTION权威服务器段用来判断委派是否正确
+trace 从根域逐级查询且绕过本机 DNS 配置,输出较长,但能精确定位委派链在哪一级断开。
查询结果会受递归缓存影响:TTL 未过期时看到的是旧值,不代表权威记录没有被修改。

配套检查项

  • 解析生效后从多地递归同时验证,避免只看单一节点的结果
  • 变更记录前先把 TTL 调低,缩短旧值残留的时间窗口

易错点

  • 只用基本查询、不指定目标服务器,无法区分是本地配置、递归缓存还是权威记录的问题
  • 把 SERVFAIL 与 NXDOMAIN 混为一谈:前者要换服务器复验,后者说明记录确实不存在
  • 看到解析结果就下结论,忽略 TTL 仍在缓存期内,误判为「修改未生效」
  • 在 Windows 上用默认 DNS 查询,拿到的是内网解析结果,排查公网解析时应显式指定公共 DNS

数据来源与参考

  • dig 工具文档(BIND)
  • DNS 排查通用实践
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌