22

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 8.8.8.8, 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
search 8.8.8.8 8.8.4.4

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 Feb 23 '17 at 04:43
  • IP is static. I never setup the DNS server when I installed the server software. – Gary Mercer Feb 23 '17 at 04:47
  • Look at https://askubuntu.com/questions/143819/how-do-i-configure-my-static-dns-in-interfaces and add your DNS entry for like the Google DNS Servers at 8.8.8.8 and 8.8.4.4 – Terrance Feb 23 '17 at 04: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. – Gary Mercer Feb 23 '17 at 04: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 Feb 23 '17 at 05:03
  • No joy. I had commented out the dns namesserver and dns serach lines to see if that changed anything. It didn't. – Gary Mercer Feb 23 '17 at 05:17
  • What happens if you run sudo systemctl restart network-manager.service? Does your internet start working again? – Kaz Wolfe Feb 23 '17 at 05:23
  • network-manager.service not found. – Gary Mercer Feb 23 '17 at 05:29
  • Did you already restart your router? – wjandrea Feb 23 '17 at 05:45
  • Wore out the power cord restarting it. This has got to be a problem with either AT&T, the lack of a DNS server on this server, the installation of the whole thing is broken or Ubuntu server 16.04 just doesn't like my hardware. I'm almost out of hair and have relocated my Windows NT4 install discs. – Gary Mercer Feb 23 '17 at 06:02

7 Answers7

32

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, 8.8.8.8.

Do this:

$ nano /etc/resolv.conf

Place this as the first non-commented line:

nameserver 8.8.8.8

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.

L. D. James
  • 25,036
6

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 8.8.8.8 (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

4

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:

nameserver 8.8.8.8

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.

sмurf
  • 4,680
  • 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 8.8.8.8 8.8.4.4 The last line is placed their by the interfaces file when you reboot the system.

    – Gary Mercer Feb 23 '17 at 05:12
  • @GaryMercer please add that to your question. It's difficult to read in a comment. – wjandrea Feb 23 '17 at 05:44
1

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)

Solution

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 127.0.0.53 by adding line

nameserver 127.0.0.53

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

nameserver 8.8.8.8**

P.S You can understand better how DNS works here

Pablo Bianchi
  • 15,657
1

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

 network:
    ethernets:
        eno2:
            addresses:
            - 192.168.0.50/24 (my static ip address)
            dhcp4: false
            gateway4: 192.168.0.42
            nameservers:
                addresses: [208.67.222.222,208.67.220.220]
                search: [208.67.222.222]

hope it works for you too

0

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 8.8.8.8 only as secondary DNS. Your primary DNS should be a machine or router nearby your local network or whatever you have there...

Gerhard Stein
  • 699
  • 7
  • 8
  • No network-manager. Its a server with no gui. I did get dnsutils installed before it quit connecting to the repositories. – Gary Mercer Feb 23 '17 at 06: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. – Gerhard Stein Feb 23 '17 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. – Gary Mercer Feb 24 '17 at 04:23
  • By rebooting your system something "a manager" has to bring your devices. In which did you configure the static IP Addresses? – Gerhard Stein Feb 24 '17 at 12:40
-2

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.