Need a current working Mullvad VPN guide for Qubes 4.2.1

I’ve tried all the guides I could find to get Mullvad VPN working in Qubes 4.2.1 and all of them fail at one point or another:

Mullvad’s official guides for OpenVPN and Wireguard both fail unless I remove the firewall commands against DNS hijacking

Micah Lee’s guide fails when I try to select the .conf file I’ve imported into network manager - it simply fails to connect.

This guide work for the wireguard qube it’s set up in but fails to pass any connectivity to qubes that are connected to it.

Solene’s guide works until I restart, then the qubes connected to the standalone vpn qube lose all connectivity

That’s 5 for 5 all failing. Does anyone have an updated guide that’s confirmed working on the latest Qubes version?

1 Like

I use the first guide for one of my OpenVPN qube, so it definitely works. Probably a problem with SELinux if you are using Fedora.
Solene’s guide should also work as is.
Another option is GitHub - 1cho1ce/Qubes-vpn-support at replace-iptables-with-nftables, which I am currently using and it works.

1 Like

No issue with Solene’s guide here on 4.2.1.

1 Like

I dont have a guide, but I do have working salt states at

These are packaged for simple install - you can either download the
package, or install using qubes-task - take a look at

The package creates a sys-mullvad qube with the Mullvad GUI and Mullvad
Browser, which can be used as a VPN proxy. A disposable template is also
created so you can launch disposables, and run the Mullvad Browser, or
create distinct Mullvad VPN connections per disposable.

I never presume to speak for the Qubes team.
When I comment in the Forum I speak for myself.

Try mine: Using Mullvad VPN on Qubes OS | PrivSec - A practical approach to Privacy and Security

1 Like

Hey! I just came back to update this topic that I finally found success and as it happens I found your guide before I saw your post here, and it works perfectly! Thank you so much!

Good to hear :slight_smile:

I did update the guide earlier today to solve some issues with rate limiting when you change DNS servers, so just make sure you have all of the changes :smiley:

Make sure dnat-to-ns.service and systemd-resolved.conf.d/override.conf both have:


And make sure dnat-to-ns.service includes ExecStart=/usr/bin/systemctl restart systemd-resolved.