如何在CentOS/RHEL系列服务器中配置多个DNS服务器

在 CentOS/RHEL 系列服务器中配置多个 DNS 服务器,只需在网卡配置文件中添加多个备用 DNS 条目即可,配置后会自动同步到系统的 DNS 解析文件中,实现多 DNS 冗余。以下是具体步骤:

一、通过网卡配置文件配置多个 DNS(永久生效,推荐)

这是生产环境的首选方式,配置会在重启网络或服务器后保留。

1. 确认网卡名称

执行以下命令查看需要配置的网卡(如eth0ens33):
bash
ip link show

2. 编辑网卡配置文件

打开对应网卡的配置文件(路径:/etc/sysconfig/network-scripts/ifcfg-<网卡名>):
bash
# 以eth0为例,替换为实际网卡名
vi /etc/sysconfig/network-scripts/ifcfg-eth0

3. 添加多个 DNS 服务器条目

在文件中通过DNS1(首选)、DNS2(备用)、DNS3(更多备用)添加多个 DNS,示例:
ini
# 保留文件中已有的其他配置(如IPADDR、GATEWAY等)
DNS1=8.8.8.8          # 首选DNS(谷歌)
DNS2=114.114.114.114  # 备用DNS(国内通用)
DNS3=223.5.5.5        # 更多备用DNS(阿里云)
PEERDNS=no            # 防止DHCP自动覆盖手动配置(静态IP可选,动态IP建议添加)
  • 规则:系统会按DNS1DNS2DNS3的顺序依次尝试解析,前一个不可用时自动切换到下一个。
  • 数量限制:最多可配置 3 个(DNS1DNS3),满足绝大多数冗余需求。

4. 使配置生效

重启网络服务,让多 DNS 配置同步:
bash
# 重新加载配置(推荐)
nmcli c reload
# 重启网卡确保生效
nmcli c up eth0

二、临时配置多个 DNS(重启失效,测试用)

若仅需临时测试多个 DNS,可直接修改/etc/resolv.conf文件(注意:可能被网络服务覆盖):

1. 编辑 DNS 解析文件

bash
vi /etc/resolv.conf

2. 添加多个 nameserver 条目

bash
nameserver 8.8.8.8    # 首选
nameserver 114.114.114.114  # 备用1
nameserver 223.5.5.5  # 备用2
  • 说明:系统会按文件中从上到下的顺序使用 DNS 服务器。

三、验证多 DNS 配置

1. 查看当前生效的所有 DNS

bash
cat /etc/resolv.conf
输出应包含配置的所有 DNS 服务器(如 3 个nameserver条目),说明配置已同步。

2. 测试 DNS 切换功能(可选)

可通过nslookup指定 DNS 服务器测试解析,验证备用 DNS 是否可用:
bash
# 安装nslookup工具(若未安装)
yum install -y bind-utils

# 用首选DNS解析
nslookup baidu.com 8.8.8.8

# 用备用DNS解析
nslookup baidu.com 114.114.114.114
若两者都能返回 IP 地址,说明多 DNS 配置有效。

四、注意事项

  1. 优先级:网卡配置文件中的DNS1/DNS2/DNS3优先级高于/etc/resolv.conf,且不会被自动覆盖。
  2. 冗余目的:建议至少配置 2 个 DNS(如 1 个国内 + 1 个国际),避免单一 DNS 故障导致解析失败。
  3. 多网卡场景:若服务器有多个网卡,只需在默认路由对应的网卡中配置 DNS 即可,无需重复配置。
通过以上方法,即可实现多个 DNS 服务器的配置,提高服务器域名解析的稳定性和冗余能力。
阅读剩余
THE END