Windows输入nslookup 域名回车,Linux输入dig 域名回车,直接把解析出来的IP地址、CNAME记录摆在屏幕上,想让结果更干净,就在命令后面加+short,只输出核心内容。
浏览器访问网站时会自动完成域名解析,但遇到网站打不开、CDN加速不生效、邮件发不出去这些问题,根源往往藏在解析记录里,命令行工具给出的答案是精确、不掺水分的东西,能告诉你解析到了哪个IP、使用的是哪台DNS服务器、TTL还剩多少秒。
用nslookup查询域名解析的基本操作
nslookup是适用面最广的查询工具,Windows、Linux、macOS基本都内置了,它的全称是 name server lookup,工作方式很简单:你给一个域名,它找DNS服务器要答案,然后把结果打印在屏幕上。
nslookup查A记录,先看这两个字段
执行 nslookup hello.com 后,屏幕下方会出现 Name 和 Address 两行。Name 对应当前查询的域名,Address 就是域名解析出来的IP地址,只要这一行的地址与你网站服务器的公网IP一致,说明A记录生效了。
如果域名配置了CDN,Address 往往是CDN节点的IP,这属于正常现象,CDN厂商通过修改DNS解析结果,把用户调度到最近的节点,你看到的IP自然不是源站IP,想确认源站IP,得用第三方工具或直接查回源记录。
指定DNS服务器查询,绕开本地干扰
本地DNS缓存可能还存着旧记录,导致命令行返回的是过时IP,这时可以指定一个公共DNS服务器重新查询,命令格式为:
nslookup hello.com 8.8.8.8
把 8.8.8 换成 114.114.114 或 5.5.5 也都行,如果连公共DNS返回的结果都正确,问题大概率出在本地缓存或运营商DNS上。

查CNAME、MX、TXT记录
解析结果不只是A记录,还有CNAME、MX、TXT、NS等类型,在nslookup里用 -type= 指定类型:
nslookup -type=CNAME hello.com,看有没有CNAME转发;nslookup -type=MX mail.hello.com,看邮件服务器优先级;nslookup -type=TXT hello.com,常用于验证域名所有权,比如SPF记录。
dig命令查看DNS记录的进阶操作
Linux和macOS用户有更好的选择:dig,这条命令输出的信息比nslookup完整,包含查询时延、DNS服务器地址、TTL剩余值、记录全量信息,是排查DNS问题最顺手的工具。
dig的默认输出怎么看
执行 dig hello.com,返回一段结构化内容,核心段落位于 ANSWER SECTION 下,每行包含域名、TTL、记录类型和响应地址:
hello.com. 3600 IN A 1.2.3.4
3600 是TTL(单位秒),A 是记录类型,2.3.4 是对应的IPv4地址,看懂这一行,整个解析结果就清楚了。
用+short让结果只剩IP
查询结果太多时,加 +short 参数:dig hello.com +short,这条命令只输出IP地址,没有多余注释,在脚本里批量验证域名时,这个参数很实用。
直接指定记录类型和DNS服务器
dig不需要 -type 这种写法,直接在域名后跟上类型即可:
dig hello.com MX拉取邮件交换记录;dig hello.com TXT拉取文本记录;dig hello.com NS拉取域名服务器列表;dig @8.8.8.8 hello.com A从指定服务器查询A记录。
域名解析失败怎么排查,照着这四步走
命令行工具不只用于“看结果”,更重要的是“诊断问题”,域名解析失败怎么排查,有四个实用步骤,每一步都能在命令行里验证。
第一步:确认域名状态是否正常
解析失败出现得太突然,先排查域名本身,域名过期但还没进入赎回期时,DNS解析会停止工作,国内服务器上部署的网站,域名必须完成ICP备案,备案被注销同样会导致解析失效,这一步你在命令行里查不到,需要登录域名注册商后台或工信部系统确认。
第二步:把域名放到公共DNS上查
先用 nslookup 你的域名 223.5.5.5 或 dig 你的域名 @223.5.5.5 查询,返回的IP与预期不符,说明问题出在权威DNS配置上;返回正确但本机还是访问不了,优先清理本地缓存。
第三步:清理本地DNS缓存
Windows使用 ipconfig /flushdns,macOS使用 sudo dscacheutil -flushcache,Linux上执行 systemd-resolve --flush-caches 或直接重启 systemd-resolved 服务,清理后再用nslookup查询,结果依旧异常,就继续看第四步。
第四步:算一下TTL带来的生效延迟
刚修改过解析记录时,TTL决定旧记录还能存活多久,假设原TTL是3600秒(1小时),修改解析后最迟1小时全球生效,行业共识认为,TTL值越小解析生效越快,原因是较小的TTL会让各节点更快丢弃缓存,重新向上游获取,等一个完整的TTL周期后再查,结果往往就变对了。
Windows和Linux命令行查看域名解析的差异
操作系统的选择会直接影响可用工具:
| 系统 | 自带命令 | 推荐命令 | 特点 |
|---|---|---|---|
| Windows | nslookup | nslookup | 无需安装即可使用 |
| Linux | nslookup、dig、host | dig | 输出信息最全 |
| macOS | nslookup、dig、host | dig | 与Linux一致 |
Windows 10以上版本还有 Resolve-DnsName 这个PowerShell命令,输出是表格化形式,对新手更友好,但平时习惯用cmd的人可能不容易接受,macOS和Linux一样预装了dig,在DNS排查场景下工具链更完整。
常见问题速查
nslookup查询域名解析结果是什么含义?
nslookup输出中的 Address 就是域名当前解析的IP地址,响应中带有“非权威应答”字样时,说明结果来自本地或公共DNS缓存,不一定是域名权威服务器上的最新值,对比权威应答和非权威应答的差异,能帮助你判断解析结果是否可信。
域名解析失败怎么排查,最快的方法是什么?
使用 nslookup 域名 8.8.8.8 绕过本地DNS,如果返回正确IP,问题就定位在本地缓存或运营商DNS这一层,如果公共DNS返回的仍是错误值,则需检查域名注册商后台的DNS服务器设置和解析记录配置。
dig命令查看DNS记录时,+short参数为什么只显示IP?
+short 的作用是精简输出格式,跳过所有注释和状态信息,只保留查询结果的核心行,对纯A记录来说,核心结果就是IP地址列表,所以最终屏幕上只剩下地址。
平时多练几次这些命令,遇到网站打不开、CDN未生效、邮件收不到的问题时,命令行就是你的第一手证据,打开终端敲一条nslookup,把域名解析结果从“黑盒”变成“白盒”,排查思路自然就清晰了。
