Setting DNS via NetworkManager/nm-applet doesn't update the /etc/resolv.conf (17.10)
It took me a while to get there...
If you already know what you want to set in resolv.conf then you can simply
write your settings in /etc/systemd/resolved.conf
with your favorite editor.
sudo nano /etc/systemd/resolved.conf
Just uncomment DNS and domains, enter the IPs and searchdomains (blank seperated) and restart systemd-resolv or reboot your host.
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
#
# Entries in this file show the compile time defaults.
# You can change settings by editing this file.
# Defaults can be restored by simply deleting this file.
#
# See resolved.conf(5) for details
[Resolve]
DNS=<IP> <IP>
#FallbackDNS=
Domains=<domain> <domain>
#LLMNR=yes
#MulticastDNS=yes
#DNSSEC=no
#Cache=yes
#DNSStubListener=udp
NetworkManager should be able to modify the DNS. I don't have a VPN to test, but I was able to append nameservers with NM on my wired connection.
Saftever
Updated on September 18, 2022Comments
-
Saftever over 1 year
My
/etc/resolv.conf
shows# Generated by NetworkManager search [value provided by local network] nameserver 127.0.1.1
The
nameserver
value is not the one provided by the local network (checked using nm-applet), but thesearch
is.
I've removeddns=dnsmasqd
from/etc/NetworkManager/NetworkManager.conf
. There's onlydnsmasq-base
installed.
I don't want to set DNS permanently because I still wantresolv.conf
to be updated by the VPN, so
noprepend domain-name servers
in/etc/dhcp/dhclient.conf
nodns-nameservers
in/etc/network/interfaces
no/etc/resolvconf/resolv.conf.d/
base
head
tail
files.
resolv.conf
remains the same when I set the DNS on nm-applet usingAutomatic (DHCP)
.
When I setAutomatic (DHCP) addresses only
, there is nosearch
value, butnameserver 127.0.1.1
is still inresolv.conf
.
Edit: Did some more checking./etc/NetworkManager/dnsmasq.d
is empty.$ cat /usr/lib/NetworkManager/conf.d/10-dns-resolved.conf [main] dns=systemd-resolved
/etc/systemd/resolved.conf
is all commented out.$ systemd-resolve --status Global DNS Servers: 127.0.1.1 DNS Domain: [same as resolv.conf]
How do I configure that the DNS values from nm-applet overrides the
systemd-resolve
?.
Ultimately, what I want is to initially set the dns inresolv.conf
to my preferred server, and then when I connect to VPN (nm-applet's OpenVPN),resolv.conf
will have the value provided by the VPN.