Install ExpressVPN on Arch-based systems
Published 31st December 2019 at 02:18am UTC (Last Updated 22nd March 2020 at 09:25pm UTC)
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
git clone https://aur.archlinux.org/expressvpn.git
Step #5 - Install the package
Install the AUR package with the following command:
That might take a while but hopefully no longer than a few minutes. Once it's done, check that it works:
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.
- Log into ExpressVPN at https://www.expressvpn.com/sign-in
- Copy the activation key on the subscriptions page
- In the terminal, run:
- 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.
(Oh and if I don't post again before then - Happy New Year!)