2013-03-12 85 views

回答

2

我認爲NetworkManager覆蓋了/etc/resolv.conf文件。就我而言,這是我列出的DNS服務器順序是我想改變的。您可以通過NetworkManager編輯連接IP4V設置來完成此操作。

0

你有DHCP客戶端這樣做。按照這些instructions覆蓋。

+0

我試過你鏈接到的解決方案,但它不起作用。看起來網絡管理器是這樣做的,因爲/etc/resolv.conf中的第一行顯示爲:「#由NetworkManager生成」。一般來說,有沒有辦法知道編輯/etc/resolv.conf的程序? – mkhezr 2013-03-12 17:55:13

0

我用下面一行: chattr命令+我在/etc/resolv.conf

撤消使用: chattr命令-i的/etc/resolv.conf

讓我知道它的工作.. 。

0

網絡管理器可以配置爲使用手動輸入IPv4配置,或者從DHCP IP /掩碼/路由器只得到 - 在這種情況下它不應該在/etc/resolv.conf

然而改變,人們可能希望有他的在/etc/resolv.conf中擁有自己的設置 - 就像要搜索的域名服務器或域一樣;我只是需要一個域名,我做了通過將文件/etc/NetworkManager/dispatcher.d/99my_fix包含:

#!/bin/bash rc=/etc/resolv.conf; le="search my.domain" grep -q domain $rc && ! grep -q "$le" $rc && echo "$le" >> $rc

當然我搭配chmod-ED + X吧。 NetworkManager在設置/etc/resolv.conf後調用它,如果需要,我的腳本會修復它;第一個grep檢測到網絡已啓動,第二個修復未應用 - 它們都是修復應用所必需的。

10

正如你在resolv.conf中的標題讀出:

Dynamic resolv.conf file for glibc resolver generated by resolvconf 

所以,產生resolv.conf的,如果你想保持重啓後需要resolvconf配置,你必須編輯/ etc /resolvconf/resolv.conf.d/base。在那個文件中,像在resolv.conf中那樣輸入你的信息。

nameserver 8.8.8.8 

然後重新生成的resolv.conf和resolvconf:

sudo resolvconf -u 
2

閱讀其他的答案後,我仍然需要的東西,原因如下不同:

    我不使用 resolvconf
  • ,只是普通的/etc/resolv.conf
  • 使用chattr +i鎖定resolv.conf似乎太hacky。我需要Puppet在必要時可以自由地進行更改。

best solution我發現覆蓋使用其記錄掛鉤的dhclient默認行爲。

創建於/etc/dhcp/dhclient-enter-hooks.d/nodnsupdate包含以下內容的新文件:

#!/bin/sh 
make_resolv_conf() { 
    : 
} 

然後使文件可執行:

chmod +x /etc/dhcp/dhclient-enter-hooks.d/nodnsupdate 

現在,當dhclient的運行 - 無論是在重新啓動或當您手動運行sudo ifdown -a ; sudo ifup -a - 它加載這個腳本nodnsupdate。該腳本覆蓋了一個名爲make_resolv_conf()的內部函數,該函數通常會覆蓋resolv.conf,而不會執行任何操作。

這在Ubuntu 12.04上適用於我。

0

我有同樣的問題,我通過添加域名和域名的服務器編輯我的`/etc/dhcp/dhclient.conf」文件

supersede domain-name "local.com"; supersede domain-name-servers 192.168.56.103;

192.168.56.103是我的虛擬機運行bind9和我的域名是local.com

我已經從request部分刪除了相同的部分。

0

如果服務器實例的網絡接口受DHCP控制,則每當網絡服務重新啓動時,dhclient程序都會覆蓋/etc/resolv.conf文件。

您可以通過編輯「/etc/dhcp/dhclient.conf」文件並添加取代了域名域搜索域名的服務器如下語句解決這個問題:

supersede domain-name "mydomain.com"; 
supersede domain-search "mydomain.com" 
supersede domain-name-servers 8.8.8.8; 

在這種特殊情況下,名稱服務器位於「8.8.8.8」,域名是「mydomain.com」。替換您的特定信息。

請注意,每行都以分號終止,域名用雙引號括起來。