在CentOS系统中,查看DNS配置是网络管理中的基础操作,无论是排查连接问题还是优化服务器设置,掌握相关命令都至关重要,DNS作为域名解析的核心,负责将人类可读的域名转换为机器可识别的IP地址,如果DNS设置不当,可能导致网站无法访问或服务中断,本文将详细介绍在CentOS环境下查看DNS的几种常用命令,帮助您快速上手并应用于实际场景。

最直接的方法是检查系统的DNS配置文件,在CentOS中,DNS服务器信息通常存储在/etc/resolv.conf文件中,您可以使用cat命令来查看其内容,打开终端,输入以下命令:
cat /etc/resolv.conf
执行后,您会看到类似以下的输出:
nameserver 8.8.8.8
nameserver 8.8.4.4 这里的nameserver行指定了系统使用的DNS服务器地址,例如Google的公共DNS(8.8.8.8和8.8.4.4),如果文件中没有内容或配置错误,可能会导致DNS解析失败,在某些情况下,这个文件可能被网络管理工具(如NetworkManager)动态修改,因此手动更改后可能不持久,为了确保配置生效,建议结合系统服务检查,例如使用systemctl status NetworkManager来确认网络服务状态。
另一个常用命令是nslookup,它是一个交互式工具,用于查询DNS记录,在终端中输入nslookup,然后输入域名,
nslookup example.com
输出会显示该域名对应的IP地址和使用的DNS服务器信息。
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: example.com
Address: 93.184.216.34 这表示查询是通过8.8.8.8服务器完成的,并返回了example.com的IP地址。nslookup适合快速测试DNS解析是否正常,但如果需要更详细的信息,可以考虑使用dig命令。

dig(Domain Information Groper)是另一个强大的DNS查询工具,提供比nslookup更丰富的输出,输入:
dig example.com
您会看到包括查询时间、应答部分和权威服务器等详细信息,输出示例:
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7 <<>> example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12345
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; QUESTION SECTION:
;example.com. IN A
;; ANSWER SECTION:
example.com. 300 IN A 93.184.216.34
;; Query time: 10 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Mon Oct 01 12:00:00 UTC 2023
;; MSG SIZE rcvd: 56 这里,dig显示了查询的详细过程,包括TTL(生存时间)和使用的DNS服务器,它非常适合深度排查问题,例如检查DNS缓存或验证记录类型,如果您在CentOS中未安装dig,可以通过yum install bind-utils命令来安装。
除了这些,host命令也是一个简单高效的选项,它用于快速查询域名的IP地址,语法简洁:
host example.com
输出可能如下:
example.com has address 93.184.216.34
example.com has IPv6 address 2606:2800:220:1:248:1893:25c8:1946 host命令适合日常使用,尤其是当您只需要基本解析结果时,它的输出更易读,不会像dig那样包含大量技术细节。

在较新的CentOS版本(如CentOS 7或8)中,系统可能使用systemd-resolved服务来管理DNS,您可以使用systemd-resolve命令来查看状态:
systemd-resolve --status
这会显示当前网络接口的DNS配置,包括使用的服务器和域名,如果您的系统没有这个命令,可能是因为未安装相关包,或者使用的是旧版CentOS。
如果您想检查系统当前的DNS缓存或解析状态,可以结合nmcli命令(如果使用NetworkManager)。
nmcli dev show | grep DNS
这会列出网络设备相关的DNS设置,帮助您确认配置是否与应用一致。
在实际应用中,我经常发现新手容易忽略DNS配置的持久性,在云服务器环境中,重启后/etc/resolv.conf可能会被重置,因此建议通过编辑/etc/sysconfig/network-scripts/下的接口文件来永久修改DNS,定期使用这些命令检查DNS,可以有效预防潜在的网络问题,从我的经验来看,dig和nslookup结合使用能覆盖大多数场景,前者用于深度分析,后者用于快速验证,无论您是运维人员还是开发者,熟练掌握这些命令都能提升工作效率,确保服务稳定运行。
