DNS lookup 怎么查:从在线查询到命令行验证
简答:DNS lookup 就是查询域名的 DNS 记录。最快的方法是先用在线工具查看记录,再用 Windows 的 nslookup 或 macOS/Linux 的 dig 指定 DNS 服务器复核;如果结果不一致,继续检查记录类型、TTL、本地缓存和权威 DNS。
定义:DNS lookup 是向 DNS 解析器或权威 DNS 服务器查询域名记录,以获得 IP、邮件服务器、别名、验证文本或名称服务器等信息。
先按这个顺序查:快速查询与命令行验证
如果你只是想知道域名当前解析到哪里,先查询 A 和 AAAA;如果是邮箱问题,查 MX;如果是域名验证或邮件安全配置,查 TXT;想确认域名由哪组 DNS 管理,则查 NS。
| 你的目的 | 优先查询 | 判断重点 |
|---|---|---|
| 查看网站 IPv4 或 IPv6 | A、AAAA | 返回的地址是否为预期值 |
| 查看别名关系 | CNAME | 是否指向正确的主机名 |
| 排查收不到邮件 | MX | 邮件服务器主机名和优先级 |
| 核对验证记录 | TXT | 文本内容是否完整、是否有多条记录 |
| 确认权威 DNS | NS | 实际负责该域名的名称服务器 |
在线查询时输入域名本身,例如 example.com,不要把 https://、路径或参数一起粘贴进去。在线结果适合快速查看;要判断“修改是否真正生效”,还应使用不同解析器或直接查询权威服务器。
Windows:用 nslookup 查询 DNS
- 打开“命令提示符”或 PowerShell,先查询系统当前使用的 DNS:
nslookup example.com。 - 指定一个 DNS 服务器复核:
nslookup example.com 1.1.1.1。Microsoft 文档说明,省略第二个参数时会使用默认 DNS 服务器,也可以指定查询服务器。查看 nslookup 官方语法与示例 - 查询不同记录类型:
nslookup -type=A example.com、nslookup -type=AAAA example.com、nslookup -type=MX example.com、nslookup -type=TXT example.com、nslookup -type=NS example.com。 - 如果刚修改过 DNS,可先清理 Windows 客户端缓存:
ipconfig /flushdns,再重复查询。Microsoft 将清理客户端 DNS 缓存列为客户端解析故障排查步骤。查看 Windows DNS 客户端排查说明
错误信息怎么读:Nonexistent domain通常表示查询名称不存在;No records表示域名存在,但当前查询类型没有记录;timed out表示指定服务器在等待时间内没有回复;Refused表示服务器拒绝处理请求。不要把“没有 MX 记录”误判为“域名不存在”。
macOS 与 Linux:用 dig 查看更完整的返回信息
在终端执行以下命令:
dig example.com A:查询 IPv4 地址。dig example.com AAAA:查询 IPv6 地址。dig example.com MX:查询邮件交换记录。dig example.com TXT:查询文本记录。dig example.com NS:查询名称服务器。dig @1.1.1.1 example.com A:指定 DNS 服务器查询。dig @ns1.example.net example.com A +norecurse:在已知权威服务器时,直接向它查询,减少递归缓存对判断的影响。
dig 的输出通常包含 status、ANSWER、AUTHORITY 和 ADDITIONAL 等区域。BIND 官方手册将 dig、host 和 nslookup列为手动查询名称服务器的命令行工具。查看 BIND 9 官方手册
如果系统没有 dig,可先确认是否安装了 BIND 工具包;具体安装命令随 macOS、Ubuntu、Fedora 等系统而不同,不能把某一套命令当作所有系统通用。
DNS 记录、TTL 与权威服务器怎么判断
A 和 AAAA:A 将域名映射到 IPv4 地址,AAAA 将域名映射到 IPv6 地址;CNAME:表示一个主机名指向另一个主机名;MX:指定接收邮件的服务器;TXT:保存验证文本及部分邮件安全策略;NS:指出负责该域名的权威名称服务器;SOA:包含区域的主要管理信息;CAA:限制哪些证书颁发机构可以为域名签发证书;PTR:用于反向查询,将 IP 地址映射回主机名。记录用途可参考 DNS 记录类型说明。
TTL是解析结果允许被缓存的时间。修改记录后,某个解析器仍返回旧值,不一定代表配置失败,可能只是缓存尚未过期;TTL 越长,缓存通常保持越久。Cloudflare 文档也说明,本地缓存可能使实际看到变更的时间晚于记录本身的 TTL。查看 TTL 官方说明
建议按“本机默认 DNS → 指定公共递归 DNS → NS 记录显示的权威 DNS”逐层比较。若权威 DNS 已返回新值,而本机和公共 DNS 仍返回旧值,优先考虑缓存或 TTL;若权威 DNS 本身仍是旧值,应回到实际托管 DNS 的控制台检查记录名、记录类型、线路或区域配置。
查询成功,不等于网站或邮件服务正常
DNS lookup 只能说明某个 DNS 服务器对某条记录给出了什么回答,不能单独证明网站已经正常打开、HTTPS 证书正确、目标端口可连接,或邮件服务器一定能收信。
- 有 A 记录但网页打不开:继续检查 HTTP/HTTPS 服务、端口、防火墙、证书和客户端代理设置。
- 有 MX 记录但邮件异常:继续核对 MX 指向的主机是否还有 A 或 AAAA 记录,并检查邮件服务端配置。
- TXT 查询为空:确认查询的是正确主机名;有些验证记录放在子域名,而不是根域名。
- 不同 DNS 结果不同:记录可能正在缓存更新,也可能存在分地区解析、不同线路或权威配置不一致。
排查时建议保存查询时间、使用的 DNS 服务器、记录类型和完整返回结果。这样能避免只凭浏览器一次访问结果判断 DNS 是否生效。
常见问题
DNS lookup 和 DNS 泄漏检测是一回事吗?
不是。DNS lookup 是主动查询某个域名的记录;DNS 泄漏检测通常观察设备或客户端实际把 DNS 请求发送给了哪些解析器。查询记录正常,不代表代理客户端的 DNS 请求路径一定符合预期。
为什么 nslookup 查到的 IP 和浏览器访问使用的 IP 不一样?
可能因为浏览器、系统、代理客户端或网络环境使用了不同解析器,也可能存在缓存、IPv4/IPv6选择、分地区解析或线路策略。先分别指定 DNS 服务器查询 A 和 AAAA,再检查客户端是否启用了代理或自定义 DNS。
DNS 修改后多久能查到新记录?
没有统一固定时间,主要取决于记录 TTL、递归 DNS 缓存、本地缓存以及权威 DNS 是否已经更新。先直接查询权威 DNS;权威值已更新但递归结果未更新时,通常应检查缓存和 TTL,而不是立即重复修改记录。
看到 NXDOMAIN 就是 DNS 服务器故障吗?
不一定。NXDOMAIN通常表示被查询的名称不存在,也可能是查询了错误的主机名或子域名。应先核对域名拼写、记录名和查询类型,再用另一台递归 DNS及权威 DNS复核。
DNS lookup 能查出网站为什么打不开吗?
只能查出名称解析层面的线索。即使 A 或 AAAA 记录存在,网站仍可能因为端口、防火墙、TLS证书、源站服务或代理规则异常而无法访问。
相关阅读
参考资料
- nslookup | Microsoft Learn
- Troubleshooting DNS clients | Microsoft Learn
- DNS Queries and Lookups in Windows and Windows Server | Microsoft Learn
- BIND 9 Administrator Reference Manual(bind9.readthedocs.io)
- DNS record types | Cloudflare DNS docs
- Time to Live (TTL) | Cloudflare DNS docs