如何覆盖DHCP提供的名称服务器?

我(想)我在/etc/network/interfaces配置了一个静态IP地址:

 # The primary network interface auto eth0 iface eth0 inet static address 10.1.1.2 netmask 255.255.255.0 network 10.1.1.0 broadcast 10.1.1.255 gateway 10.1.1.1 

我将文件/etc/resolv.conf更改为包含所需的名称服务器。

然后我重启网络sudo /etc/init.d/networking restart

但几个小时后,resolv.conf总是恢复为DHCP名称服务器。


我还应该说这是Ubuntu Server只有l0eth0接口。

如果要覆盖或附加到DHCP服务器建议的名称服务器,可以在/etc/dhcp/dhclient.conf进行配置,例如:

 interface "eth0" { prepend domain-name-servers 10.0.0.2; } 

您也可以从Unity或GNOME中的网络指示器中的“编辑连接”控件执行此操作。

解决问题的解决方案是配置resolvconf包。 这将优先考虑您的首选名称服务器以及任何其他所需的设置resolv.conf设置,例如搜索和域首选项。

编辑文件: /etc/resolvconf/resolv.conf.d/head

当您的网络发生变化时,请放置您想要的名称服务器以及您想要优先选择的任何其他配置。 当对网络进行任何更改时,配置始终优先。

/etc/resolvconf/resolv.conf.d/head文件的示例:

 # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN nameserver 8.8.8.8 search mydomain.com 

看看类似问题的答案:
覆盖dns名称服务器

注意:
确保在最后一次输入后有换行符。 保存文件时,大多数编辑器会自动提供换行。

我找到了删除dhcp客户端的参考,我认为那是主要的罪魁祸首。 我已经这样做了,还没有看到问题。 将等待’直到早上确认,但似乎dhcp客户端仍在运行,必须停止并卸载。

 apt-get remove isc-dhcp-client dhcp3-client dhcpcd 

根据经验,您应该始终使用apt-get --purge remove 卸载所有网络服务。 这样,所有配置文件也将被删除。

在这种情况下,命令将是:

 apt-get --purge remove isc-dhcp-client isc-dhcp-common 

此命令将完全删除isc-dhcp-client