CentOS/RHEL 如何永久化设置DNS 服务器

CentOS/RHEL系统,在/etc/resolv.conf中设置的DNS服务器在重新启动/网络服务重新启动后发生更改。如何使它们永久化?

在重新启动或者网络服务重新启动后,我们会遇到此问题。

这通常发生在脚本 /etc/sysconfig/network-scripts/ifup-post 和 /etc/sysconfig/network-scripts/ifdown-post 检查网络接口中的参数“RESOLV_MODS=no”或者“PEERDNS=no”时配置文件,例如 /etc/sysconfig/network-scripts/ifcfg-* 。
如果这些参数中的任何一个都不存在,它将用 /etc/resolv.conf.save 替换 /etc/resolv.conf 的内容。
默认情况下,PEERDNS 和 RESOLV_MODS 为空。

我们还会在 /var/log/messages 文件中看到如下所示的消息:

Oct 10 12:40:52 hostname NET[22961]: /etc/sysconfig/network-scripts/ifdown-post : updated /etc/resolv.conf
Oct 10 12:40:57 hostname NET[23256]: /etc/sysconfig/network-scripts/ifup-post : updated /etc/resolv.conf
欢迎来到之路教程(on itroad-com)

如何使 /etc/resolv.conf 中的条目永久化

  1. 如果任何网络接口使用 DHCP 激活,/etc/resolv.conf 文件将被覆盖。
    为防止出现这种情况,请确保此类接口在其 ifcfg 文件中设置了 PEERDNS=no,例如:
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
DEVICE=eth0
BOOTPROTO=dhcp
PEERDNS=no
  1. ifcfg-file 指令 DNS1 和 DNS2 也可以导致 resolv.conf 的修改。
    为了防止这种情况,或者删除上述指令,或者使用 chattr(1) 使 resolv.conf 对更改不可变,即:
# chattr +i /etc/resolv.conf
日期:2020-09-17 00:12:38 来源:oir作者:oir