繼續摘抄:關於/etc/resolv.conf經常自動改回來的解決辦法
sudo gedit /etc/dhcp3/dhclient.conf
在 /etc/dhcp3/dhclient.conf 中找到 #prepend domain-name-servers,去掉註釋並增加如下設定:
程式碼: prepend domain-name-servers <ip1>, <ip2>;這裡的<ip1>、<ip2> 是你的ISP給出來的DNS伺服器地址。
最近又遇到 /etc/resolv.conf 會定時被改寫掉的問題了,這回是在FreeBSD中!
在 LAN via NAT 或是 PPPoE 的環境中上Internet,我們總得在 resolv.conf 中指定 DNS server,而這裡的 DNS server 是
通過 DHCP server 自動獲取的,如果不能正確獲得則需要手動把 ISP 給出的 DNS server 加入。可有時候一些“聰明”的程
序總是會跳出來搞些小動作,
之前遇到過的情況有(DNS server 抓不對,且會被改寫!):
- Ubuntu 6.10 (Edgy) 通過 ppp 撥號時,只抓到 ADSL Modem DHCP server IP.
- Ubuntu 7.04 (Feisty) 那個可惡的network-manager程式會定時抓 ADSL Modem DHCP server IP.
- VMWare 中的 Guest OS 以 NAT 網路 獲取IP的時候,只抓到NAT DHCP server IP.
於是有很多人都跳出來問一個問題:“如何避免 resolv.conf 被修改、改寫和覆寫等等?“
然而對於*NIX 這樣靈活的系統,解法也有很多,我們一一看來,哪個粗糙,哪個優雅!
解法一:修改 /sbin/dhclient-script,註釋掉對 resolv.conf 進行操作的地方.
Linux :
把 make_resolv_conf 這個函式的呼叫都給註釋掉!
FreeBSD:
把 > resolv.conf 所在的行都給註釋掉!
解法二:強制修改 resolv.conf 的檔案flag,設定為不可被更改.
Linux:
chattr +i /etc/resolv.conf
FreeBSD:
chflags schg /etc/resolv.conf
解法三:變更DHCP Client的配置檔案,在特定的環節追加我們的設定.
Linux (Ubuntu Dist.):
在 /etc/dhcp3/dhclient.conf 中增加如下設定:prepend domain-name-servers <ip1>, <ip2>;
FreeBSD:
在 /etc/dhclient.conf 中增加如下設定:
prepend domain-name-servers <ip1>, <ip2>;
就我自己看來:解法一屬於粗糙,解法二屬於暴力,解法三才是好辦法!
解法三不會變更系統框架,
還是原來執行流程。
我們只是在預設的prepend環節,多增加prepend的內容,讓DHCP Client
在得到DNS server資訊後,把我們所需要的配置追加在前面。