大手の4社有料VPNの速度を計測してみた
VPSサーバー(レンタルサーバーみたいなもの)を借りて、大手4社VPN経由でスピードテストを行いました。
この方式だと24時間休みなく計測できます。
ExpressVPN, SurfShark, NordVPN, CyberGhost VPNの4つの最大手VPNでは、Linuxからでも簡単にVPN接続できます。
今回はこれらのVPNについてそれぞれの通信速度を計測してみました。
VPSサーバー上からであればかなりフェアな速度計測ができると思ったからです。
ある時点の計測だけでは、たまたまそのVPNの計測結果が良かったりするかもしれません。
cronを使うことで、10分ごとに何日にもわたって速度を計測できるのでかなり詳細なデータをとることができます。
※cronというのは一定時間ごとにプログラムを実行することができるLinuxのソフトウェア(機能)です
速度計測には、ネット速度の計測サイトで有名なspeedtest.netを利用しました。
このspeedtest.netはLinuxでも利用できるPythonパッケージ(speedtest-cli)を提供しています。
speedtest-cliを使うことによって細かな設定をしつつ、コマンドラインでネット速度を計測することができます。
このコマンドを自作プログラムに組み込むことによって計測します。
各社VPNの速度計測の結果
4時間ごとに平均したグラフ
VPNを仲介しない(VPN無し)で計測した速度は、そのVPSサーバー自体のネットワーク速度のような物です。
自宅からネットをする場合でも、時間帯によって混んでたり空いていたりすると思います。
折角なので10分ごとの生データもご紹介
10分ごとの生データは意外とばらつきが大きいです。
そもそもVPN無しの速度自体のばらつきが大きいですね。
ExpressVPNで特に顕著ですが、ExpressVPNを仲介するとそのばらつきが抑えられています。
何だか面白い結果ですね。
次に具体的な設定方法について解説します。
マニアックな話なので、興味がある方以外は読む必要はないと思います。
VPSでVPNを使用する方法は?
設定せずにVPSからVPNに接続すると、通信がVPN経由に変わってしまうため、サーバーからクライアント(自分のPC)への応答(SSH通信)自体が切断されてしまいます。
ですので、設定が必要です。
⇩基本的にはこれでオッケー
⇩NordVPNだけ、LinuxでNordVPNを利用する場合にnordvpnコマンドからSSH通信を許可できる機能があります。
VPS上から各社VPNの速度をそれぞれ測る方法を徹底解説
備忘録的に速度計測の方法をまとめておきます。
ポイントとしては、
- 各VPNのLinux版アプリの利用方法
- speedtest-cliの使い方
- cronの運用方法
が肝になってきます。
10分おきに自動実行するためのcrontabの設定
crontabの中身はこんな感じです。
*/10 * * * * /bin/bash -l /home/ubuntu/vpns_speedtest.sh
crontab -e で上のcrontab設定を書き込み保存します。
10分おきにvpns_speedtest.shを実行します。
/bin/bash -l の -lオプションは環境変数を取得する上で必要です。
cronで実行するシェルスクリプトの作成
vpns_speedtest.shというシェルスクリプトをcronで実行します。
vpns_speedtest.shでは、
- VPN無し(NoVPN)
- SurfShark VPN
- Express VPN
- NordVPN
- CyberGhost VPN
の順で計測しています。
- VPNに接続します。
- speedtestcliで計測し、jsonファイルに結果を出力します。
- VPNを切断します。
この工程を各VPNで行います。
vpns_speedtest.shの中身です。
#! /bin/bash -l
/usr/bin/python3 /home/ubuntu/speedtest.py NoVPN.json
sleep 1
echo "SurfShark"
/usr/bin/surfshark-vpn attack < /etc/resolv.conf
sleep 1
/usr/bin/python3 /home/ubuntu/speedtest.py SurfShark.json
sleep 1
/usr/bin/surfshark-vpn down
sleep 1
echo "ExpressVPN"
/usr/bin/expressvpn connect "Japan"
sleep 1
echo "nameserver 8.8.8.8" > /etc/resolv.conf
sleep 1
/usr/bin/python3 /home/ubuntu/speedtest.py ExpressVPN.json
sleep 1
/usr/bin/expressvpn disconnect
sleep 1
echo "NordVPN"
/usr/bin/nordvpn connect jp
sleep 1
echo "nameserver 8.8.8.8" > /etc/resolv.conf
sleep 1
/usr/bin/python3 /home/ubuntu/speedtest.py NordVPN.json
sleep 1
/usr/bin/nordvpn d
sleep 1
echo "CyberGhost"
sudo /usr/bin/cyberghostvpn --openvpn --traffic --connection TCP --country-code JP --connect
sleep 1
echo "nameserver 8.8.8.8" > /etc/resolv.conf
sleep 1
/usr/bin/python3 /home/ubuntu/speedtest.py CyberGhost.json
sleep 1
sudo /usr/bin/cyberghostvpn --stop
sleep 1
speedtest.pyの中身はこんな感じ
import subprocess
import sys
filename = sys.argv[1]
f = open("/home/ubuntu/"+filename, "a")
command = "/home/ubuntu/.local/bin/speedtest-cli --json"
commandlist = command.split()
output = subprocess.run(commandlist, stdout=subprocess.PIPE)
f.write(output.stdout.decode('utf8'))
f.close()
speedtest.pyはこんな感じで使います。
/usr/bin/python3 /home/ubuntu/speedtest.py ExpressVPN.json
例えばExpressVPNの速度計測結果をExpressVPN.jsonにspeedtestcliの速度計測結果をどんどんため込んでいくとして、ExpressVPN.jsonをspeedtest.pyに食わせます。
そうすると、内部でspeedtestが実行され、その出力がExpressVPN.jsonに書き込まれていく訳です。
今回の結果から見るコスパの最も良いVPNはどれ?
大手海外VPN4社の価格表です。
1ヶ月プラン | 6ヶ月プラン | 1年プラン | 2年プラン | 3年プラン | 返金保証ポリシー | |
ExpressVPN | $12.95 | $9.99 | 3ヶ月無料 付きで実質 $6.67 |
30日間 | ||
SurfShark | $11.95 | $5.99 | $1.99 | 45日間 | ||
Cyber Ghost | ¥1452 | ¥659 | ¥399 | ¥300 | 45日間 | |
NordVPN | $11.95 | $6.99 | $2.99 | 30日間 |
2年プランならSurfSharkがひと月あたり$1.99ドルと激安です。
2年プランは無いですが、3年プランならNordVPN がひと月あたり$2.99ドルと結構安いです。
ただし、1年プランだと4社ともひと月あたり$6〜$7と大体一緒です。
みてきた通り、速度はExpressVPNが最も速いです。
個人的にはExpressVPNをメインに使ってます。
⬇︎⬇︎⬇︎速度以外の様々な観点から大手4社VPNを比較した記事
コメント