68

I am using Ubuntu 12.04.

My /etc/network/interfaces file consists of:

# The loopback network interface  
auto lo  
iface lo inet loopback  


# The primary network interface  
auto eth0 
iface eth0 inet static  
address 192.168.1.58  
gateway 192.168.1.1
network 192.168.1.0  
broadcast 192.168.1.255
dns-nameservers 66.212.63.228 66.212.48.10  

I ran the command: /etc/init.d/networking restart

Which responded with:

*Running /etc/init.d/networking restart is deprecated because it may not enable again some interfaces  
*Reconfiguring network interfaces...  
RTNETLINK answers: File exists  
Failed to bring up eth0  
[ OK ]  

Next I ran ping google.com and received:

ping: unknown host google.com

I am not sure if my interfaces refreshed. How do I properly configure my network with my static DNS addresses?

3
  • 1
    Reboot your computer. Do not run /etc/init.d/networking restart. The error is caused by the default route already existing. This setup looks correct to me.
    – hookenz
    Jan 27, 2013 at 22:42
  • 2
    As Matt H says, /etc/network/interfaces is picky about stuff already existing. You can have a perfect setup, but already have something there, and it will complain. If it is the default route it is complaining about, you can remove it by running ip route del default to get the computer into a state where you can hand over the management of this stuff to /etc/network/interfaces
    – Azendale
    Mar 31, 2013 at 19:56
  • Network-manager has claimed another victim. Just delete that junk.
    – Owl
    Mar 3, 2019 at 16:48

13 Answers 13

30

As the questioner gives the contents of his /etc/network/interfaces I infer that he is using ifup to configure interfaces. But since he may actually be using NetworkManager, I will discuss that as well.

If you are using ifup then DNS settings go in /etc/network/interfaces. For each interface you add dns-* options appropriate for the nameserver(s) available over that interface. E.g., if a nameserver at address 1.2.3.4 is available over interface eth0, then add dns-nameservers 1.2.3.4 to the iface eth0 stanza.

If you are using NetworkManager then settings are entered in the Connection Editor (network indicator | Edit Connections...) in the IPv4 Settings tab.

Doing /etc/init.d/networking restart to reconfigure interfaces is deprecated. If you are using ifup then first ifdown each active network interface, then ifup each interface. If you are using NetworkManager then, first, disable networking using the indicator (top of the desktop); then open a terminal and run

sudo /etc/init.d/network-manager restart

and then enable networking using the indicator.

Or you can just reboot.

Regarding the fact that /etc/init.d/networking restart resulted in

RTNETLINK answers: File exists
Failed to bring up eth0  

This means that ifupdown thinks that eth0 is already up. Use ifdown --force eth0 to cause ifupdown to stop believing that it has already configured the interface.

Regarding the "deprecated" message, this message is no longer printed in Ubuntu 12.10 but you should still note that initscripts are "on their way out". To restart a service foo, use service foo restart or restart foo. Note also that if you want to reconfigure your interfaces it is better to ifdown them one by one than to rely on restarting "networking".

0
20

If none of the above work, keep it mind that Ubuntu appends a tail file to the resolv.conf file that it generates.

Try this:

sudo mkdir -p /etc/resolvconf/resolv.conf.d
sudo nano /etc/resolvconf/resolv.conf.d/tail

Which will open a blank resolv.conf.d file in the nano text editor. You will need to place your DNS server address on the first line of this file and remember to end the line with a carriage return (hit enter) as seen below:

nameserver 10.20.1.2
  • You can also use Google's public DNS: 8.8.8.8 and/or 8.8.4.4.

Editing the tail file instead of the actual resolv.conf file will prevent your change from being lost upon a system reboot.

You will need to run sudo resolvconf -u to activate the change. You should be able to ping google.com after this. Good luck!

If the command above does not find resolvconf, you can download it using:

sudo apt install resolvconf
2
  • Sounds good, but my Ubuntu 14.04 system didn't use this tail file. So this isn't a solution in my case. Thanks though. Sep 24, 2015 at 18:16
  • This worked for me on Ubuntu 18.x LTS VM - thanks!
    – oemb1905
    Oct 30, 2021 at 0:14
15

All of the answers which relate to /etc/network/interfaces incorrectly state dns-nameservers rather than dns-nameserver - below should work:

auto wlan0
iface wlan0 inet static
address 192.168.1.28
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameserver 8.8.8.8
dns-nameserver 8.8.4.4
dns-search something.network.com

(tested on Ubuntu 15.04)

