如何验证CentOS/RHEL系列服务器中多个DNS服务器配置是否成功

验证 CentOS/RHEL 系列服务器中多个 DNS 服务器配置是否成功,需要从 “配置生效检查” 和 “实际解析测试” 两方面入手,确保多个 DNS 都能正常工作且按预期顺序生效。以下是具体方法:

一、检查当前生效的 DNS 服务器列表

首先确认配置的多个 DNS 服务器已被系统正确加载,主要查看实时生效的/etc/resolv.conf文件:
bash
# 查看当前系统使用的所有DNS服务器
cat /etc/resolv.conf
预期结果:文件中应包含配置的所有 DNS 服务器,且顺序与网卡配置文件中的DNS1DNS2DNS3一致,示例:
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.confnameserver的顺序(即DNS1DNS2DNS3)优先使用前一个 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

总结:验证成功的标准

  1. resolv.conf中包含所有配置的 DNS 服务器,顺序正确;
  2. 每个 DNS 服务器单独测试时,均能正常解析域名;
  3. 首选 DNS 故障时,系统能自动切换到下一个 DNS。
通过以上步骤,可全面验证多个 DNS 服务器的配置是否成功,确保服务器域名解析的稳定性和冗余能力。
阅读剩余
THE END