How to resolve "Temporary failure in name resolution" issue

November 5, 2017 196 views
LAMP Stack Ubuntu 16.04

I rebooted my server (Ubuntu 16.04 w/ LAMP) about ~14 hours ago. Since then, I can't run apt-get or ping, and I'm seeing a lot of "Temporary failure in name resolution" errors in my syslog.

Here's the output when I run apt-get:

Err:1 http://security.ubuntu.com/ubuntu xenial-security InRelease
  Temporary failure resolving 'security.ubuntu.com'
Err:2 http://dl.google.com/linux/mod-pagespeed/deb stable InRelease
  Temporary failure resolving 'dl.google.com'
Err:3 http://mirrors.digitalocean.com/ubuntu xenial InRelease
  Temporary failure resolving 'mirrors.digitalocean.com'
Err:4 http://mirrors.digitalocean.com/ubuntu xenial-updates InRelease
  Temporary failure resolving 'mirrors.digitalocean.com'
Err:5 http://mirrors.digitalocean.com/ubuntu xenial-backports InRelease
  Temporary failure resolving 'mirrors.digitalocean.com'
Err:6 https://repos.sonar.digitalocean.com/apt main InRelease
  Could not resolve host: repos.sonar.digitalocean.com
Reading package lists... Done
W: Failed to fetch http://mirrors.digitalocean.com/ubuntu/dists/xenial/InRelease  Temporary failure resolving 'mirrors.digitalocean.com'
W: Failed to fetch http://mirrors.digitalocean.com/ubuntu/dists/xenial-updates/InRelease  Temporary failure resolving 'mirrors.digitalocean.com'
W: Failed to fetch http://mirrors.digitalocean.com/ubuntu/dists/xenial-backports/InRelease  Temporary failure resolving 'mirrors.digitalocean.com'
W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/xenial-security/InRelease  Temporary failure resolving 'security.ubuntu.com'
W: Failed to fetch https://repos.sonar.digitalocean.com/apt/dists/main/InRelease  Could not resolve host: repos.sonar.digitalocean.com
W: Failed to fetch http://dl.google.com/linux/mod-pagespeed/deb/dists/stable/InRelease  Temporary failure resolving 'dl.google.com'
W: Some index files failed to download. They have been ignored, or old ones used instead.

I suspect it's a DNS issue, but I'm not sure how to resolve. What should I look for?

2 Answers
TorWater November 8, 2017
Accepted Answer

I have this issue too. I suspect there is an issue with DigitalOcean's nameservers, so this will likely affect a lot of other people too.
Here's what I've done to temporarily get around it - but someone else might be able to advise on a better long-term fix:

1) Make sure your DNS Resolver config file is writable:
sudo chmod o+r /etc/resolv.conf

2) Temporarily change your DNS to use Google's nameservers instead of DigitalOcean's:
sudo nano /etc/resolv.conf

Change the IP address in the file to: 8.8.8.8

Press CTRL+X to save the file.

This is only a temporary fix as this file is automatically written/updated by the server, however I've not yet worked out what writes to it so that I can update it permanently.

I eventually found a similar solution. resolv.conf was the source of the issue; it was empty after I rebooted.

My fix:

  • I created a new Droplet, then copied the values that were populated in /etc/resolv.conf
  • On my original Droplet, I populated resolv.conf with the values from step 1
  • Done.

Note: After I applied this fix, DigitalOcean Support also suggested I add a firewall rule: enable DNS on port 53 TCP/UDP (inbound and outbound).

However, I haven't had to reboot my Droplet since creating the new firewall rule, so I haven't confirmed if it helps.

Have another answer? Share your knowledge.