Linux怎么使用nslookup_Linux如何排查域名解析问题【技巧】

酷宇大大_7566

酷宇大大_7566

2026-03-20

568人浏览

原创

nslookup返回NXDOMAIN但浏览器能访问,主因是其默认查A记录且受本地stub resolver、缓存或DoH影响;应改用dig、指定DNS服务器、加-debug或+trace参数排查。

linux怎么使用nslookup_linux如何排查域名解析问题【技巧】

nslookup 返回 NXDOMAIN 但浏览器能打开网站

这是最常见的误判场景:你用 nslookup example.com 得到 NXDOMAIN,却发现在 Chrome 里能正常访问。别急着怀疑 DNS 配置——nslookup 默认查的是 A 记录,而现代网站大量依赖 HTTPS 和 HTTP/2,浏览器可能已缓存了 IP,或走了 DoH(DNS over HTTPS)、系统级 stub resolver(如 systemd-resolved)的路径,压根没走你终端里那个 nslookup 调用的 DNS 服务器。

实操建议:

  • 加 -type=AAAA 或 -type=HTTPS 看是否支持 IPv6 或新记录类型
  • 用 nslookup example.com 8.8.8.8 显式指定公共 DNS,排除本地 DNS 缓存干扰
  • 对比 dig example.com +short 输出,dig 更贴近真实解析链路,nslookup 的默认行为(尤其在某些发行版上)会做额外查询合并,容易误导
  • 检查 /etc/resolv.conf 里是否有 127.0.0.53(systemd-resolved)——这时 nslookup 实际发给的是本地 stub,不是上游 DNS

nslookup 查不到 CNAME 却能解析出 IP

nslookup 默认只显示最终答案(ANSWER SECTION),不展示中间跳转过程。如果域名设置了 CNAME 到另一个域名,而后者再有 A 记录,nslookup 默认只返回最终的 A 地址,CNAME 行被“折叠”了。

实操建议:

  • 加 -debug 参数:运行 nslookup -debug example.com,能看到完整响应包,包括 AUTHORITY 和 ADDITIONAL SECTION,CNAME 就在那里
  • 用 dig +trace example.com 更直观,它会逐级从根服务器开始查,每一步的 CNAME 都清清楚楚
  • 注意:有些 CDN 厂商(如 Cloudflare)对 CNAME 做了扁平化处理(ALIAS/ANAME 类似语义),nslookup 查不到原始 CNAME,这是有意为之,不是配置错误

nslookup 超时或卡住不动

根本原因通常是 DNS 查询路径中某一级无响应,而 nslookup 默认重试 3 次、每次等待数秒,看起来就是“卡住”。常见于本地 DNS 服务器宕机、防火墙拦截 53 端口、或递归 DNS 返回了 malformed 响应。

实操建议:

  • 先用 timeout 2 nslookup example.com 8.8.8.8 加超时控制,避免干等
  • 换 UDP/TCP 强制协议:nslookup -vc example.com 8.8.8.8(-vc 表示 TCP),绕过 UDP 被限或丢包问题
  • 检查本地 DNS 是否真在监听:ss -tuln | grep :53,确认 systemd-resolved、dnsmasq 或 named 没崩
  • 别忽略 /etc/nsswitch.conf 里的 hosts: files dns 顺序——如果 files(即 /etc/hosts)里有错条目,nslookup 不走,但系统其他程序会优先读它,造成现象不一致

为什么 dig 比 nslookup 更可靠

dig 是 BIND 工具集里的标准诊断工具,设计目标就是“忠实反映 DNS 协议行为”;nslookup 早期是为交互式教学设计的,后来虽不断修补,但默认行为仍带不少隐式逻辑(比如自动追查 CNAME、默认启用搜索列表、对空响应处理不一致)。

实操建议:

  • 排查问题时,优先用 dig example.com @8.8.8.8 +noall +answer 快速看结果,加 +verbose 看全包
  • nslookup 的交互模式(直接敲 nslookup 回车)容易误操作,比如输错 server 后忘记 reset,后续查询全发错地方
  • 某些嵌入式系统或最小化镜像(如 Alpine)默认不装 bind-tools,只有 nslookup,这时得手动 apk add bind-tools 或改用 getent hosts example.com 作轻量替代

真正麻烦的不是命令不会用,而是你看到的“成功解析”,可能来自 /etc/hosts、nscd 缓存、glibc 的 getaddrinfo() 内部逻辑,或者容器网络里的 coredns 插件——nslookup 只管 DNS 层,它说通了,不代表你的 curl 就一定能通。

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
chrome什么意思
chrome什么意思

chrome是浏览器的意思,由Google开发的网络浏览器,它在2008年首次发布,并迅速成为全球最受欢迎的浏览器之一。本专题为大家提供chrome相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

2786

5

chrome无法加载插件怎么办
chrome无法加载插件怎么办

chrome无法加载插件可以通过检查插件是否已正确安装、禁用和启用插件、清除插件缓存、更新浏览器和插件、检查网络连接和尝试在隐身模式下加载插件方法解决。更多关于chrome相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.06

5539

7

Chrome开启无痕模式
Chrome开启无痕模式

本专题整合了Chrome无痕模式开启相关内容,阅读专题下面的文章了解更多详细教程。

2026.03.24

3947

22

curl_exec
curl_exec

curl_exec函数是PHP cURL函数列表中的一种,它的功能是执行一个cURL会话。给大家总结了一下php curl_exec函数的一些用法实例,这个函数应该在初始化一个cURL会话并且全部的选项都被设置后被调用。他的返回值成功时返回TRUE, 或者在失败时返回FALSE。

2023.06.14

3703

6

linux常见下载安装工具
linux常见下载安装工具

linux常见下载安装工具有APT、YUM、DNF、Snapcraft、Flatpak、AppImage、Wget、Curl等。想了解更多linux常见下载安装工具相关内容,可以阅读本专题下面的文章。

2023.10.30

855

4

http500解决方法
http500解决方法

http500解决方法有检查服务器日志、检查代码错误、检查服务器配置、检查文件和目录权限、检查资源不足、更新软件版本、重启服务器或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.11.09

3643

4

http请求415错误怎么解决
http请求415错误怎么解决

解决方法:1、检查请求头中的Content-Type;2、检查请求体中的数据格式;3、使用适当的编码格式;4、使用适当的请求方法;5、检查服务器端的支持情况。更多http请求415错误怎么解决的相关内容,可以阅读下面的文章。

2023.11.14

894

3

HTTP 503错误解决方法
HTTP 503错误解决方法

HTTP 503错误表示服务器暂时无法处理请求。想了解更多http错误代码的相关内容,可以阅读本专题下面的文章。

2024.03.12

6586

8

http与https有哪些区别
http与https有哪些区别

http与https的区别:1、协议安全性;2、连接方式;3、证书管理;4、连接状态;5、端口号;6、资源消耗;7、兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.08.16

5470

6

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134万人学习