在 CentOS 或 Red Hat Enterprise Linux (RHEL7)中,/etc/resolv.conf 文件,保存了namaserver的设定。当我们修改/etc/resolv.conf后,重启系统的话,NetworkManager将覆盖掉/etc/resolv.conf的内容。
例如 在VMware上启动CentOS7.9系统后的/etc/resolv.conf的文件内容如下。
# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.3.1
nameserver fe80::1%ens33
现象
当我们修改 /etc/resolv.conf 文件(添加search sys-blog.net行),重启系统发现文件内容被覆盖掉。
# cat /etc/resolv.conf
# Generated by NetworkManager
search sys-blog.net
nameserver 192.168.3.1
nameserver fe80::1%ens33
使用reboot命令重启系统后,发现/etc/resolv.conf文件的内容被覆盖。
解决方法
在 /etc/NetworkManager/NetworkManager.conf 文件,把 dns 的参数设定为 none,具体的设定为如下(注释去掉后)。
# cat /etc/NetworkManager/NetworkManager.conf
[main]
plugins=ifcfg-rh,ibft
dns=none
至此/etc/resolv.conf文件内容在重启系统之后不会被覆盖。
原因
查看 NetworkManager.conf 的man页面。
dns
Set the DNS (resolv.conf) processing mode.default:The default if the key is not specified.NetworkManager
will update resolv.conf to reflect the nameservers provided by
currently active connections.dnsmasq:NetworkManager will run dnsmasq as a local caching
nameserver, using a “split DNS” configuration if you are connected
to a VPN, and then update resolv.conf to point to the local
nameserver.none:NetworkManager will not modify resolv.conf.