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.
6 Answers
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.confDNS=<DNS server here> FallbackDNS=<DNS server here>and then restarting
systemd-resolvedby running#sudo systemctl restart systemd-resolvedThe other way is to change in
/etc/NetworkManager/NetworkManager.confdns=dnsmasqto
dns=systemd-resolvedThen restart NetworkManager by running:
#sudo systemctl restart NetworkManager
and your DNS should work.
1I 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.8in/etc/resolv.conf - install unbound with
sudo apt-get install unbound disable the troublesome daemon with:
sudo systemctl disable systemd-resolvedsudo systemctl stop systemd-resolved- add
dns=unboundin the [main] section of/etc/NetworkManager/NetworkManager.conf enable
unboundwith:sudo systemctl enable unbound-resolvconfsudo systemctl enable unbound- Reboot the computer
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:
- Edit the
resolve.conffile 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.
Step 1: Checking Default route Use one of these commands:
route -nor
ip rAsk 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.