How to test and verify the speeds of your VPN

Posted on Oct 30, 2018 by Jayson Q.
VPN Speed Test

We often hear complaints about throughput (the technical term for download and upload speeds) and our Customer Support team will go through extensive testing, including traceroutes, MTRs, comparative testing and several other steps.

Since the repeal of the Net Neutrality legislation, we’ve seen some of the biggest ISPs deliberately traffic shape VPN connections in order to slow down throughout speeds. But what if there was a way to test the capability of a VPN traffic, outside of your network in order to help you identify where the issue lies. Is your ISP throttling your VPN traffic? Is there high contention on the VPN servers?

There is an open source project that was released a few years ago called VPNSpeedTest, released by an unknown author, which tested the throughput of a range of VPN providers and then not only displayed the information on a website, but also tweeted the results. Unfortunately the project stopped in May 2017, much to my own personal disappointment.

As the project was open source, it means it can be forked allowing for additional development and growth, the keystone of Free and Open Source Software (FOSS). The other bonus of FOSS is that anyone is free to use it (within the confines of the license, in this case GNU General Public License v3.0.

So how does a person run speed tests to verify their VPN speeds? Very easily by following these instructions:

1. Create a Vultr account. Tests are run on Vultr VPS (Virtual Private Server) infrastructure. Each Vultr server can download at speeds much faster than most consumer internet connections. Servers cost less than $0.01 an hour and can be created in an instant and then destroyed when they’re no longer needed. Additionally Vultr VPS servers are offered in a range of locations meaning that you can chose the server location lcosest to your actual location.

2. After logging and funding your Vultr account. You will be able to create a VPS by clicking the large + symbol in the top right.

3. Server Location: Choose the region closest to your actual location for the most reflective results. Not every country is currently available from Vultr however they occasionally expand regions.

4. Server Type: Choose Debian 9 x64 as your Server Type.

5. Server Size: Select cheapest (non-IPv6) as the Server Size.

6. Additional Features: No additional features are required.

7. Startup Script: Click ‘Add New’ and enter the following, then save:

#!/bin/sh

export DEBIAN_FRONTEND=noninteractive
apt-get -y install unzip

#replace this with a git clone
cd /tmp/
wget -O vpnspeedtest.zip https://github.com/IaisonQ/speedtests-scripts/archive/master.zip
unzip -o vpnspeedtest.zip
cp -R speedtests-scripts-master/* ~

#setup working folders
cd ~
mkdir -p torrents
mkdir -p logs
mkdir -p vpn_auth

#setup environment
chmod 700 scripts/*
./scripts/vultr-debian-setup.sh

#update the path to use the new curl we just built from source
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
export PATH

python vpnspeedtest.py --help

8. SSH Keys: No SSH Keys are required.

9. Server Hostname & Label: You can leave Server Hostname & Label blank.

10. Click ‘Deploy Now’.

11. You will need to connect to the VPS you just created when the server has finished being built. You can check this by connecting via SSH to the server. The Vultr panel contain your username and password. You can check to see if the startup script has finished by typing:

tail -n 40 -f /tmp/firstboot.log

12. When the script has finished, it will display the –help file. You can get back to the prompt by pressing Ctrl+C.

13. To run the speedtest, you need to enter the following password whilst replacing the username and password with your own account credentials.

python vpnspeedtest.py --vpn=privateinternetaccess --auth-username=p1234567 --auth-password=password

Please note: This is a current and ongoing project and additional features will be added to allow for comparative speed tests and more regions.