コマンドラインでVPNサーバーに接続する

何かの気の迷いからフリーのVPNサーバーに接続したくなるときがある。 そんなとき(Linuxなら)NetworkManagerのアプレットをポチポチして、設定・接続してもよいのだが、 今回はさらに気が迷ったのでコマンドラインで接続してみた。 今回は某国立大学のVPN実験サービスを使ったが、他のサービスでも接続可能だと思う。

環境

  • Ubuntu 16.10
  • NetworkManager 1.2.6-0ubuntu1.1

ovpnファイルをダウンロード

ポチポチしてダウンロードしてもよし、wgetで取ってきてもよし。

NetworkManagerに接続設定を追加

ovpnディレクトリに入った複数のovpnファイルをインポートして、NetworkManagerに接続設定を追加する。
(シェルはfish shell)

for file in (ls ovpn)  
  nmcli con import type openvpn file "ovpn/$file"  
end

追加した接続情報を確認する

nmcli con show 

VPNサーバーに接続する

$selected_uuid変数に納められたUUIDのサーバーに接続する。

nmcli con up uuid $selected_uuid

接続を切断する

$active_uuid変数に納められたUUIDのサーバーとの接続を切断する。

nmcli con down uuid $active_uuid

   
Pythonから接続したい場合はsubprocessを使えばよいでしょう。