/etc/resolv.conf 是设定系统使用那些 Name Server 的设定档, 但从 RHEL 及 CentOS 7 开始加入了 Network Manager 后, 当修改了 /etc/resolv.conf 的内容后, 会被 Network Manager 覆写到原来的设定。
先来看一看 CentOS 7 下的 /etc/resolv.conf 内容:
$ cat /etc/resolv.conf
# Generated by NetworkManager
search mydomain.tld
nameserver 8.8.8.8
nameserver 8.8.4.4
# Generated by NetworkManager
search mydomain.tld
nameserver 8.8.8.8
nameserver 8.8.4.4
当 Network Manager 在网卡设定档 (/etc/sysconfig/network-scripts/ifcfg-***) 找到 DNS 相关的内容时, 会对 /etc/resolv.conf 进行重新设定:
$ grep DNS /etc/sysconfig/network-scripts/ifcfg-*
IPV6_PEERDNS=yes
DNS1=8.8.8.8
DNS2=8.8.4.4
IPV6_PEERDNS=yes
DNS1=8.8.8.8
DNS2=8.8.4.4
上面 “DNS1=8.8.8.8” 及 “DNS1=8.8.4.4” 便是 DNS 的设定, 要防止 Network Manager 覆写 /etc/resolv.conf, 只要移除 “DNS1=8.8.8.8” 及 “DNS1=8.8.4.4” 两行便可以。
移除网卡设定档内的 DNS 设定后, 便可以像以前一样手动修改 /etc/resolv.conf 的内容, 而不会被 Network Manager 覆写掉。