I'm running ubuntu server 16.04.2 and apt-get update returns temporary failure resolving "everything on the list".

  • When I ping www.google.com, it responds with unknown host.
  • When I ping with, I get packets sent with no errors etc.

I have tried every "fix" I can find in Ubuntu forums and all over the rest of the internet world and nothing works. The resolv.conf is empty, ifconfig shows nic is functioning, firewall is off, and I threw away the hammer just in case. Unfortunately, I am typing this on another computer on the same network but can't attach text from the various outputs to show whats going on. Need help on this please.

The resolv.conf file contains these lines:

# 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

The last line is placed their by the interfaces file when you reboot the system. This is new for 16.04LTS. I'm thinking Windows NT4 wasn't so bad and neither was Ubuntu Server 12.

  • 2
    How is your system getting it's IP address? Is it coming from a DHCP server? It is a static IP? Being able to ping the IP address will work without a DNS server IP setup. But it sounds like you don't have a DNS address setup or your DHCP is not supplying it.
    – Terrance
    Commented Feb 23, 2017 at 4:43
  • IP is static. I never setup the DNS server when I installed the server software. Commented Feb 23, 2017 at 4:47
  • Look at askubuntu.com/questions/143819/… and add your DNS entry for like the Google DNS Servers at and
    – Terrance
    Commented Feb 23, 2017 at 4:50
  • I did all that. My static ip is coming from at&t vdsl box. Im using their dns name-servers and dns-search ip's. Only thing I can deduce is that at&t is blocking the dns querys. Commented Feb 23, 2017 at 4:56
  • Interesting. Maybe you might want to contact AT&T and see if they are blocking it in anyway. I guess you could try replacing their DNS servers with the Google DNS servers and see if that works.
    – Terrance
    Commented Feb 23, 2017 at 5:03

7 Answers 7


You need a Name Server in your /etc/resolv.conf file. Edit your /etc/resolv.conf and add a working Name Server. Google provides a free one,

Do this:

$ nano /etc/resolv.conf

Place this as the first non-commented line:


You can verify this functionality with:

$ ping -c10 www.google.com

You can make this change permanent by adding the line to this file your /etc/resolvconf/resolv.conf.d/head file.

  • 1
    Whoopie! Success! excuse me, 36 straight hours banging on this box... It worked. I even put in the at&t ip's and it worked. Thanks to all you guys for your help and quickness. (Mr. Moderator, these guys needed a pat on the back so ease up on the whole emotionless junk) Commented Feb 23, 2017 at 6:26
  • resolv.conf is not giving permission to edit Commented Jul 25, 2019 at 12:19
  • in contrast to @Ragy Morkos' answer, it worked for me also in ubuntu 18.04 LTS Commented Nov 1, 2019 at 16:26
  • Thanks a lot! I couldn't ping www.google.com after chroot-ing into my ubuntu. Thanks to your solution, now I can do installations etc in the chroot-ed partition. Commented Nov 1, 2019 at 16:27
  • Thanks a lot for this solution!! How do you people manage to solve these?
    – Puspam
    Commented Oct 13, 2020 at 9:45

The marked answer actually doesn't work on Ubuntu 18.04.01. To fix this issue, here's what I did:

  • Execute sudo gedit /usr/lib/systemd/resolv.conf
  • Paste nameserver (and/or any other nameserver(s) you want), then save and exit.
  • Add a symlink by executing sudo ln -sf /usr/lib/systemd/resolv.conf /etc/resolv.conf

Credits to https://askubuntu.com/a/1050280/899241

  • Awesome. This one worked for me!!!! Commented Mar 24, 2023 at 4:47

Could you post a link to the page that told you that file resolv.conf should be empty? My guess is that it is misleading at best.

Edit that file with command sudo nano /etc/resolv.conf and put there a single line:


That should fix your name resolution and the various programs that use it - ping, apt-get, etc.

You also ought to investigate why resolv.conf is empty. Perhaps your DHCP server isn't configured properly.

  • This is what the file contains: # 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 search The last line is placed their by the interfaces file when you reboot the system. Commented Feb 23, 2017 at 5:12
  • @GaryMercer please add that to your question. It's difficult to read in a comment.
    – wjandrea
    Commented Feb 23, 2017 at 5:44

I had the same problem, until I edited with the following values the file 50-cloud-init.yaml

            - (my static ip address)
            dhcp4: false
                addresses: [,]
                search: []

hope it works for you too

  • If is using netplan and Google DNS servers would be addresses: [,] (maybe better use Cloudflare's on /etc/netplan/50-cloud-init.yaml and then sudo netplan --debug apply. Commented Dec 28, 2018 at 3:39

You are facing a problem related to DNS Server that you have specified for you system. Check your nameserver entry in /etc/resolv.conf.

The problem is , ping command is not able to identify what is "www.google.com" because your DNS server is not able to resolve it and provide google actual IP address(every server can only be accessed by its IP address)


Edit the entry in /etc/resolv.conf. Either provide a correct DNS server of a choice in /etc/resolve.conf that can resolve "www.google.com"

or yYou can specify your local system resolver whose IP address is by adding line


or provide Google's DNS server IP (any one of them): or


P.S You can understand better how DNS works here


Not an good idea on Ubuntu 16.04.x just overwriting /etc/resolv.conf. The OS will overwrite it for its own most likely.

The file /etc/resolv.conf is usually a symbolic link to another file:

ls -lisa /etc/resolv.conf
1310924 0 lrwxrwxrwx 1 root root 29 Jul 13  2016 /etc/resolv.conf -> ../run/resolvconf/resolv.conf

which means it is correct and you can edit it, but most likely another program is going to overwrite it. I'm going to guess you have NetworkManager installed. To my knowledge this service manages the content of your resolve. So you really should try to setup that one. (On other Hand NetworkManager could be disabled on you system. You might have to tell me.)

Try nmtui and add there the correct DNS Server. I also would use only as secondary DNS. Your primary DNS should be a machine or router nearby your local network or whatever you have there...

  • No network-manager. Its a server with no gui. I did get dnsutils installed before it quit connecting to the repositories. Commented Feb 23, 2017 at 6:04
  • @Gary Mercer: how do you bring the network interface then? (ifup and ifdown?) The Network Managers GUI is an optional component. nmtui is the text-based of that one. Commented Feb 23, 2017 at 14:49
  • I bring the nic up by rebooting the system. Since its a server, it never gets turned "off." I have found that using restart services doesn't always work because of the other inter-related components that make up all the services that use the interface. Its just easier and most efficient to restart all the services with a simple reboot command. Commented Feb 24, 2017 at 4:23
  • By rebooting your system something "a manager" has to bring your devices. In which did you configure the static IP Addresses? Commented Feb 24, 2017 at 12:40

The issue we addressed here is one that boiled down to resolving domain names to an ip address internally. Since version 15 of Ubuntu server, i believe, uses a system of dynamic configuration files that change every time the service or system is restarted or rebooted. If the administrator makes a change to resolv.conf file, those changes are deleted when the resolver service is restarted.

To make changes permanent, Ubuntu has made a way to make user changes permanent without affecting the dynamic configuration of the config files. The suggestion from L.D. James (above) was to add the changes I needed to make to the /etc/resolvconf/resolv.conf.d/head file.

This made the changes permanent and solved the problem of resolving domain names error message host not found. It is the solution to setting the dns nameserver in the interfaces file and then getting it to the resolver as well. Thank you all for your supreme efforts in solving this puzzle.

You must log in to answer this question.

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