5
  • 9
    Careful. I just confirmed that dns-nameserver (singular) does not work on RaspberryPi + Raspian Jesse. I found that I had to use dns-nameservers (plural). YMMV and all that, just trying to help out the next person...
    – evadeflow
    Feb 5, 2017 at 22:24
  • 3
    Check your resolvconf(8) man page for usage and options. On Ubuntu 16.04.3 LTS it says you either use one or more dns-nameserver lines with a single IP address per line, or you can use dns-nameservers and a space separated list of IP addresses.
    – jla
    Oct 19, 2017 at 3:57
  • dns-nameserver or dns-nameservers? because wiki.ubuntu.com/KvmWithBridge says "servers"...
    – Thufir
    Nov 29, 2017 at 10:20
  • Definitely doesn't work for me. Cannot vote down, not enough points yet.
    – Owl
    Mar 3, 2019 at 16:17
  • Yey, this is nice and consistent then! Sorry for the confusion, check both and check the above comments as it seems different Ubuntu / Debian / Raspian variants are different.
    – babelmonk
    Mar 12, 2019 at 8:27
11

Command line version:

You should add your nameserver(s) to /etc/resolvconf/resolv.conf.d/base file this way:

nameserver 66.212.63.228 
nameserver 66.212.48.10
11
  • I will have to try this method in a few hours and get back to you. Do you know why I am receiving the deprecated message and the failed to bring up eth0 message?
    – dottedquad
    May 29, 2012 at 20:15
  • 1
    You could use this:$ ifdown eth0 && ifup eth0 Read more about this issue here.
    – pl1nk
    May 29, 2012 at 22:05
  • 1
    @dottedquad what is you change the /etc/network/interfaces file to this: auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.1.58 gateway 192.168.1.1 network 192.168.1.0 broadcast 192.168.1.255 Take care that this: auto eth0 iface eth0 inet staticis two lines
    – pl1nk
    May 30, 2012 at 0:17
  • 1
    It is better to add nameserver information to NetworkManager connections (if you are using NetworkManager) as described by bodhi.zazen, or to interface definitions in /etc/network/interfaces (if you are using ifup) than to add the information statically and globally to /etc/resolvconf/resolv.conf.d/base.
    – jdthood
    Oct 30, 2012 at 8:21
  • 1
    @jdthood It seems that you have seen my comments and the question as well as the other answers! Some comments up [..] "You could use this:$ ifdown eth0 && ifup eth0"[..]
    – pl1nk
    Nov 1, 2012 at 13:19
6

Easiest method of configuring your DNS servers is to use NetworkManager

Under IPv4, fill in your dns server(s)

enter image description here

2
  • 2
    I forgot to mention that i do not have unity or gnome installed. Gnome installatio is my next project.
    – dottedquad
    May 29, 2012 at 20:13
  • It wont let me save this down. why might that be?
    – josh
    Dec 20, 2018 at 16:37
5

I was able to work around this on a headless ubuntu server install by adding

nameserver 8.8.8.8

...after the relevant interface stuff in /etc/network/interfaces:

auto wlan0
iface wlan0 inet static
address 192.168.1.28
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8
dns-nameservers 8.8.4.4

Hope this helps later users!

2
4

This worked for me

sudo vi /etc/resolvconf/resolv.conf.d/base

and add:

nameserver <add your router ip>

Run:

sudo resolvconf -u

I use core install of ubuntu server.

4

Note: carefull using without direct access on the machine, this will cut the connection...

I use

sudo ifdown eth0

then

sudo ifup eth0

It will reset and release everything...

If it faces with errors related to configuration, you can use:

sudo ifdown eth0 --force
2

You are missing a subnet specification in the interfaces file.

Add netmask 255.255.255.0 to /etc/network/interfaces below the network line.

2

I had this problem. I thought i was going mad. Everytime i edited /etc/resolv.conf, it deleted my config. Turns out some total lunatic has distributed debian with network-manager, which is overwriting all my network settings.

This is how i fixed it:

1) sudo apt-get purge network-manager

This gets rid of this horrendous new tool that stops all the configs from working properly.

2) Edit the /etc/network/interfaces file:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

auto enp0s25
iface enp0s25 inet static
        address 192.168.1.2
        netmask 255.255.255.0
        gateway 192.168.1.1

3) Edit /etc/resolv.conf:

nameserver 8.8.8.8
nameserver 8.8.4.4

4) Reboot.

Congrats, you now have sane configs that work again.

1

For some reason the dns-nameservers statement does nothing in my case. And the other answers are not by the book, as they bypass dnsmasq as it is utilized in Ubuntu.

To do this right, edit /etc/dnsmasq.conf

Add your nameservers to the bottom of the file:

server=8.8.8.8
server=8.8.4.4

Restart dnsmasq to use the new settings: sudo service dnsmasq restart

Credit: https://unix.stackexchange.com/a/163506/187949

0

You might configure that interface in an other file too, since you have more gateways.

Details are here.

0

Most distro you can setup your DNS SERVER over the path

nano /etc/resolv.conf

and setup inside for ex [mine is like as follow]:

nameserver 192.168.43.1
nameserver 8.8.8.8
nameserver 8.8.8.4

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .