SuperAPI AI 工具集

bind-utils

部署与运维

查看项目

更新于 10-16 09:39

技能介绍

bind-utils 是一组 DNS 查询与调试命令行工具,包含 dig、nslookup 和 host 三个二进制程序,通常来自 bind-utils(RHEL 系)或 bind9-dnsutils(Debian/Ubuntu)软件包。它没有持久化配置,也没有持久化日志,直接调用即可,输出到终端。

【用途】 用于查询 DNS 记录、追踪委派链、诊断解析器行为,以及验证 DNS 配置是否正确。

【主要能力与常用操作】

  • 基本 A 记录查询:dig example.com
  • 仅输出答案的简短结果:dig +short example.com
  • 指定记录类型:dig MX example.com
  • 向指定 DNS 服务器查询:dig @8.8.8.8 example.com
  • 追踪完整委派链:dig +trace example.com
  • 反向查询(PTR 记录):dig -x 93.184.216.34
  • DNSSEC 验证:dig +dnssec example.com
  • 区域传送(AXFR):dig @ns1.example.com example.com AXFR
  • 禁用递归(检查权威应答):dig +norecurse @ns1.example.com example.com
  • 检查 SPF 记录:dig TXT example.com +short
  • 检查 DKIM 记录:dig TXT selector._domainkey.example.com +short
  • 检查 DMARC 记录:dig TXT _dmarc.example.com +short
  • 检查 NS 委派:dig NS example.com
  • nslookup 基本查询:nslookup example.com
  • host 简单查询:host example.com

【安装】

  • Debian/Ubuntu:apt install bind9-dnsutils
  • RHEL 系:dnf install bind-utils

【常见故障与排查】

  • NXDOMAIN:名称在 DNS 中完全不存在。应确认记录确实已创建、检查拼写、确认区域已正确委派。
  • SERVFAIL:解析器无法获得答案(区域配置错误、DNSSEC 验证失败或权威服务器不可达)。可用 +cd 绕过 DNSSEC 验证,或用 @ns1.example.com 直接查询权威服务器。
  • PTR 查询返回错误主机名或为空:反向区域未配置,或 PTR 由 ISP 控制且未设置。PTR 记录需要 ISP 或托管商配置反向区域,除非自己控制反向 DNS 区域,否则无法自行设置 PTR。
  • +trace 与普通查询结果不同:解析器缓存中的答案与权威服务器当前提供的不同。可用 +nocache 查询或直接查询权威 NS,等待 TTL 过期。
  • 区域传送被拒绝:权威服务器将 AXFR 限制为特定 IP。这属正常,AXFR 被有意限制,可改用单条记录查询。
  • DKIM 记录缺失或格式错误:选择器名称错误,或记录尚未传播。可向邮件服务商确认选择器,并用 dig @8.8.8.8 TXT selector._domainkey.example.com 检查传播。
  • 分裂视图内外结果不同:解析器在网络内部返回内部视图,外部返回外部视图。可在网络内用 dig @8.8.8.8 或 dig @1.1.1.1 显式查询公共解析器。

【使用要点】

  • nslookup 和 host 更简单但信息量少于 dig,诊断工作建议使用 dig。nslookup 有交互与非交互模式,但输出不易解析且行为有怪异之处;host 适合快速查询,但缺少 dig 的过滤与追踪能力。
  • dig +short 是最快的脚本化路径:dig +short example.com A 只返回 IP,每行一个,无需额外清理输出。
  • +trace 会依次查询根服务器、TLD 服务器和权威服务器,完全绕过本地解析器缓存,用于确认记录在权威层面确实存在,而不仅仅存在于缓存中。
  • DNSSEC 错误与 NXDOMAIN 不同:DNSSEC 验证失败导致的 SERVFAIL 从客户端看与区域损坏相同。可用 dig +cd example.com 禁用 DNSSEC 检查,若记录能解析则说明是 DNSSEC 问题。
  • 分裂视图 DNS 会误导外部诊断:若网络内部 DNS 对公共名称返回 RFC 1918 地址,从内部用默认解析器查询会得到内部视图。诊断面向外部的 DNS 时应始终显式查询 @8.8.8.8 或 @1.1.1.1。
  • PTR 记录需要 ISP 配合:反向 DNS(PTR 记录)位于 in-addr.arpa. 区域,由 IANA 委派给 IP 地址所有者(通常是 ISP 或托管商,而非用户)。除非自己控制反向区域或请服务商设置,否则无法自行设置 PTR 记录。

【限制】 工具本身无持久化配置与日志;AXFR 通常被权威服务器限制;PTR 记录依赖 ISP 或托管商;DNSSEC 验证失败会表现为 SERVFAIL;分裂视图环境下内部查询结果可能与外部不同。