How can I disable systemd-resolved in Ubuntu 17.04?
Disabling it with
systemctl disable didn't work, the service seems to be restarted (by Networkmanager?)
This method works on Ubuntu Releases 17.04 (Zasty), 17.10 (Artful), 18.04 (Bionic) and 18.10 (Cosmic):
Disable and stop the systemd-resolved service:
sudo systemctl disable systemd-resolved.service sudo systemctl stop systemd-resolved
Then put the following line in the
[main] section of your
Delete the symlink
sudo service network-manager restart
Also be aware that disabling systemd-resolvd might break name resolution in VPN for some users. See this bug on launchpad (Thanks, Vincent).
I've recently upgraded to (k)Ubuntu 17.04 and I also stumbled upon the change to systemd.
My setup is fairly typical I think, in that I have a DNS provider in my broadband HUB and this is my primary source of information for all the devices on my network (of which I have a few).
There is some beauty in systemd, it's not all bad but what is really bad is the documentation, the lack of communication from the Ubuntu team and the gung-ho "let's just change it despite it breaks for everyone" mentality.
The solution for me after tearing some hair out was to edit /etc/systemd/resolved.conf:
[Resolve] DNS=192.168.1.254 # <-- change to your router address #FallbackDNS=18.104.22.168 22.214.171.124 2001:4860:4860::8888 2001:4860:4860::8844 Domains=lan # <-- change to your localdomain name (maybe .local) #LLMNR=yes <-- I dabbled with this for a while but it doesn't matter #DNSSEC=no #Cache=yes #DNSStubListener=udp
After not understanding why this wouldn't work I figured out that what was also needed was to switch /etc/resolv.conf to the one provided by systemd. This isn't the case in an out-of-a-box install (for reasons unknown to me).
sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
The local DNS server is then not used and all DNS requests are sent to my HUB.
I think this is a much better solution than cutting out and putting in some other solution since systemd-resolv is now the default onwards.
A related problem btw is that the /etc/nsswitch.conf is neutered.
It should read:
hosts: files mdns4_minimal dns [NOTFOUND=return] resolve [!UNAVAIL=return] dns
This is a confusing configuration since [NOTFOUND=return] means processing ends there. The entries after it will never be used.
If you are having leaks issues with your VPN and can't figure out how to set up systemd (like me) you can remove it in the way described in the first answer but don't add the
dns=default line because it will activate the nameserver 127.0.0.1.
To set the router as dns, create the file "tail" in your
folder adding the line
ln -sf /var/run/resolved/resovl.conf /etc/resolv.confif you had messed up with this file.
Thank you for your interest in this question.
Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).
Would you like to answer one of these unanswered questions instead?