I am a long time Proton VPN user and recently switched to Manjaro as my secondary distro. And I realised, that Proton doesn’t care much about Manjaro and neither they do. If you try to install via the unofficial Flathub repo, it doesn’t work. They deleted the proton-vpn-cli
AUR package and replaced it with proton-vpn-cli-community
. It would have been fine but the issue is the package it depends on (python-pythondialog
) has been removed as well. I am sure there are some workarounds for it but they are not worth the trouble.
I am writing this tutorial basically to make Proton VPN work but it should work for any Wireguard based VPN provided you have the config files for it.
Install Wireguard
The first step is to install Wireguard. Fire up your terminal and paste the following command to install Wireguard.
~ sudo pacman -S wireguard-tools
Wireguard requires resolvconf
to work. For that you need to install the systemd-resolvconf
AUR package. Run the following command to follow through.
~ sudo pacman -Syu systemd-resolvconf
Enable and start the service.
~ sudo systemctl enable --now systemd-resolved
Check the status of the service.
~ sudo systemctl status systemd-resolved
Output:
● systemd-resolved.service - Network Name Resolution
Loaded: loaded (/usr/lib/systemd/system/systemd-resolved.service; enabled; preset: enabled)
Active: active (running) since Mon 2025-08-11 09:08:16 IST; 2h 33min ago
Invocation: 090199ab142d41cebf561a08c2315f7c
Docs: man:systemd-resolved.service(8)
man:org.freedesktop.resolve1(5)
https://systemd.io/WRITING_NETWORK_CONFIGURATION_MANAGERS
https://systemd.io/WRITING_RESOLVER_CLIENTS
Main PID: 3904 (systemd-resolve)
Status: "Processing requests..."
Tasks: 1 (limit: 28556)
Memory: 5M (peak: 6.5M)
CPU: 1.611s
CGroup: /system.slice/systemd-resolved.service
└─3904 /usr/lib/systemd/systemd-resolved
.............
Generate Wireguard Configuration files
Since I am using Proton VPN, I will ofcourse use it to generate the configuration file. You can do it with any VPN service you are using. Log in to your Proton VPN account and open the Downloads menu from the left sidebar.
You should be at the following page.
Give a name to your profile, select GNU/Linux as the platform, and select the revelant VPN options. Once you are finished, click the Create button to generate the conf
file and download it to your system.
Copy the wireguard configuration file to the /etc/wireguard
directory.
~ sudo cp ~/Downloads/navjotSW1.conf /etc/wireguard
Start Wireguard
Start the Wireguard VPN. The configuration name should match the file name without the extension. In our example, we named our configuration file as navjotSW1.conf
. Therefore, we will use navjotSW1
as the profile name for the Wireguard client.
~ sudo wg-quick up navjotSW1
Output:
[#] ip link add dev navjotSW1 type wireguard
[#] wg setconf navjotSW1 /dev/fd/63
[#] ip -4 address add 10.2.0.2/32 dev navjotSW1
[#] ip link set mtu 1420 up dev navjotSW1
[#] resolvconf -a navjotSW1 -m 0 -x
[#] wg set navjotSW1 fwmark 51820
[#] ip -6 rule add not fwmark 51820 table 51820
[#] ip -6 rule add table main suppress_prefixlength 0
[#] ip -6 route add ::/0 dev navjotSW1 table 51820
[#] nft -f /dev/fd/63
[#] ip -4 rule add not fwmark 51820 table 51820
[#] ip -4 rule add table main suppress_prefixlength 0
[#] ip -4 route add 0.0.0.0/0 dev navjotSW1 table 51820
[#] sysctl -q net.ipv4.conf.all.src_valid_mark=1
[#] nft -f /dev/fd/63
To switch off the VPN, use the following command.
~ sudo wg-quick down navjotSW1
Conclusion
You learned how to install and use Wireguard VPN on Manjaro Linux. It saves you the hassle of trying to locate and install the native clients which might not be available. Check the official Wireguard website to find out more.