验证 CentOS/RHEL 系列服务器中多个 DNS 服务器配置是否成功,需要从 “配置生效检查” 和 “实际解析测试” 两方面入手,确保多个 DNS 都能正常工作且按预期顺序生效。以下是具体方法:
一、检查当前生效的 DNS 服务器列表
首先确认配置的多个 DNS 服务器已被系统正确加载,主要查看实时生效的
/etc/resolv.conf文件:bash
# 查看当前系统使用的所有DNS服务器
cat /etc/resolv.conf
预期结果:文件中应包含配置的所有 DNS 服务器,且顺序与网卡配置文件中的
DNS1→DNS2→DNS3一致,示例:bash
# Generated by NetworkManager
nameserver 8.8.8.8 # 对应DNS1
nameserver 114.114.114.114 # 对应DNS2
nameserver 223.5.5.5 # 对应DNS3
- 若未显示全部配置的 DNS,说明配置未同步,需重启网络服务(
nmcli c reload && nmcli c up 网卡名)。
二、测试单个 DNS 服务器的解析功能
验证每个 DNS 服务器能否独立解析域名,确保单个 DNS 可用:
1. 安装测试工具(若未安装)
bash
# 安装nslookup(用于指定DNS服务器解析)
yum install -y bind-utils
2. 逐个测试 DNS 服务器
使用
nslookup命令,指定单个 DNS 服务器解析目标域名(如baidu.com):bash
# 测试DNS1(8.8.8.8)
nslookup baidu.com 8.8.8.8
# 测试DNS2(114.114.114.114)
nslookup baidu.com 114.114.114.114
# 测试DNS3(223.5.5.5)
nslookup baidu.com 223.5.5.5
成功标志:每个命令输出中均包含
Address: 180.101.50.242(百度的 IP 地址),例如:plaintext
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。
三、验证 DNS 服务器的优先级顺序
系统会按
resolv.conf中nameserver的顺序(即DNS1→DNS2→DNS3)优先使用前一个 DNS,前一个不可用时自动切换到下一个。验证方法如下:1. 临时禁用首选 DNS(模拟故障)
bash
# 假设首选DNS是8.8.8.8,用iptables临时阻断其53端口(DNS默认端口)
iptables -A OUTPUT -d 8.8.8.8 -p udp --dport 53 -j DROP
2. 测试域名解析
直接执行
nslookup baidu.com(不指定 DNS),观察是否自动使用下一个 DNS:bash
nslookup baidu.com
成功标志:输出中
Server显示为114.114.114.114(即DNS2),且能正常解析 IP,说明优先级生效。3. 恢复配置(测试完成后)
bash
# 移除临时阻断规则
iptables -D OUTPUT -d 8.8.8.8 -p udp --dport 53 -j DROP
四、通过系统日志确认 DNS 使用情况
查看系统日志中 DNS 解析的记录,确认实际使用的 DNS 服务器:
bash
# 查看最近的DNS相关日志(CentOS 7及以上)
journalctl -u NetworkManager | grep -i dns
预期结果:日志中会显示系统使用的 DNS 服务器地址,例如:
plaintext
NetworkManager[xxx]: [xxx] DNS configuration: 8.8.8.8, 114.114.114.114, 223.5.5.5
总结:验证成功的标准
resolv.conf中包含所有配置的 DNS 服务器,顺序正确;- 每个 DNS 服务器单独测试时,均能正常解析域名;
- 首选 DNS 故障时,系统能自动切换到下一个 DNS。
通过以上步骤,可全面验证多个 DNS 服务器的配置是否成功,确保服务器域名解析的稳定性和冗余能力。