NetworkManager dnsmasq#
Use NetworkManager’s integrated dnsmasq.
In /etc/NetworkManager/NetworkManager.conf
enable dnsmasq by setting
dns=dnsmasq
, e.g.
[main]
plugins=ifupdown,keyfile
dns=dnsmasq
Disable the stub resolver of systemd-resolvd:
cat <<'EOF' > /etc/systemd/resolved.conf
[Resolve]
DNSStubListener=no
EOF
rm /etc/resolv.conf
systemctl restart systemd-resolved.service
systemctl restart NetworkManager
cat /etc/resolv.conf
# "Generated by NetworkManager"
Example config files:
# use local hosts file
cat <<'EOF' > /etc/NetworkManager/dnsmasq.d/hosts.conf
addn-hosts=/etc/hosts
EOF
# set localhost on port 1053 for the domain "foo"
cat <<'EOF' > /etc/NetworkManager/dnsmasq.d/foo-server.conf
server=/*.foo/127.0.0.1#1053
EOF
systemctl reload NetworkManager
Debugging#
List processes listening on UDP
netstat -panu
Notes#
systemd-resolvd symlinks
/etc/resolv.conf
to/run/systemd/resolve/resolv.conf
NetworkManager writes
/etc/resolv.conf
as soon as the symlink is removed