菜鸟科技网

Centos如何查看DNS配置命令?

在CentOS系统中,DNS(域名系统)配置的正确性直接影响网络服务的访问能力,因此掌握查看DNS配置的方法至关重要,以下是几种常用的查看DNS命令及其详细说明,帮助用户全面了解系统当前的DNS设置。

Centos如何查看DNS配置命令?-图1
(图片来源网络,侵删)

最基础且常用的命令是cat /etc/resolv.conf,该文件是Linux系统解析DNS的核心配置文件,直接记录了系统正在使用的DNS服务器地址,执行命令后,文件内容通常包含nameserver行,每行指定一个DNS服务器的IP地址,例如nameserver 8.8.8.8nameserver 114.114.114.114,需要注意的是,在CentOS 7及更高版本中,该文件可能由NetworkManager动态管理,直接修改可能无法持久化生效,若需查看更详细的DNS解析配置,可结合systemctl status NetworkManager命令检查NetworkManager服务状态,确认是否启用了DNS管理功能。

使用nmcli命令是NetworkManager环境下查看DNS的推荐方式。nmcli是NetworkManager的命令行工具,功能强大且支持持久化配置,执行nmcli connection show可列出所有网络连接,再通过nmcli connection show "连接名称" | grep dns查看指定连接的DNS配置,若默认连接为ens33,则运行nmcli connection show ens33会显示ipv4.dnsipv6.dns字段,其中列出了手动配置的DNS服务器,若未手动配置,ipv4.ignore-auto-dns字段为no时,系统会自动从DHCP服务器获取DNS信息;为yes时则忽略DHCP提供的DNS。nmcli dev show | grep DNS命令可直接查看当前活动设备的DNS设置,适用于快速排查问题。

对于需要查看系统全局DNS解析行为的场景,dignslookup工具更为实用,这两个工具属于bind-utils软件包,若未安装可通过yum install bind-utilsdnf install bind-utils(CentOS 8+)安装,执行dig www.baidu.com会显示完整的DNS解析过程,包括查询的DNS服务器、解析耗时及返回的IP地址;而nslookup www.baidu.com则以交互式方式展示解析结果,输入server命令可切换当前使用的DNS服务器,通过指定DNS服务器,如dig @8.8.8.8 www.baidu.com,可测试特定DNS服务器的解析能力,判断是否存在网络或DNS服务器故障。

systemd-resolved服务在CentOS 8及更高版本中可能被启用,它提供了本地DNS缓存功能,可通过systemctl status systemd-resolved检查服务状态,执行resolvectl status查看当前DNS解析配置,包括链路优先级、DNS服务器列表及缓存状态,若服务未启用,可使用systemctl enable --now systemd-resolved并创建符号链接ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf,使系统通过该服务管理DNS。

Centos如何查看DNS配置命令?-图2
(图片来源网络,侵删)

以下是不同命令的适用场景总结:

命令 功能 适用场景 示例
cat /etc/resolv.conf 查看当前生效的DNS服务器地址 快速检查基础DNS配置 cat /etc/resolv.conf
nmcli connection show 查看网络连接的DNS配置 NetworkManager管理下的持久化配置 nmcli connection show ens33
dig/nslookup 测试DNS解析过程 诊断DNS解析故障或测试特定DNS服务器 dig www.example.com
resolvectl status 查看systemd-resolved服务的DNS配置 CentOS 8+启用systemd-resolved后 resolvectl status

在实际操作中,若发现DNS解析异常,可按以下步骤排查:首先检查/etc/resolv.conf中的nameserver是否正确;其次确认网络连接的DNS配置是否与/etc/resolv.conf一致;最后使用dig命令测试不同DNS服务器的解析能力,排除DNS服务器故障,若问题仍未解决,可尝试重启网络服务(systemctl restart networknmcli connection down up ens33)或重置NetworkManager配置(nmcli connection reload)。

相关问答FAQs

Q1: 为什么修改/etc/resolv.conf后DNS配置没有生效?
A: 在CentOS 7及以上版本,/etc/resolv.conf通常由NetworkManager或systemd-resolved自动管理,直接修改可能被覆盖,建议使用nmcli命令修改DNS配置,例如nmcli connection modify ens33 ipv4.dns "8.8.8.8 114.114.114.114",然后执行nmcli connection up ens33使配置生效,若使用systemd-resolved,可通过修改/etc/systemd/resolved.conf并重启服务实现持久化配置。

Q2: 如何在CentOS中临时切换DNS服务器进行测试?
A: 可使用dignslookup命令指定临时DNS服务器,例如dig @8.8.8.8 www.example.comnslookup www.example.com 8.8.8.8,此时查询将绕过系统默认的DNS配置,直接使用指定的DNS服务器,临时切换不会影响系统持久化配置,适合快速测试特定DNS服务器的可用性。

Centos如何查看DNS配置命令?-图3
(图片来源网络,侵删)
分享:
扫描分享到社交APP
上一篇
下一篇