系统学习 macOS 学习路径:从 BSD 文件命令到系统、网络与开发维护

nslookup

用交互或单次模式查询 DNS 记录,快速确认域名解析结果。

补充说明

nslookup 是比 dig 更老的 DNS 查询工具,macOS 自带。单次模式适合快速看 A、AAAA、MX、TXT、PTR;交互模式可以连续切换服务器和记录类型。它输出会标明回答是否权威(Non-authoritative answer),但不像 dig 那样完整展示 TTL、flags 和 authority 段。

和 dig 一样,nslookup 直接使用 /etc/resolv.conf 中的服务器,不读取 macOS 的 scoped resolver、/etc/hosts 和 mDNS,因此 .local 主机名和 VPN 内网域名可能查不到。查 .local 用 dns-sd -G v4 主机名.local,查系统实际解析结果用 dscacheutil -q host -a name 主机名。

日常排障更推荐 dig,因为输出稳定、选项清晰;nslookup 的价值在于交互式快速切换服务器。部分 Linux 发行版默认不装 nslookup,macOS 则一直提供,跨平台脚本不要依赖它一定存在。

常用示例

# 用系统配置的 DNS 查 A 记录
% nslookup example.com

# 指定 DNS 服务器
% nslookup example.com 8.8.8.8

# 查邮件路由
% nslookup -type=MX example.com

# 查文本记录,例如 SPF
% nslookup -type=TXT example.com

# 反向解析 IP
% nslookup 8.8.8.8

# 查 IPv6 地址
% nslookup -type=AAAA example.com

# 显示详细调试信息,定位超时或重试
% nslookup -debug example.com

# 交互模式:切换服务器和记录类型
% nslookup
> server 1.1.1.1
> set type=AAAA
> example.com
> exit

易错点与排错

相关命令

参考链接

读完自测

合上页面,先回答,再展开对照。

  1. nslookup 为什么不适用于查 .local 主机名?
  2. NXDOMAIN 和 SERVFAIL 有什么区别?
  3. 为什么查询不带点的短主机名可能得到意外结果?
答案
  1. .local 由 mDNSResponder 通过多播 DNS 解析,nslookup 只走单播 DNS 服务器,不参与 mDNS;应使用 dns-sd -G v4 或 dscacheutil。
  2. NXDOMAIN 表示域名不存在(或该服务器看不到),SERVFAIL 表示服务器处理失败或上游不可用。
  3. nslookup 会应用 search domain,把短名补成完整域名;要查绝对名应在末尾加一个点。
微信小程序码:扫码打开命令速查小程序

小程序版

微信扫码,随时查命令