PythonでVPNGateのクライアントソフトを作ってみた
おはこんばんにちわ
VPNGate使ってますか?
私はよくお世話になっています
ただね。
UIがね。。
使いづらいのよね。。。
ここから自分好みのサーバを探して。
設定ファイルダウンロードして。。
繋げてみたらなんかつながらないから最初からやり直して。。。
ってなって面倒なことこの上ないです
ということで以前こんなものを作ったりしました
国内サーバに絞って早そうなやつにランダムでつないだコンテナをProxyにしてしまうという方法です
でも直接厳選してサーバを選びたい時もやっぱり結構あったので設定ファイルを簡易にダウンロード出来るクライアントソフトを作りました
こんな感じのUIです
基本的にPingが遅いのとそもそもの回線速度が遅いものをフィルタで省けるようにすれば自分の要望に合ったサーバだけに絞れることはなんとなく分かってたのでフィルタを実装しました
しかしUSのPing値やたら早いんだけど実際にPing打ってみたら遅かったりするのでこの値どこで計測した値を出してんだろ。。。
あと繋げてみたらサーバ死んでたりもするので3秒以内にコネクション貼れないサーバは除外するようにもしてます
ちなみに初期表示のフィルタのデフォルト値を10Mbps以上、Ping値5ms以下にしているのですが起動直後はその条件だと10件前後しか出てないと思います
サーバ情報自体は100件取得しているので検索条件を好きに変更していい感じのサーバを見つけて下さい
ダブルクリックするとOpenVPNの接続設定ファイルが保存できるようにしているので
$ sudo openvpn ダウンロードしたファイル
ってやれば繋がります
とりあえずgithubから取得してVPN接続するまではこんな感じです
私は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