在为静态IP配置网络时,resolv.conf不会在重新启动时设置

在配置我的计算机使用静态IP时,我遇到了Ubuntu 12.04服务器版中的名称解析问题。

在/ 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改为:’nameserver 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/

根据resolvconf手册页 ( 手册页中提供的示例),将以下内容添加到静态配置下的/ etc / network / interfaces中:

 dns-nameservers [IP address(es) of your DNS] dns-search [your dns-search strings (optional)] 

您确定在设置静态IP时提供了192.168.1.1作为DNS的值吗?

我不知道如何从命令行执行此操作,但使用System Settings -> Network GUI也应该工作,不是吗? 我所想的只是你想要下面的屏幕截图? 或者我不明白你想做什么?

具有静态IP,默认路由,DNS服务器的网络配置

注意:忽略左侧窗口中的值。 这些只是我的DHCP值。 我没有费心去保存静态配置,因为我只是想说明我在想什么。

顺便说一下,我使用了192.168.1.1因为这就是你所使用的。 但您也可以将IP用于任何有效的DNS服务器。 例如, 8.8.8.8和/或208.67.222.222也应该有效。

如果您不想(或不能)使用网络管理器小程序来设置网络设置,我找到了设置“静态” IP配置的正确方法,因为当您没有可用的DHCP服务器时,是在dhclient.conf上有静态租约。 在那里你应该指定当dhclient回退到静态时将写入resolv.conf文件的名称服务器。

但是,如果您不想弄脏手,我仍然建议您使用GUI在连接的IP设置中指定DNS服务器地址,如https://askubuntu.com/a/127537/33305 。

OP正在使用服务器ed。 NetworkManager不适用..虽然谁知道它可能会被添加只是为了增加服务器的复杂性。

为什么在世界上为什么resolvconf被添加到服务器ed …为什么!! ??!?

无论如何回答你的问题加入:

的/ etc /网络/接口

像这样的东西:

 auto eth0 inet static dns-nameservers ns1.mydnsservers.com ns2.mydnsservers.com 

重要的选项是“dns-nameservers”。