🐍

PythonでVPNGateのクライアントソフトを作ってみた

2021/09/30に公開

おはこんばんにちわ

VPNGate使ってますか?
私はよくお世話になっています

ただね。
UIがね。。
使いづらいのよね。。。

https://www.vpngate.net/ja/

ここから自分好みのサーバを探して。
設定ファイルダウンロードして。。
繋げてみたらなんかつながらないから最初からやり直して。。。

ってなって面倒なことこの上ないです

ということで以前こんなものを作ったりしました

https://zenn.dev/tantan_tanuki/articles/eed25ab84b977e

国内サーバに絞って早そうなやつにランダムでつないだコンテナをProxyにしてしまうという方法です

でも直接厳選してサーバを選びたい時もやっぱり結構あったので設定ファイルを簡易にダウンロード出来るクライアントソフトを作りました

https://github.com/tantan-tanuki/vpngate-clietn

こんな感じのUIです

Imgur

基本的にPingが遅いのとそもそもの回線速度が遅いものをフィルタで省けるようにすれば自分の要望に合ったサーバだけに絞れることはなんとなく分かってたのでフィルタを実装しました

しかしUSのPing値やたら早いんだけど実際にPing打ってみたら遅かったりするのでこの値どこで計測した値を出してんだろ。。。

あと繋げてみたらサーバ死んでたりもするので3秒以内にコネクション貼れないサーバは除外するようにもしてます

ちなみに初期表示のフィルタのデフォルト値を10Mbps以上、Ping値5ms以下にしているのですが起動直後はその条件だと10件前後しか出てないと思います
サーバ情報自体は100件取得しているので検索条件を好きに変更していい感じのサーバを見つけて下さい

ダブルクリックするとOpenVPNの接続設定ファイルが保存できるようにしているので

$ sudo openvpn ダウンロードしたファイル

ってやれば繋がります

とりあえずgithubから取得してVPN接続するまではこんな感じです

https://youtu.be/FNi7rhC_bGM

私はPATHの通った場所にこんな感じのshellを作ってそれ経由で動かしてます
python初心者なためスマートな方法がわかりませんでしたがこういう時って何かいい方法あるんでしょうか。。。

#!/usr/bin/env bash

cd /tmp/vpngate-clietn/
poetry run python vpngate_client/main.py

とりあえず自分はこれで大分使いやすくなったので他に同じようなツールを探してる人用に置いときますね

それでは良いVPNライフを〜

しゃみしゃっきり〜

P.S.

LinuxのGUIだとよく使われるイメージがあったので初めてPython使ってみました

一応自分が欲しい機能を実装したものは出来たけど何も基礎がない状態でググりながら作ったので多分ファイル構成とかソースとか無茶苦茶。。。

誰か得意な人が赤ペン先生してくれないかなぁ。。。

Discussion