用交互或单次模式查询 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
8.8.8.8,会得到 NXDOMAIN 或错误 IP;应使用公司 DNS 或 VPN 下发的服务器。** server can't find example.com: NXDOMAIN 表示域名不存在或当前服务器看不到;SERVFAIL 则是服务器失败,排查方向不同。dev 实际变成 dev.example.com;要查绝对名用 dev.。/etc/hosts,本地 hosts 能 ping 通但 nslookup 查不到是预期行为。.local 域名走 mDNS,不是单播 DNS;nslookup 查不到时用 dns-sd -G v4 或 dscacheutil。-type。dig +short 并检查状态。dig — 更完整的 DNS 查询和委派跟踪dscacheutil — 按系统缓存视角查主机ping — 解析成功后测试连通性curl — 验证 HTTP 层是否正常合上页面,先回答,再展开对照。
.local 主机名?.local 由 mDNSResponder 通过多播 DNS 解析,nslookup 只走单播 DNS 服务器,不参与 mDNS;应使用 dns-sd -G v4 或 dscacheutil。
小程序版
微信扫码,随时查命令