首页/系统/Linux 运维命令速查/nslookup 交互式 DNS 查询
网络命令82 条

nslookup 交互式 DNS 查询

老牌 DNS 查询工具(Windows/Linux 通用):nslookup 域名 或指定服务器与类型,快速核对解析是否一致。

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

nslookup 能查什么

nslookup 是老牌 DNS 查询工具,Windows 与 Linux 上都能直接使用,可以查 A、AAAA、MX、TXT、NS、CNAME 等记录类型,也能指定用哪台 DNS 服务器来查。它的价值在于跨平台、随手可用:换一台机器复现解析问题时,不必先确认 dig 有没有装,直接一条命令就能对比不同 DNS 的返回结果。

基本信息

适用平台Windows 内置;Linux / macOS 由 bind-utils(或 dnsutils)包提供
语法nslookup [-type=记录类型] 域名 [DNS服务器]
交互模式直接输入 nslookup 回车后,可连续用 set type=、server 命令切换
对比dig 输出信息更全且更适合脚本解析,nslookup 更顺手

典型使用场景

  • 确认域名当前解析到哪个地址,排查解析与预期不符
  • 对比本地 DNS 与公共 DNS 的返回结果,判断是否被运营商或内网劫持
  • 检查邮件相关记录:MX、SPF 与 DKIM 常用的 TXT 记录
  • 查看 CNAME 链路,确认解析是否经过 CDN 或中转
  • 在没有 dig 的 Windows 机器上做同样的查询

常用示例

常用示例
nslookup example.com               # 用系统默认 DNS 查询 A 记录
nslookup example.com 8.8.8.8       # 指定用公共 DNS 复现对比
nslookup -type=mx qiqicto.com      # 查询邮件交换记录
nslookup -type=txt example.com     # 查看 TXT(SPF、验证记录等)
nslookup -type=ns example.com      # 查看权威服务器
nslookup -type=cname www.example.com   # 查看别名指向
nslookup -debug example.com        # 打印查询细节,便于排查
nslookup -type=any example.com     # 部分服务器会忽略,结果仅供参考

输出逐段读法

段落含义关注点
Server / Address 前段本次查询使用的 DNS 服务器及其地址确认是否真的用了你指定的那台
Name / Address 段域名的解析答案与预期地址表逐条比对
AliasesCNAME 别名链路出现意外别名要顺着链路继续查
Non-authoritative answer答案来自缓存而非权威服务器需要权威结论时直接指定权威 NS 查询
NXDOMAIN / can't find域名不存在或无该记录类型先确认记录类型是否写对
某些系统的 nslookup 输出分两段(服务器信息在前、答案在后),脚本解析时不要抓错段;不同发行版打包的版本输出措辞也有差异,别依赖固定文案。
默认走本机配置的缓存服务器,复现不了解析问题时,用第二个参数或交互模式的 server 指定公共 DNS 或权威服务器再查一次。

易错点

  • 只用一个 DNS 的结果下结论:本地缓存与运营商 DNS 可能返回不同地址,至少对比两台再判断
  • 把 NXDOMAIN 当成解析故障:域名不存在与本机 DNS 不可用是两回事,先用其他域名测试 DNS 本身是否健康
  • 脚本里解析 nslookup 文本输出很脆弱,格式化数据交给 dig +short 更稳
  • 查 TXT 记录时忽略超长记录被分段显示,抄写配置容易漏字符

数据来源与参考

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

相关工具

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