验证 CentOS/RHEL 系列服务器中多个 DNS 服务器配置是否成功,需要从 “配置生效检查” 和 “实际解析测试” 两方面入手,确保多个 DNS 都能正常工作且按预期顺序生效。以下是具体方法:
首先确认配置的多个 DNS 服务器已被系统正确加载,主要查看实时生效的/etc/resolv.conf文件:
预期结果:文件中应包含配置的所有 DNS 服务器,且顺序与网卡配置文件中的DNS1→DNS2→DNS3一致,示例:
nameserver 8.8.8.8
nameserver 114.114.114.114
nameserver 223.5.5.5
- 若未显示全部配置的 DNS,说明配置未同步,需重启网络服务(
nmcli c reload && nmcli c up 网卡名)。
验证每个 DNS 服务器能否独立解析域名,确保单个 DNS 可用:
yum install -y bind-utils
使用nslookup命令,指定单个 DNS 服务器解析目标域名(如baidu.com):
nslookup baidu.com 8.8.8.8
nslookup baidu.com 114.114.114.114
nslookup baidu.com 223.5.5.5
成功标志:每个命令输出中均包含Address: 180.101.50.242(百度的 IP 地址),例如:
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: baidu.com
Address: 180.101.50.242
- 若某 DNS 解析失败(显示
** server can't find baidu.com: NXDOMAIN),说明该 DNS 服务器不可用,需检查 DNS 地址是否正确或更换其他 DNS。
系统会按resolv.conf中nameserver的顺序(即DNS1→DNS2→DNS3)优先使用前一个 DNS,前一个不可用时自动切换到下一个。验证方法如下:
iptables -A OUTPUT -d 8.8.8.8 -p udp --dport 53 -j DROP
直接执行nslookup baidu.com(不指定 DNS),观察是否自动使用下一个 DNS:
成功标志:输出中Server显示为114.114.114.114(即DNS2),且能正常解析 IP,说明优先级生效。
iptables -D OUTPUT -d 8.8.8.8 -p udp --dport 53 -j DROP
查看系统日志中 DNS 解析的记录,确认实际使用的 DNS 服务器:
journalctl -u NetworkManager | grep -i dns
预期结果:日志中会显示系统使用的 DNS 服务器地址,例如:
NetworkManager[xxx]: [xxx] DNS configuration: 8.8.8.8, 114.114.114.114, 223.5.5.5
resolv.conf中包含所有配置的 DNS 服务器,顺序正确;
- 每个 DNS 服务器单独测试时,均能正常解析域名;
- 首选 DNS 故障时,系统能自动切换到下一个 DNS。
通过以上步骤,可全面验证多个 DNS 服务器的配置是否成功,确保服务器域名解析的稳定性和冗余能力。