目的:
用戶可以自定義/etc/resolv.conf內容,且不被系統修改。
常規方法1:
/etc/sysconfig/network-scripts/ifcfg-eth0 網卡配置文件中增加PEERDNS=no
注意:雲平台受cloud-init 管理網卡,制作鏡像后創建新機器會被重置
# Created by cloud-init on instance boot automatically, do not edit. # BOOTPROTO=dhcp DEVICE=eth0 NM_CONTROLLED=no ONBOOT=yes TYPE=Ethernet USERCTL=no PEERDNS=no
常規方法2:
創建dhcp 配置文件 /etc/dhcp/dhclient-enter-hooks 寫入空函數
#!/bin/sh make_resolv_conf(){ : }
chmod +x /etc/dhcp/dhclient-enter-hooks
常規方法3:
類似2,直接修改dhcp腳本:/usr/sbin/dhclient-script將里面的make_resolv_conf函數置空同上
然並卵..............
案例1:
方法2.方法3 僅配置 /etc/dhcp/dhclient-enter-hooks無效。重啟系統后/etc/resolv.conf 並沒有保持住,反而被置空
查看是否有備份文件/etc/resolv.conf.save
[root@localhost ~]# ls -l /etc/resolv.conf* -rw-r--r-- 1 root root 1 Dec 18 17:10 /etc/resolv.conf -rw-r--r-- 1 root root 1 Dec 18 17:13 /etc/resolv.conf.save [root@localhost ~]# cat /etc/resolv.conf.save [root@localhost ~]#
解決:
刪除/etc/resolv.conf.save
原因解析:
/etc/resolv.conf.save 為備份文件,當dhcp腳本make_resolv_conf 為空時,直接從.save文件進行復制,導致配置無效。
案例2:
https://www.cnblogs.com/xulingjie/p/9227799.html
每次重啟服務器后,/etc/resolv.conf文件就被自動還原了,最后發現是被Network Manager修改了。
查看Network Manager服務狀態
systemctl status NetworkManager
停止Network Manager服務
systemctl stop NetworkManager
關閉Network Manager開機啟動
systemctl disable NetworkManager