Install ExpressVPN on Arch-based systems

Published 31st December 2019 at 02:18am (Last Updated 22nd March 2020 at 09:25pm)

Hi again. This will be a short-to-medium length post as I really just wanna save people the annoyance that I had to go through when I installed this earlier.


For those who don't know ExpressVPN is a privacy tool used to hide a user's IP address and encrypt network traffic. It's not the best VPN around but it does the job when you need it to. Installing ExpressVPN on Debian-based systems is really straightforward as they have an official Ubuntu package and tons of documentation.


Installing on Arch-based systems on the other hand is a little tricky.



Luckily, ExpressVPN have released an official Arch package....


 

Step #1 - Do NOT download the official Arch package!


When you log into the ExpressVPN website, you might notice something like this:




Don't even bother downloading it. It's basically a debtap version of the Ubuntu package. This would be fine were it not for the fact that the debian package assumes an expressvpn service would be run as an init.d service. As this is a completely different operating system, the expressvpn service will need to be run in systemd (systemctl). If you don't want to see this error...


It seems the expressvpn daemon is not running. Please run "sudo service expressvpn restart" to start it.


...keep reading this post!



Step #2 - Install prerequisites


Make sure these are installed:


sudo pacman -S --needed base-devel git


You'll also need gpg installed but you really ought to have that installed on your machine already. Maybe run an update just in case:


sudo pacman -Syyu


 

Step #3 - Download the PGP key


Download the ExpressVPN PGP key with this command:


gpg --recv-keys 0xAFF2A1415F6A3A38


The Ubuntu instructions actually list the key server. I couldn't get the full command from their docs to work personally and so had to drop the --keyserver flag. If you are able to download this with the keyserver then, like, congratulations, I guess?


 

Step #4 - Clone the AUR package


There's actually an AUR package for ExpressVPN co-maintained by someone called "WorMzy" (which just makes me think of this). You can download it with git:


git clone https://aur.archlinux.org/expressvpn.git


 

Step #5 - Install the package


Install the AUR package with the following command:


makepkg -si


That might take a while but hopefully no longer than a few minutes. Once it's done, check that it works:


expressvpn




Remember to start the expressvpn systemd service that you've also installed:


sudo systemctl start expressvpn


 

Step #6 - Configure ExpressVPN


Before you actually connect to ExpressVPN, you'll want to activate your account, essentially logging into a session on your machine.


  1. Log into ExpressVPN at https://www.expressvpn.com/sign-in
  2. Copy the activation key on the subscriptions page
  3. In the terminal, run: 
expressvpn activate
  1.  Input your activation key


One thing I've noticed is that recent versions of ExpressVPN now include a killswitch by default. This means that if you ever disconnect from the VPN, you will lose internet access. This can be incredibly annoying if you, like me, switch locations often as you won't necessarily be able to reconnect to the VPN without an internet connection.To switch off this setting, run the following command:


expressvpn preferences set network_lock off


You can list the different locations in ExpressVPN with:


expressvpn list all


To connect to your preferred location, run the connect subcommand:


expressvpn connect <location_alias>


And that's pretty much it.



Enjoy!



(Oh and if I don't post again before then - Happy New Year!)


Post a comment

Posted by Anonymous on 26th May 2020 at 15:23:29

Thanks so much for this - really helped out.

Posted by Jess on 29th May 2020 at 00:19:47

You're welcome. Glad it helped!