nslookup 是什么
nslookup 手工发起 DNS 查询,可以指定要查的域名、记录类型与 DNS 服务器。它的最大价值是对比不同服务器的返回结果:内网 DNS 与公共 DNS 给出不同答案时,问题通常出在内部解析或转发配置上。
基本信息
| 适用平台 | Windows CMD,Linux 与 macOS 也有同名工具 |
|---|---|
| 语法 | nslookup [域名] [DNS服务器地址] |
| 交互模式 | 输入 nslookup 后用 set type=MX 等切换记录类型 |
| 常用类型 | A、AAAA、CNAME、MX、TXT、PTR、SRV |
| 结构化替代 | Resolve-DnsName 返回对象,便于脚本判断 |
| 结果辨识 | 非权威应答表示结果来自缓存,超时多为服务器不可达 |
典型使用场景
- 域名解析异常时,用内网 DNS 与公共 DNS 对比定位问题范围
- 确认某条记录是否已生效,检查返回地址与预期是否一致
- 排查邮件与域环境的 MX 与 SRV 记录
- 反查 IP 对应的主机名,确认反向区域配置
- 验证 DNS 转发链路是否正常工作
常用示例
常用示例
REM 用本机默认服务器查询
nslookup www.example.com
REM 指定 DNS 服务器查询
nslookup www.example.com 8.8.8.8
REM 指定记录类型
nslookup -type=MX example.com 8.8.8.8
nslookup -type=SRV _ldap._tcp.example.com
REM 反查 IP 对应的主机名
nslookup 10.0.0.8
REM 交互模式切换类型
nslookup
set type=TXT输出关键行读法
| 输出行 | 含义 | 判断 |
|---|---|---|
| 服务器 | 本次查询使用的 DNS 服务器 | 交互模式默认用首选 DNS |
| 上方 Address | DNS 服务器的地址 | 确认实际查询对象 |
| 名称与 Address | 域名与解析结果 | 对比是否与预期地址一致 |
| 非权威应答 | 结果来自缓存 | 权威结果需直接查权威服务器 |
| 请求超时 | 服务器没有响应 | 检查网络、53 端口与服务状态 |
返回“不存在的域名”属于权威否定,说明记录确实不存在;超时更像是服务器不可达或 53 端口被拦截。两者现象相近但排查方向完全不同。
内网私有域名在公共 DNS 上查不到是正常现象。用它来判断内网解析问题会得出错误结论,应改用内网 DNS 服务器发起查询。