应优先用ls -l /etc/resolv.conf判断其是否为软链接,再通过resolvectl status或nmcli dev show查真实生效的dns;若指向/run/systemd/resolve/stub-resolv.conf则由systemd-resolved管理,若指向/run/networkmanager/resolv.conf则由networkmanager管理。

直接看 /etc/resolv.conf 最快,但不总准——现代 Linux 多数用 systemd-resolved 或 NetworkManager 管理 DNS,这个文件常是软链接或中间层,不能代表真实生效的配置。
先确认 /etc/resolv.conf 是不是“真文件”
运行:
ls -l /etc/resolv.conf
如果输出含 ->,说明它是符号链接。常见情况有:
- 指向 /run/systemd/resolve/stub-resolv.conf → 实际由 systemd-resolved 控制
- 指向 /run/NetworkManager/resolv.conf → 实际由 NetworkManager 控制
- 若报错 “No such file or directory” → 可能 systemd-resolved 未启用,或服务异常
查 systemd-resolved 管理的真实 DNS
适用于 Ubuntu 20.04+、Debian 11+、Fedora、RHEL 8+/CentOS 8+ 等主流发行版:
resolvectl status
重点关注:
- Global 下的 DNS Servers:全局默认上游 DNS(如 1.1.1.1)
- 某个接口(如 ens33)下的 DNS Servers:该网卡当前实际使用的 DNS
- Current Scopes 中是否包含 dns:表示 DNS 解析功能已激活
查 NetworkManager 管理的 DNS
桌面环境或启用了 NetworkManager 的服务器常用此方式:
nmcli dev show | grep 'IP4.DNS'
或指定接口更清晰:
nmcli dev show ens33 | grep IP4.DNS
输出类似:
IP4.DNS[1]: 192.168.1.1
IP4.DNS[2]: 8.8.8.8
这些才是 NetworkManager 实际下发的源头 DNS 地址。
用 dig 验证当前实际解析行为
命令:
dig google.com +short
再加 dig google.com | grep SERVER 查看最后一行:
;; SERVER: 1.1.1.1#53(1.1.1.1)
这个 SERVER 行显示的 IP,就是此刻真正参与解析的 DNS 服务器——它和前面查到的结果应一致,可作交叉验证。











