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