50以上のGitHubリポから毎15分自動更新!ロシア・CIS向けVPNコンフィグ自動収集&地域フィルタリングPythonツール
50以上のGitHubリポから毎15分自動更新!ロシア・CIS向けVPNコンフィグ自動収集&地域フィルタリングPythonツール
ひとことでいうと
このツールは、GitHub上の50以上のリポジトリやTelegramチャンネルからVPN接続に使う設定ファイル(コンフィグ)を全自動で集めて整理するPython製のプログラムです。収集したデータをロシア・CIS(ロシア連邦とその周辺国)向けに地域フィルタリングし、重複を取り除いて常に最新の状態に保ちます。GitHub Actionsという自動化の仕組みで15分ごとに動き続けるため、人が手を動かす必要はありません。ネットワーク研究者や自作サーバーを運営する開発者など、大量のコンフィグを効率よく扱いたい方に向いています。
こんな人におすすめ
-
プロキシプロトコルを実際のデータで学びたい研究者・学習者 — VLESS や VMess といった現代的な通信プロトコルの仕様を、本物のコンフィグ文字列を見ながら理解したい方に最適です。地域フィルタリングや重複排除のしくみも、コードを読むことで具体的に学べます。
-
自前のサブスクリプションサーバーを運営したい開発者 — 複数の公開ソースを定期的に巡回してコンフィグをまとめ、クライアントアプリに配信するパイプラインを自分で作りたい方に向いています。GitHub Actions を使った自動化ワークフローの実例としても参考になります。
-
Python によるデータ収集・整理のサンプルコードを探しているエンジニア — 定期スクレイピング → データ変換 → 自動コミットという一連の流れを、実際に動く実装例として読むことができます。
stats.jsonによる統計収集や地域別分類のロジックも参考になります。
インストール・使い方
Python 3.8 以上と Git(ソースコードを管理・取得するためのツール)が必要です。以下の手順を順番に実行してください。コマンドはコピー&ペーストで使えます。
Step 1: リポジトリをダウンロードする
git clone https://github.com/kort0881/vpn-vless-configs-russia.git
cd vpn-vless-configs-russia
git clone は、GitHub 上のソースコード一式をパソコンにまるごとコピーするコマンドです。cd でそのフォルダに移動します。
Step 2: 必要なライブラリをインストールする
pip install -r requirements.txt
pip は Python の部品(ライブラリ)を追加するためのツールです。requirements.txt に書かれたすべての依存ライブラリが一括でインストールされます。root ユーザーで実行する場合は venv(仮想環境)の利用が推奨されますが、動作には問題ありません。
Step 3: ツールを実行する
# 全工程(収集 → フィルタリング → 統計更新)をまとめて実行
python main.py
# コンフィグ収集のみ(50以上の GitHub リポ・Telegram から取得)
python mirror.py
# ロシア・CIS 向けジオフィルタリングのみ実行
python filter_ru_sni.py
main.py を実行すると収集・フィルタリング・統計更新がひとまとめに動きます。各スクリプトを個別に実行して、工程を分けることも可能です。実行後は logs/ フォルダにタイムスタンプ付きのログファイルが生成されます(例: vpn-checker-2026-06-14_02-30-36.log)。
動かしてみた
Python 3.12 の Docker 環境で pip install -r requirements.txt を実行したところ、依存パッケージのインストールが正常に完了しました。ファイル構造を確認すると、data/stats.json・data/config_sources.json・data/mermeroo_sources.txt といったデータファイルに加え、2026年5月31日から6月14日にかけての30本以上のログファイルが確認できました。
./data/stats.json
./data/config_sources.json
./data/mermeroo_sources.txt
./requirements.txt
./logs/vpn-checker-2026-06-14_02-30-36.log
./logs/vpn-checker-2026-06-13_21-02-06.log
./logs/vpn-checker-2026-06-13_17-09-54.log
./logs/vpn-checker-2026-06-13_13-22-07.log
...(合計 30 件以上)
30 本以上のログファイルが蓄積されていることは、このツールが継続的に稼働してきた証拠です。GitHub Actions による 15 分ごとの自動実行が正常に機能していることが確認できました。Python 環境を用意すれば、pip install から実行まで迷わず進められるシンプルな構成です。
デモについて
このツールの主な機能は、GitHub API や Telegram といった外部サービスへの定期的なネットワークアクセスを前提としています。そのため、ブラウザだけで動くインタラクティブなデモとして公開するのは構造上難しい設計です。動作確認はローカル環境での python main.py 実行、または後述の実践のコツを参考にコマンドを試してみてください。GitHub Actions のワークフローファイル(.github/workflows/ 以下)を見ると、実際のスケジュール設定のしかたも確認できます。
実践のコツ:はじめの一歩
クローン直後からネットワークなしで確認できることもあります。以下のコマンドを順に試してみてください。
# 統計情報を見やすく整形して表示
cat data/stats.json | python -m json.tool
# 最新ログの末尾をリアルタイムで見る
tail -f logs/vpn-checker-*.log
# 収集済みの VLESS コンフィグ先頭 10 件を確認
head -10 githubmirror/clean/vless.txt
# ロシア・CIS 向けフィルタ済みコンフィグの件数を確認
cat githubmirror/ru-sni/vless_ru.txt | wc -l
- 自前リポジトリで自動化したい場合は、
.github/workflows/以下のワークフローファイルを参考にcron: '*/15 * * * *'(15分間隔)のスケジュールトリガーを設定します。 - 手動でテスト実行したい場合は、
workflow_dispatchトリガーが用意されているため、GitHub の画面から好きなタイミングで実行できます。 - ログを継続的に監視したい場合は、
tail -fコマンドを使うとリアルタイムで出力を確認できます。 - 最初は
main.pyだけ動かすのが一番手軽です。収集・フィルタ・統計更新がまとめて実行されます。
用語とポイント解説
VLESS(ブイレス)
VPN 接続に使うプロトコル(通信ルール)のひとつです。かんたんに言うと「どういう手順で通信を暗号化するか」を定めた仕様で、vless://... という形式の文字列がコンフィグとして使われます。軽量で高速なのが特徴です。
VMess(ブイメス)
VLESS と同様のプロキシプロトコルで、V2Ray プロジェクトで生まれました。かんたんに言うと「独自の暗号化方式をもつ通信ルール」です。vmess://... という Base64 エンコードされた文字列がコンフィグとして流通しています。
Trojan(トロイ) HTTPS の通信に見せかけてデータをやり取りするプロキシプロトコルです。かんたんに言うと「普通のウェブ通信と見分けがつきにくい通信ルール」で、ファイアウォールを通過しやすい設計になっています。
Shadowsocks(シャドウソックス) 広く使われているオープンソースのプロキシプロトコルです。かんたんに言うと「シンプルで軽快な暗号化トンネル」で、多くのクライアントアプリが対応しています。このツールが収集する4プロトコルのひとつです。
GitHub Actions(ギットハブ アクション) GitHub が提供する自動化の仕組みです。かんたんに言うと「決まった時刻や条件でプログラムを自動実行するスケジューラー」で、このツールでは 15 分ごとにコンフィグ収集が走るよう設定されています。
ジオフィルタリング(地域フィルタリング) 収集したコンフィグを地域ごとに振り分ける処理です。かんたんに言うと「どの国・地域向けの設定かを判定して選り分けること」で、このツールはロシア・CIS 向けのコンフィグを優先的に抽出します。SNI ドメインや GeoIP データベースをもとに判定します。
SNI(Server Name Indication、エスエヌアイ) TLS 暗号化通信の際に「どのサーバーに接続するか」をあらかじめ送る情報です。かんたんに言うと「宛先ドメインを通信の冒頭で宣言する仕組み」で、このツールはその SNI ドメインをもとに地域フィルタリングを行います。
MD5 による重複排除 収集したコンフィグが同じ内容かどうかを判定する方法です。かんたんに言うと「文字列をハッシュ値(短い指紋)に変換して、同じ指紋なら捨てる仕組み」で、複数のソースから同一のコンフィグが集まっても重複を取り除けます。
サブスクリプション URL VPN クライアントアプリが定期的に参照するコンフィグの配信 URL です。かんたんに言うと「クライアントアプリが自動で設定を取りに行く先のアドレス」で、このツールで収集したコンフィグをサーバーで配信すれば、アプリが常に最新の設定を使えます。
cron(クーロン)
Unix 系 OS のスケジュール実行機能です。かんたんに言うと「曜日・時刻・間隔を指定してコマンドを自動実行するタイマー」で、GitHub Actions でも cron: '*/15 * * * *' のように記述して使います。
活用例
-
Hiddify・V2RayN・V2RayNG 向けのサブスクリプションバックエンド構築 — 定期収集したコンフィグを自前サーバーで配信し、クライアントアプリのサブスクリプション URL に設定することで、常に最新のコンフィグプールを自動参照できます。Clash Meta / Mihomo 向けの YAML 形式への変換処理と組み合わせることも可能です。
-
プロキシプロトコル研究用データセットの収集 — VLESS・VMess・Trojan などのコンフィグ文字列フォーマットを解析・統計分析するための大規模データセットとして活用できます。SNI ドメインの地域分布調査や、プロトコルごとの出現比率の計測などにも応用できます。
-
GitHub Actions を使ったデータパイプラインの学習サンプル — 定期スクレイピング → データ変換 → 自動コミット&プッシュという CI/CD パイプラインの典型的なパターンを実際の動くコードで学べます。RSS アグリゲーターや公開 API のスナップショット取得など、同様の構成を別の用途に転用することも可能です。
-
オープンソースコンフィグの可視化・集計ツールのベース —
stats.jsonに収集統計が記録される構造を活かし、グラフ表示やダッシュボードへの組み込みのベースとして使えます。地域別・プロトコル別の件数推移を時系列で追うような分析ツールの基盤にもなります。 -
ネットワーク授業・勉強会でのハンズオン教材 — 実際に動くデータパイプラインをサンプルとして使うことで、GitHub Actions の cron スケジュール・Python の
requestsライブラリ・JSON 形式のデータ管理などを一度に体験できます。授業やワークショップの教材として読みやすいコード量です。 -
個人の情報収集パイプラインへの応用 — VPN コンフィグに限らず、「複数の公開ソースを定期巡回 → 整形 → リポジトリに自動保存」というパターン自体を、ニュース記事・価格情報・公開データセットの定期取得などに転用できます。スクリプト単体のロジックも読みやすくカスタマイズしやすい設計です。
まとめ
vpn-vless-configs-russia は、GitHub と Telegram に散在する公開 VPN コンフィグを自動収集・検証・地域フィルタリングし、常に最新の状態に保つ Python 製アグリゲーターです。mirror.py(収集)・filter_ru_sni.py(地域フィルタ)・main.py(統合オーケストレーター)という明快な役割分担と、GitHub Actions による完全自動化が大きな特徴です。VLESS・VMess・Trojan・Shadowsocks の 4 プロトコルに対応し、MD5 による重複排除と GeoIP による地域フィルタリングを組み合わせた実用的なデータパイプラインの実装例としても参考になります。なお、ご利用の際はお住まいの国や利用目的に応じた法令を必ず確認してください。
ぜひ自前のサブスクリプションサーバー構築や GitHub Actions を使ったデータパイプラインの学習などに活用してみてはいかがでしょうか。