网络命令82 条

dig DNS 查询利器

专业的 DNS 查询工具:指定记录类型与 DNS 服务器、简洁输出(+short)、正反向解析;批量核对解析走 dig 最稳。

Linux 运维命令速查系统更新于 2026-10-13

dig 是什么

dig 是专业的 DNS 查询工具:可以指定记录类型与目标 DNS 服务器,输出里完整保留答复段、权威段与附加段,还能做反向解析。相比 nslookup,它的输出更结构化、更适合作脚本输入。排查解析问题时,TTL、权威服务器与递归过程这些信息,正是判断「缓存问题还是权威配置问题」的关键。

基本信息

适用平台Linux、macOS、Unix 通用(由 bind-utils 或 dnsutils 提供)
命令语法dig [@服务器] 名称 [类型] [+选项]
记录类型A、AAAA、CNAME、MX、TXT、NS、SOA、PTR、CAA
常用选项+short 只输出结果 / +noall +answer 只看答复段 / +trace 逐级追踪 / +tcp 强制走 TCP

典型使用场景

  • 核对解析:确认域名是否解析到预期地址
  • 对比本地与公共 DNS,判断是不是本地缓存出错
  • 邮件排障:查询 MX 与 SPF 相关的 TXT 记录
  • 反向解析:把地址反查回主机名
  • 权威核对:直接向权威服务器查询,绕开各级缓存看最新记录

常用示例

常用示例
dig +short example.com
dig example.com A +noall +answer
dig @8.8.8.8 example.com A
dig +short MX qiqicto.com
dig +short TXT example.com
dig -x 8.8.8.8                       # 反向解析 PTR
dig @ns1.example.com example.com A   # 直接问权威服务器
dig +trace example.com               # 从根开始逐级追踪

输出段落读法

段落含义怎么看
头部状态NOERROR、NXDOMAIN、SERVFAIL 等决定问题出在解析还是在更上游
QUESTION本次查询的问题确认域名与类型符合预期
ANSWER答复记录核心结果在这里
AUTHORITY权威名称服务器判断谁对该域名负责
ADDITIONAL附加信息例如名称服务器对应的地址
TTL记录缓存存活时间解释改动为何没有立刻生效
排查本地解析不对时,把默认查询结果与指定公共 DNS 的结果对比,能立刻判断是本地解析器的问题还是权威配置的问题。
改了记录却不生效,多数是缓存仍在计时。直接向权威服务器查询可以绕开各级缓存,确认记录到底更新了没有。
解析失败先看返回状态:名字不存在会得到 NXDOMAIN,服务器处理失败多为 SERVFAIL,超时要区分链路不通与服务器不回包。想看是哪一级出问题,用逐级追踪的方式从根域开始查询,能定位到具体断在哪一层委派,比反复问本机解析器有效。

易错点

  • +short 只保留答案,排障时信息不足,需要完整过程时去掉它看各段落
  • TTL 缓存导致改动看似不生效,用指定权威服务器的方式绕过缓存验证
  • 本地解析被劫持或走代理时,结果全部来自同一台服务器,要显式指定查询目标
  • 反向解析依赖 PTR 记录,公网地址经常没有配置,别据此判断服务可用性
  • 大批量并发查询会被上游限速,核对解析要控制节奏
  • 把查询超时直接归因于网络:DNS 走 TCP 或 UDP 均可能被中间设备丢弃,先用逐级追踪与指定服务器两种方式交叉验证,再判断是链路还是服务端问题

数据来源与参考

  • man 1 dig(BIND 9 官方手册)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