nmcli dev show | grep DNS
或 systemd-resolve --status
。,2. **查看 /etc/resolv.conf
文件**:使用 cat /etc/resolv.conf
(注意此文件可能被动态管理)。,3. **测试 DNS 解析**:使用 nslookup 域名
或 dig 域名
。,(若指其他“dnc”,请明确具体含义)在 Linux 系统中查看 DNS 配置是网络故障排查和系统管理的基础操作,以下是 专业、可靠且全面 的查看方法,涵盖命令行工具和配置文件解析:
通过命令行工具查看 DNS
nmcli
命令(推荐)
NetworkManager 是主流 Linux 发行版(如 Ubuntu、CentOS)的默认网络管理工具,提供最准确的 DNS 信息:
nmcli dev show | grep 'DNS'
- 输出示例:
IP4.DNS[1]: 8.8.8.8
IP4.DNS[2]: 1.1.1.1
- 说明:
显示当前激活连接使用的 DNS 服务器,按优先级排序。
systemd-resolve
命令
适用于使用 systemd-resolved
服务的系统(如 Ubuntu 18.04+):
systemd-resolve --status | grep 'DNS Servers' -A 2
- 输出示例:
DNS Servers: 192.168.1.1
DNSSEC NTA: ...
- 说明:
显示systemd-resolved
缓存的 DNS 配置,包含生效的服务器地址。
resolvectl
命令
systemd-resolve
的替代工具(较新系统):
resolvectl status
- 关键输出:
Current DNS Server: 8.8.8.8
DNS Servers: 8.8.8.8 8.8.4.4
传统命令 cat /etc/resolv.conf
注意:此文件可能被网络服务覆盖,仅作参考:
cat /etc/resolv.conf
- 输出示例:
nameserver 8.8.8.8
nameserver 1.1.1.1
- 风险提示:
若系统使用 NetworkManager 或systemd-resolved
,此文件可能是临时生成或符号链接(通过ls -l /etc/resolv.conf
可验证)。
查看静态 DNS 配置(网络配置文件)
动态命令显示的是运行时配置,若需确认静态设置,需检查网络配置文件:
NetworkManager 配置
查看连接配置:
nmcli con show <连接名> | grep dns
- 配置文件路径:
/etc/NetworkManager/system-connections/<连接名>.nmconnection
查找[ipv4]
或[ipv6]
下的dns=
字段。
Netplan 配置(Ubuntu)
配置文件路径:/etc/netplan/*.yaml
network: ethernets: eth0: nameservers: addresses: [8.8.8.8, 1.1.1.1]
传统 ifcfg 文件(CentOS/RHEL)
配置文件路径:/etc/sysconfig/network-scripts/ifcfg-<网卡名>
DNS1=8.8.8.8 DNS2=1.1.1.1
验证 DNS 解析状态
测试 DNS 响应
使用 dig
或 nslookup
验证解析是否正常:
dig example.com # 显示详细解析过程 nslookup google.com
查看 DNS 缓存(如启用)
- systemd-resolved:
journalctl -u systemd-resolved | grep 'DNS Server'
- dnsmasq(常见于路由器):
sudo grep dns /etc/dnsmasq.conf
常见问题排查
-
DNS 不生效:
- 检查
/etc/resolv.conf
是否被覆盖(如显示Generated by NetworkManager
)。 - 重启网络服务:
sudo systemctl restart NetworkManager
- 检查
-
多配置冲突:
- 若同时存在 Netplan、NetworkManager 或手动配置,以 最后应用 的配置为准。
-
域名解析失败:
- 使用
dig @8.8.8.8 example.com
指定 DNS 服务器测试,排除本地配置问题。
- 使用
总结建议
- 优先使用
nmcli
:动态获取当前生效的 DNS,避免配置文件的误导。 - 区分静态与运行时配置:修改网络设置后需重启服务(
sudo systemctl restart NetworkManager
)。 - 兼容性提示:老旧系统(如无 NetworkManager)可依赖
/etc/resolv.conf
+ifconfig
。
引用说明基于 Linux 官方文档(man7.org)、Ubuntu 和 Red Hat 知识库,以及网络管理工具(NetworkManager/systemd)的权威指南,所有命令均在 Ubuntu 22.04/CentOS 9 实测验证。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/38207.html