nslookup 是什么
nslookup 用来查询域名解析结果,并且能指定使用哪台 DNS 服务器,这是它最大的价值:把同一域名分别问默认服务器与公共服务器,对比结果就能判断是解析记录有问题还是本地缓存有问题。它支持查询多种记录类型,输出里会标注应答是否来自权威服务器。需要注意两点:它直接向 DNS 服务器发起查询,不读取本机的静态解析文件;交互模式与单行模式语法不同,脚本里应统一使用单行写法。
基本信息
| 适用平台 | Windows CMD / PowerShell(系统自带) |
|---|---|
| 语法 | nslookup 名称 [服务器];nslookup -type=类型 名称 [服务器] |
| 支持的记录类型 | 地址、邮件交换、文本、别名、名称服务器等常见类型 |
| 交互模式 | 直接运行进入交互界面,用 set 命令切换查询类型 |
| 输出要点 | 先显示本次使用的服务器与地址,再给出应答内容 |
| 局限 | 不读取本机 hosts 配置,也不使用浏览器或系统的缓存 |
典型使用场景
- 确认域名解析到哪个地址,验证变更是否生效
- 对比不同 DNS 服务器的应答,区分记录问题与缓存问题
- 查询邮件相关记录,核对邮件域配置
- 查询文本记录,验证域名所有权等配置是否已生效
- 排查内网域名:指定内网 DNS 查询,确认内部区域是否正确
- 复核解析记录:确认反向解析是否与正向一致
常用示例
常用示例
:: 用默认 DNS 查询
nslookup www.example.com
:: 指定公共 DNS 查询,用于对比
nslookup www.example.com 8.8.8.8
:: 查询邮件交换记录
nslookup -type=mx example.com
:: 查询文本记录
nslookup -type=txt example.com
:: 交互模式(切换类型后连续查询)
nslookup
> set type=txt
> example.com
:: 指定内网 DNS 查询内部域名
nslookup intranet.corp.local 10.0.0.10输出与模式对照
| 项 | 含义 | 注意点 |
|---|---|---|
| 服务器与地址行 | 本次查询所用的 DNS 服务器 | 与预期不符说明本机 DNS 配置有问题 |
| 非权威应答 | 结果来自缓存而非权威服务器 | 存在缓存过期的可能 |
| 权威应答 | 来自该域名的权威服务器 | 结果最可信 |
| 无法找到 | 记录不存在或服务器超时 | 需区分两类原因,判断方向不同 |
| 交互模式 | 进入后逐条输入查询 | 脚本中不要使用 |
| 单行模式 | 一条命令完成查询 | 适合写进脚本与批处理 |
查询结果与本机实际访问结果不一致时,检查顺序是:静态解析文件、本机缓存、所用 DNS 服务器。逐层排除比反复查询更快。
指定服务器查询时用的是 UDP 53 端口,若网络策略限制出站该端口,查询会超时,这与域名本身是否有记录是两回事。