I have wasted the last 2.5 hours trying to see where I went wrong with my configuration and I just can’t.
For the record, I am running OpenSuse Tumbleweed with Gnome, latest update for everything. Up to now I have been using AdGuard as my DNS resolver, but am now trying to switch to Mullvad but at this point I think I probably don’t want to anymore. Reason being, I just can not get it to work for the life of me.
My system has NetworkManager installed so I go there, select my connected Wifi, and enter Mullvad’s DNS address 194.242.2.4 in thr IPv4 section, then I go to check to see if it shows I am using their DNS and it Firefox AND Vivaldi give no internet connection errors. I go back to Adguard DNS and my internet is back working again. I go back to Mullvad, you guessed it, no internet once again. I even tried Cloudflare and Quad 9’s DNS addresses and both of those worked as well but Mullvad’s just does not want to work and I am going insane over it.
And no I can not edit resolv.conf through the terminal because NetworkManager will override it and no I don’t want to delete NetworkManager. Any feedback would be appreciated.
Edit: I have Mullvad DNS on my phone and got it running with zero issues so this is more of a Linux problem than a Mullvad DNS problem I think.
Solution:
Open terminal and follow through
sudo zypper install systemd-network
sudo nano /etc/systemd/resolved.conf
Copy paste this into the file that you just opened and change the DNS to whichever DNS provider you are using.
[
]
DNS=194.242.2.4 2a07:e340::4
FallbackDNS=194.242.2.2 2a07:e340::2
Domains=~.
DNSSEC=yes
DNSOverTLS=opportunistic
#MulticastDNS=no
#LLMNR=no
Cache=yes
#CacheFromLocalhost=no
#DNSStubListener=no
#DNSStubListenerExtra=
ReadEtcHosts=yes
#ResolveUnicastSingleLabel=no
Ctrl + O to write out and Ctrl + X to exit back to the terminal main page.
ln -sf ../run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
sudo systemctl start systemd-resolved
sudo systemctl enable systemd-resolved
sudo systemctl restart NetworkManager
Boom it should be working now.
Mullvad (apparenlty, first time I’ve heard from the service) uses DNS over TLS and I don’t think that the current GUI version has the option to enable it. Here’s a quickly googled howto from Fedora on how to enable it on your system. If that doesn’t help search for ‘NetworkManager DOT’ or ‘DNS over TLS’.
Right on the money: See also the official mullvad docs: https://mullvad.net/en/help/dns-over-https-and-dns-over-tls#linux
The solution on their page does not work as my network settings are controlled by Network Manager
According to the comments on Bugzilla, NetworkManager only seems to support DoT in conjunction with systemd-resolved. The thread also shows some example commands for configuring it.
As an alternative, you could configure stubby to handle your DNS, which supports DoT for upstream servers. You’d configure your network to use whatever address you bind stubby to (probably 127.0.0.1) and configure stubby to only use Mulvad as an upstream server.
I tried the guide you sent, and it gives me an error in the terminal when I try to restart NetworkManager. This is caused by the thing in step 2, and when I remove the file that was created in step 2, NetworkManager starts fine again, but now I need to have a DNS IP address entered into IPv4 and IPv6 per network connection, and it can not be Mullvad’s DNS servers otherwise I again get no connection which again just puts me back at square one, only now I have a systemctl command running in the background for no reason.