FreeBSD/Linux 中避免 /etc/resolv.conf 被改寫 + 幾種解決辦法的比較 !

來源:互聯網
上載者:User

最近又遇到 /etc/resolv.conf 會定時被改寫掉的問題了,這回是在FreeBSD中!

在 LAN via NAT 或是 PPPoE 的環境中上Internet,我們總得在 resolv.conf 中指定 DNS server,而這裡的 DNS server 是
通過 DHCP server 自動擷取的,如果不能正確獲得則需要手動把 ISP 給出的 DNS server 加入。可有時候一些“聰明”的程
序總是會跳出來搞些小動作,把我們自己寫入的設定換掉,而且還是輪詢的,你再改,沒有過幾分鐘就又被改掉。

之前遇到過的情況有(DNS server 抓不對,且會被改寫!):

  1. Ubuntu 6.10 (Edgy) 通過 ppp 撥號時,只抓到 ADSL Modem DHCP server IP.
  2. Ubuntu 7.04 (Feisty) 那個可惡的network-manager程式會定時抓 ADSL Modem DHCP server IP.
  3. 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資訊後,把我們所需要的配置追加在前面。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.