在RHEL7下,手工设置 /etc/resolv.conf 里的DNS有可能被系统清除或覆盖,与7.0以前的配置不同,可以使用一下三种方式配置。

方法1:nmcli工具设置

使用nmcli connection show命令查看当前连接信息,如下图:

rhel7-dns-config
rhel7-dns-config

修改当前网络连接对应的DNS服务器,这里的网络连接可以用名称或者UUID来标识,如果这里修改br1接口的DNS信息,这里就需要用到方框框住的部分的名称,

1nmcli connection modify enp4s0f1 ipv4.dns '114.114.114.114 8.8.8.8'
2nmcli con up  enp4s0f1

此时再查看resolv.conf的配置,发现其已由NetworkManager重新生成。

方法2:禁止NetworkManager修改DNS配置

修改 /etc/NetworkManager/NetworkManager.conf 文件,在main部分添加 “dns=none” 选项,使其不去管理修改 /etc/resolv.conf DNS配置,NetworkManager.conf 文件修改如下:

1# cat  /etc/NetworkManager/NetworkManager.conf
2[main]
3plugins=ifcfg-rh
4dns=none  #添加这句
5[logging]
6#level=DEBUG

重启NetworkManager生效,并修改DNS配置:

1# systemctl restart NetworkManager.service
2修改 /etc/resolv.conf,如下:
3nameserver 8.8.8.8

方法3:禁止修改resolv.conf文件

1chattr +i /etc/resolv.conf

上面三种方法任选一种即可。