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.
Solution 1:
I had the same problems. My DNS stopped working after upgrading from 17.04 to 17.10.
-
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
-
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.
Solution 2:
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 :
- add a line
nameserver 8.8.8.8
in/etc/resolv.conf
- install unbound with
sudo apt-get install unbound
-
disable the troublesome daemon with:
sudo systemctl disable systemd-resolved
sudo systemctl stop systemd-resolved
- add
dns=unbound
in the [main] section of/etc/NetworkManager/NetworkManager.conf
-
enable
unbound
with:sudo systemctl enable unbound-resolvconf
sudo systemctl enable unbound
- Reboot the computer
Solution 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.
Solution 4:
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:
- Edit the
resolve.conf
file by adding line nameserver 8.8.8.8 - install unbound with
sudo apt-get install unbound
After running 2 above I observed HAD AN INTERNET CONNECTION! Next, I did the following:
-
sudo apt-get update
- 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.
Solution 5:
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