LinuxでVPN Gateを使う最も簡単な方法

ブログ

こんにちは、山田ハヤオです。VPN Gateって知っていますか?

VPN Gateは筑波大学が開発をしている、誰でも使えるVPNです。

某大陸国のけしからんファイアウォールを回避するためのものでもあります。

小学生〜中学2年の頃は余ったPCでVPN Gateのサーバを建てていました。

今はもうサーバはやめてしまったのですが、時々VPNを使いたくなるときが有ります。

Windowsには公式で簡単に接続できる便利なGUIがありますが、Linuxにはありません。

今回はLinuxでVPN Gateを簡単に使う方法を紹介します。

スポンサーリンク

VPNとVPN Gateについて

VPNはVirtual Private Networkの略称です。

簡単に表せば「他のコンピュータを経由してネットワークに接続する」ものです。

プロキシと似ているものですが、実際には全く異なるものです。

プロキシは通信の一部を経由するだけですが、VPNはクライアントとVPNサーバの間に「トンネル」を構築し、すべての通信を経由させます。なのでプロキシよりもセキュリティは上です。

しかし、VPNを使うにはVPN用のサーバが必要です。

そこで筑波大学を中心に開発されたのがVPN Gateです。
VPN Gateは世界中のボランティアでサーバを公開しあい、誰でも使えるように使しよう、というものです。

ボランティアが個人で公開するためサーバの安定性には問題がある場合も多いですが、無料で使えるというのが一番のメリットです。

VPN Gateの最も簡単な使い方

LinuxでVPN Gateを使う場合、VPN Gateの公式サイトから接続したいサーバを見つけ、それを手動でNetwork Managerに設定します。

しかし、毎回VPN Gateの一覧からサーバを探し、アドレスを手動でセットアップするのは面倒です。

また、サーバによってはつながらない場合もあるので、何度もこの作業をすることにもなりかねません。

そこで使うのがハヤオの開発した「nm-vpngate」です。

依存関係のパッケージをインストールする

Network Managerや、VPNのプラグインをインストールします。

今回はArch Linuxを例にしますが、yayコマンドを置き換えれば他のOSでも使えます。

$ yay -S networkmanager-openvpn networkmanager-strongswan zenity

Ubunruの場合はsudo apt-get install git curlを実行します。

その後、本体をダウンロードしてインストールします。

$ sudo curl -sL -o /usr/local/bin/nm-vpngate https://raw.githubusercontent.com/Hayao0819/nm-vpngate/master/nm-vpngate
$ sudo chmod 755 /usr/local/bin/nm-vpngate
$ sudo curl -sL -o /etc/nm-vpngate.conf https://raw.githubusercontent.com/Hayao0819/nm-vpngate/master/nm-vpngate.conf
$ cp /etc/nm-vpngate.conf ~/.nm-vpngate.conf

これでインストールがおわりました。

使ってみる

とりあえず使ってみましょう。ターミナルからnm-vpngateコマンドを実行します。

$ nm-vpngate -g

すると下のようなウィンドウが出てくるはずです。

この中から好きなサーバを選択します。上の部分をクリックして項目ごとにソートできます。

この中から好きなサーバを見つけてダブルクリックします。

すると、Network Managerへの登録や接続を自動で行ってくれます。

CLIモード

GUIだけではなくCLIモードもあります。以下を実行するとCLIモードになります。

nm-vpngate

GUIと同じように好きなサーバを見つけ、番号を入力します。

自動接続する

サーバリストから良さげなものを自動で選んでくれる機能もあります。

nm-vpngate -a

AUTO MODEになり、スコアが最も高いサーバに自動で接続されます。

設定

設定を変更するには、/etc/nm-vpngate.conf~/.nm-vpngate.confを編集します。

全ての設定の詳細は設定ファイルに書かれているのでそちらを参照してください。

ここでは、サーバリストのフィルターや、NetworkManagerに設定を追加する際の命名規則を設定できます。

また、サーバリストのキャッシュを保存するパスや、設定を保存するディレクトリも変更できます。

サーバリストのキャッシュ先を変更

CACHE_PATHを変更します

CACHE_PATH="/tmp/${UID}-nm-vpngate"

# ↓

CACHE_PATH="/home/user/.server-cache"

サーバリストを正規表現でフィルターする

Target<フィルターする対象>=<正規表現>の形で指定することで設定します。

以下の設定を同時に書くと「日本かアメリカのPingが1~9のサーバ」という条件になります。

# Ping値が1〜9のサーバ
TargetPing="^[1-9]$"

# 日本かアメリカのサーバのみ
TargetCountryShort="JP|US"

対象はCSV_VARSの値を使用できます。

キャッシュを無効化する

# キャッシュを有効化
USE_CACHE=true

# キャシュを無効化
USE_CACHE=false

ソースコード

オープンソースです。シンプルな300行ほどのシェルスクリプトなので誰でも読めると思います。

GitHub - Hayao0819/nm-vpngate: A script that makes it easy to connect Network Manager to a VPN Gate
A script that makes it easy to connect Network Manager to a VPN Gate - GitHub - Hayao0819/nm-vpngate: A script that makes it easy to connect Network Manager to ...

コメント

タイトルとURLをコピーしました