在CentOS系统中,DNS(域名系统)配置的正确性直接影响网络连接的稳定性和访问效率,无论是排查网络问题还是优化服务性能,掌握查看DNS配置的方法都是系统管理员必备的技能,本文将详细介绍在CentOS系统中查看DNS配置的多种命令,涵盖临时查询、持久化配置检查以及网络服务状态监控,帮助用户全面掌握DNS信息的获取方式。

使用nslookup命令查询DNS解析结果
nslookup是Linux系统中常用的DNS查询工具,能够直接测试域名与IP地址的解析关系,在CentOS终端中输入nslookup [域名]即可查询指定域名对应的DNS记录,执行nslookup www.baidu.com会返回该域名对应的IP地址及其 authoritative DNS服务器信息,若需查询特定DNS服务器的解析结果,可使用nslookup [域名] [DNS服务器IP],如nslookup www.google.com 8.8.8.8将通过Google的DNS服务器进行查询。
nslookup还支持交互模式,输入nslookup后直接输入域名可进行连续查询,输入exit或Ctrl+C可退出,该命令的优势在于直观显示解析过程,包括是否使用缓存、是否查询成功等详细信息,适合快速验证DNS解析是否正常。
使用dig命令获取详细的DNS信息
dig(Domain Information Groper)是比nslookup更强大的DNS查询工具,提供更详细的解析记录和性能数据,在CentOS中,若未预装dig,可通过yum install bind-utils命令安装,执行dig [域名]会返回完整的DNS解析过程,包括查询的DNS服务器、响应时间、记录类型(如A、AAAA、MX等)以及TTL值等信息。
dig example.com不仅显示域名的A记录,还会展示NS记录、SOA记录等附加信息,若需简化输出,可使用dig +short [域名],仅返回IP地址列表。dig还支持指定DNS服务器和查询类型,如dig @8.8.8.8 example.com MX可查询域名的邮件交换记录,对于网络管理员而言,dig的详细日志功能使其成为诊断DNS深层问题的利器。
检查/etc/resolv.conf文件中的DNS配置
/etc/resolv.conf是CentOS系统中存储DNS服务器配置的核心文件,通常由网络管理工具(如NetworkManager或ifcfg文件)动态维护,通过cat /etc/resolv.conf命令可直接查看当前生效的DNS服务器列表,文件内容通常以nameserver开头,后跟DNS服务器的IP地址,
nameserver 8.8.8.8
nameserver 1.1.1.1 需要注意的是,直接编辑此文件可能导致配置被网络服务覆盖,建议通过系统工具(如nmcli或nmtui)修改DNS设置,若需查看历史配置或确认DNS是否被正确应用,可结合systemctl status NetworkManager检查网络服务的运行状态。

使用nmcli工具查看和管理网络配置
NetworkManager是CentOS 7及更高版本的默认网络管理工具,nmcli命令行界面可全面控制网络设置,包括DNS配置,执行nmcli connection show [连接名称] | grep dns可查看指定网络连接的DNS服务器。nmcli connection show "eth0" | grep dns会显示该网卡的DNS配置。
若需查看所有活跃连接的DNS设置,可使用nmcli dev show | grep DNS。nmcli的优势在于支持动态修改,如nmcli con mod "eth0" ipv4.dns "8.8.8.8 1.1.1.1"可即时更新DNS服务器,并通过nmcli con up "eth0"激活配置,对于需要批量管理多台服务器的用户,nmcli的脚本化能力尤为实用。
通过systemd-resolved查看系统DNS缓存
CentOS 8及以上版本可能使用systemd-resolved服务管理本地DNS缓存,该服务通过0.0.53:53提供本地DNS解析,检查服务状态可执行systemctl status systemd-resolved,若服务运行中,使用resolvectl status可查看当前DNS配置,包括全局DNS服务器、链路本地DNS以及缓存统计信息。
resolvectl query example.com会显示域名解析使用的DNS服务器及缓存命中情况,若需清除DNS缓存,可执行systemd-resolve --flush-caches。systemd-resolved的日志功能(通过journalctl -u systemd-resolved查看)对分析DNS解析延迟或错误问题具有重要参考价值。
监控网络接口的DNS配置状态
对于多网卡服务器,不同接口可能配置不同的DNS服务器,使用ip route show命令可查看网络接口的路由表,结合nmcli connection show可确认每个接口的DNS绑定情况,若服务器同时使用eth0和ens33接口,需分别检查两个连接的DNS配置,避免因DNS解析冲突导致访问异常。
ss -tuln | grep 53命令可验证DNS端口(53)是否被正确监听,若端口未开放,可能是防火墙(如firewalld或iptables)拦截了DNS查询,需通过firewall-cmd --add-service=dns --permanent开放端口并重新加载防火墙规则。

常见DNS故障排查方法
当DNS解析异常时,可按以下步骤排查:
- 检查网络连通性:使用
ping [DNS服务器IP]确认DNS服务器可达。 - 验证域名解析:通过
nslookup和dig对比不同工具的解析结果,排除工具故障。 - 检查DNS缓存:执行
systemd-resolve --flush-caches清除缓存后重新测试。 - 确认防火墙和SELinux设置:临时关闭防火墙(
systemctl stop firewalld)测试是否为策略限制。
若问题持续,可尝试手动修改/etc/resolv.conf或使用nmcli重置网络配置,确保DNS服务器地址正确且无拼写错误。
相关问答FAQs
A:该错误通常由以下原因导致:1)DNS服务器不可达(可通过ping [DNS服务器IP]验证);2)防火墙拦截了DNS查询端口(53),需检查firewall-cmd --list-all并开放DNS服务;3)DNS服务器配置错误,建议通过cat /etc/resolv.conf确认nameserver地址是否正确。
Q2:如何永久修改CentOS系统的DNS服务器配置?
A:推荐使用nmcli工具实现持久化修改,执行nmcli con mod "eth0" ipv4.dns "8.8.8.8 1.1.1.1"并运行nmcli con up "eth0"激活配置,若需对所有连接生效,可修改/etc/sysconfig/network-scripts/ifcfg-eth0文件,添加DNS1=8.8.8.8 DNS2=1.1.1.1后重启网络服务(systemctl restart NetworkManager),避免直接编辑/etc/resolv.conf,因其可能被网络服务覆盖。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复