How to override the DHCP-provided nameserver?
I (think) that I've configured a static IP address in /etc/network/interfaces
:
# 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
And I change the file /etc/resolv.conf
to include the desired nameservers.
Then I restart networking sudo /etc/init.d/networking restart
But after some hours resolv.conf always reverts back to the DHCP nameserver.
I should also say that this is Ubuntu Server with only
l0
and eth0
interfaces.
If you want to override or append to the name servers suggested by the DHCP server, you can configure this in /etc/dhcp/dhclient.conf
, eg:
interface "eth0" {
prepend domain-name-servers 10.0.0.2;
}
You can also do this from the "Edit Connections" control in the network indicator in Unity or GNOME.
A resolution that will resolve your problem is to configure your resolvconf
package. This will give precedence to your preferred nameservers as well as any other desired settings resolv.conf settings such as search and domain preferences.
Edit the file: /etc/resolvconf/resolv.conf.d/head
Place your desired nameservers and any other configurations you want to take preference when there is a network change there. When any changes to the network happen, the configuration there will always take precedence.
An example of the /etc/resolvconf/resolv.conf.d/head
file:
# 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
Look at the answer to a similar question:
override dns nameserver
Note:
Be sure to have a linefeed after the last entry. Most editors will provide a linefeed automatically when saving the file.