
當我將電腦配置為使用靜態 IP 時,我在 Ubuntu 12.04 Server 版本中遇到了似乎是名稱解析問題。
在 /etc/network/interfaces 中:
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.28
netmask 255.255.255.0
gateway 192.168.1.1
運行$ sudo apt-get upgrade
,導致“無法獲取...”:
. . . W: Failed to fetch http://us.archive.ubuntu.com/ubuntu/dists/precise-backports/universe/i18n/Translation-en_US Something wicked happened resolving 'us.archive.ubuntu.com:http' (-5 - No address associated with hostname)
[...]
當我將 /etc/network/interfaces 改為:
auto eth0
iface eth0 inet dhcp
一切正常。
查看 /etc/resolv.conf 可以提供更多提示。
在我遇到解決問題的情況下,resolv.conf 是空的;未指定名稱伺服器。然後我從靜態更改為 DHCP 並重新啟動網路; /etc/resolv.conf 更改為:「名稱伺服器 192.168.1.1」。
從 DHCP 切換回靜態並重新啟動不會刪除名稱伺服器項目。但是當我使用靜態設定重新啟動系統時,resolv.conf 為空。當我使用 DHCP 設定重新啟動系統時,resolv.conf 的名稱伺服器為 192.168.1.1。那麼,問題似乎是resolve.conf 沒有正確寫入?哪個套件/程式碼負責寫入 resolv.conf?是否有一個特定的包可供我查看未解決的問題?
更新:istream 發布了一篇很好的文章,討論了 12.04 中對resolve.conf 的更改。 http://www.stgraber.org/2012/02/24/dns-in-ubuntu-12-04/
答案1
按照resolvconf 手冊頁(手冊頁中提供的範例),將以下內容新增至靜態設定下的 /etc/network/interfaces 中:
dns-nameservers [IP address(es) of your DNS]
dns-search [your dns-search strings (optional)]
答案2
您確定192.168.1.1
在設定靜態 IP 時提供了 DNS 值嗎?
我不知道如何從命令列執行此操作,但使用System Settings -> Network
GUI 也應該可以,不是嗎?我只想你想要像下面的螢幕截圖這樣的東西?或者我不明白你想做什麼?
注意:忽略左側視窗中的值。這些只是我從 DHCP 獲得的價值觀。我沒有費心保存靜態配置,因為我只是想說明我的想法。
順便說一下,我用的是192.168.1.1
因為那是你用的。但您也可以使用任何有效 DNS 伺服器的 IP。例如,8.8.8.8
和/或208.67.222.222
也應該有效。
答案3
如果您不想(或不能)使用網路管理員小程式來設定網路設置,我找到了設定網路設定的正確方法“靜止的”當您沒有可用的 DHCP 伺服器時,IP 設定是在dhclient.conf
.您應該在此指定resolv.conf
當 dhclient 回退到靜態時將寫入檔案的名稱伺服器。
但是,如果您不想親自動手,我仍然建議使用 GUI 在連接的 IP 設定中指定 DNS 伺服器位址,如下所示https://askubuntu.com/a/127537/33305。
答案4
OP正在使用伺服器ed。 NetworkManager 不適用......儘管誰知道也許它會被添加只是為了增加伺服器的複雜性。
就此而言,為什麼 resolvconf 會被加入到伺服器編輯器中......為什麼!
無論如何回答你的問題添加:
/etc/網路/接口
像這樣的東西:
auto eth0 inet static
dns-nameservers ns1.mydnsservers.com ns2.mydnsservers.com
重要的選項是“dns-nameservers”。