近期在修改一台CentOS7服務器的dns時發現只要重啟服務器DNS就會被強制還原,解決方案如下:
1、首先在網卡設置中修改NM_CONTROLLED的值:
修改文件/etc/sysconfig/network-scripts/ifcfg-eth0的內容:
NM_CONTROLLED="no" //是否允許Network Manager管理,設置為no
默認允許Network Manager管理DNS,所以首先設置為no,然后操作DNS設置
但是!但是!但是!
經過本人親測,最好還是把Network Manager這個服務徹底關閉,因為這個服務的關系總是會造成一些網卡bug,本人曾經遇到過網卡都啟動失敗了。
關閉方法如下:
#查看Network Manager服務狀態
systemctl status NetworkManager
#停止Network Manager服務
systemctl stop NetworkManager
#關閉Network Manager開機啟動
systemctl disable NetworkManager
2、設置DNS內容:
修改DNS有如下兩種方案,推薦第二種,第一種會存在有時當我們采用自建DNS服務時,需要在DNS配置文件設置短域名解析(search 域名),而這個只能在/etc/resolv.conf中進行設置,所以我們推薦第二種方式,直接修改/etc/resolv.conf
2.1 修改網卡設置
在/etc/sysconfig/network-scripts/ifcfg-eth0中修改內容:
PEERDNS="yes"
DNS1="xxx.xxx.xxx.xxx"
DNS2="xxx.xxx.xxx.xxx"
這種設置方案是以網卡中設置的DNS為主,resolv.conf中按照網卡設置的DNS內容自動生成,以后想修改DNS,必須修改網卡中的設置才不會在服務器重啟之后出現DNS設置失效的問題。
2.2 直接修改/etc/resolv.conf(推薦)
需要注意的是,若要使直接修改的DNS內容不會在服務器重啟之后丟失,需要設置網卡中PEERDNS的值為no:
nameserver xxx.xxx.xxx.xxx
nameserver xxx.xxx.xxx.xxx
3、修改完畢重啟網卡:
systemctl restart network
按照上面任意一種方案修改DNS設置之后都不會出現重啟服務器DNS設置復原的情況。
