DNS problems after upgrading from 16.04 to 17.10: How to reset the DNS settings to default?

After upgrading from Ubuntu 16.04 to 17.10, the DNS settings doesn't seem to work anymore. I guess that this might have to do something with the migration from resolvconf to systemd-resolv.

How can I make sure that the installed packages and configurations are in default state as intended for 17.10?

For example, I noticed that resolvconf is installed and I removed it. However, this didn't solve the problem. I am guessing that there are more steps to make sure that it's on 17.10 default settings.

I can make it work (temporarily) by explicitly setting a nameserver in /etc/resolv.conf (for example nameserver 8.8.8.8), but this isn't the intended way to do it.

4

6 Answers

I had the same problems. My DNS stopped working after upgrading from 17.04 to 17.10.

  1. The solution that temporarily worked was putting into /etc/systemd/resolved.conf

    DNS=<DNS server here>
    FallbackDNS=<DNS server here>

    and then restarting systemd-resolved by running

    #sudo systemctl restart systemd-resolved
  2. The other way is to change in /etc/NetworkManager/NetworkManager.conf

    dns=dnsmasq

    to

    dns=systemd-resolved

    Then restart NetworkManager by running:

    #sudo systemctl restart NetworkManager

and your DNS should work.

1

I found an excellent blog post about the latest Ubuntu's DNS problem with systemd-resolved that solved the issue for me.

The steps are :

  1. add a line nameserver 8.8.8.8 in /etc/resolv.conf
  2. install unbound with sudo apt-get install unbound
  3. disable the troublesome daemon with:

    sudo systemctl disable systemd-resolved

    sudo systemctl stop systemd-resolved

  4. add dns=unbound in the [main] section of /etc/NetworkManager/NetworkManager.conf
  5. enable unbound with:

    sudo systemctl enable unbound-resolvconf

    sudo systemctl enable unbound

  6. Reboot the computer
3

As @spark said, you must edit /etc/systemd/resolved.conf and after restarting the service, all thing work but you don't see any change in /etc/resolv.conf because systemd-resolved works differently from resolveconf service.

systemd-resolved use an intermediate resolver (127.0.0.53) to pass all requests to DNS servers that you specify in /etc/systemd/resolved.conf DNS section. so you shouldn't change /etc/resolv.conf directly. if you want to check if your changes are affected, you can open /run/systemd/resolve/resolv.conf to see your DNS servers. this is the file that systemd-resolved uses to resolve addresses.

Regarding the DNS problem I tried the four "fixes" noted above and none worked. I had lost my eth0 connection when my upgrade crashed with some missing files. I needed to get an Internet connection before I could do anything to fix problem so I tried this using ideas from your Solution 4:

  1. Edit the resolve.conf file by adding line nameserver 8.8.8.8
  2. install unbound with sudo apt-get install unbound

After running 2 above I observed HAD AN INTERNET CONNECTION! Next, I did the following:

  1. sudo apt-get update
  2. sudo apt-get dist-upgrade.

This reloaded the entire UBUNTU 17.10. Then I ran sudo install -f to fix any broken packages. The final result was a working system on my 12-year-old Althon 3500 64-bit machine. ABIT NF-91 mainboard, 2GB ram.

Step 1: Checking Default route Use one of these commands:

route -n

or

ip r

Ask a new IP address and amend the connection with the next command:

dhclient -v wlan0

I had the same problem after upgrading from 17.04 to 17.10 although for me systemd-resolved was fine.

The problem for me was in/etc/nsswitch.conf.

After commenting out the hosts: files entries DNS worked again.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like