国旗付きで一発整理!v2rayフリープロキシを国別ソートするPythonツール「Proxy-sorter」
bash ファイル名.sh を実行してください(中身を一度確認してから実行すると安心です)。
(macOS / Linux 環境が必要) 国旗付きで一発整理!v2rayフリープロキシを国別ソートするPythonツール「Proxy-sorter」
ひとことでいうと
Proxy-sorter(プロキシソーター)は、インターネット上に無料で公開されているv2ray形式のプロキシ(通信を中継するサーバー)の一覧を自動で取得し、各プロキシがどの国のサーバーかを調べて国旗絵文字とともに整理してくれるPythonツールです。vmess・vless・trojan・ss(Shadowsocks)など複数の形式に対応しており、バラバラに散らばったフリープロキシをひとまとめに整理・分類できます。国旗絵文字でどの国のサーバーかひと目でわかるため、大量のリストも素早く見渡せます。プログラムの規模はコンパクトながら、日々更新されるフリープロキシを常に新鮮な状態で管理したい人に向いています。
こんな人におすすめ
1. セキュリティ研究やネットワーク調査をしている人
公開されているプロキシがどの国に多いか、地理的な分布を一覧で確認したい場面に向いています。国コード(JP・US・DEなど)と国旗絵文字で整理されたリストは、統計データとしてもそのまま活用しやすい形です。フリープロキシの実態を数値で把握したい研究・調査用途に特に便利です。
2. 特定の国のサーバーを使いたい個人ユーザー
大量のプロキシリストの中から「日本かシンガポールのサーバーだけほしい」という場面では、手作業での絞り込みは非常に手間がかかります。Proxy-sorterを使えば国別に整理済みのリストが自動で生成されるため、目的のサーバーを探す手間を大幅に減らせます。
3. 自動化・スクリプト好きのエンジニア
GitHub Actions(ギットハブアクションズ、コードの更新などに合わせて自動で処理を走らせる仕組み)などと組み合わせると、定期的にプロキシリストを取得・整理して自動保存するパイプラインが組めます。スケジュール実行でつねに新鮮な国別リストをリポジトリに維持できます。
インストール・使い方
まず「ターミナル」を開いてください。ターミナルとは、パソコンに文字で命令を送る画面のことです。Windowsでは「コマンドプロンプト」や「PowerShell」、Macでは「ターミナル」アプリが該当します。以下のコマンドはすべてコピー&ペーストで実行できます。
Step 1: ソースコードをダウンロードする
git clone https://github.com/Surfboardv2ray/Proxy-sorter.git
cd Proxy-sorter
git clone(ギットクローン)はリポジトリ(ソースコードの置き場)を自分のパソコンにコピーするコマンドです。続くcdコマンドで、ダウンロードしたフォルダの中に移動します。
Step 2: 必要なライブラリをインストールする
pip install -r requirements.txt
pip(ピップ)はPythonのパッケージ管理ツールです。requirements.txtに書かれた必要なライブラリ(HTTP通信用のrequestsやIPジオロケーション用のライブラリなど)を一括でインストールします。このコマンド一本で準備が整います。
Step 3: スクリプトを実行する
python sort.py
スクリプト(プログラムファイル)を実行すると、指定されたフリープロキシ配信元から最新のプロキシリストを取得し、国別に整理した結果をファイルまたは画面に書き出します。初回実行時はインターネット接続が必須です。
ブラウザで試す
ブラウザ(インターネットを見るソフト)上でvmess・vless・trojan・ssなどの形式のプロキシ文字列を貼り付けると、IPジオロケーションによる国別ソートの動作をその場で確認できます。国旗絵文字・国コード・国名が付いた表形式で結果を見られるので、ソフトをインストールする前に動作のイメージをつかむのに便利です。
動かしてみた
スクリプトを実行すると、v2ray形式(Base64でエンコードされたvmess://やvless://などの文字列)のプロキシを解析し、各プロキシのIPアドレスを外部のIPジオロケーションAPIに問い合わせて国情報を取得する処理が走ります。結果には国コード(JP・US・DEなど)と対応する国旗絵文字(🇯🇵・🇺🇸・🇩🇪など)が自動で付加されます。
処理のイメージは次のとおりです。
入力プロキシ: vmess://eyJhZGQiOiI4LjguOC44IiwicG9ydCI6IjQ0MyJ9
解析結果: IP=8.8.8.8, Port=443, Protocol=vmess
GeoIP 照会: Country=US, Flag=🇺🇸
出力行: 🇺🇸 US | vmess://eyJhZGQiOiI4LjguOC44Ii4uLn0=
vmessのBase64デコード、vlessのURIパース(文字列から必要な情報を取り出す処理)、trojanの認証情報抽出など、形式ごとに異なる解析方法にそれぞれ対応しています。生成される国別リストはテキスト形式で保存されるため、後続の処理やv2ray対応クライアントへの登録にそのまま使いやすい形になっています。
はじめの一歩 — すぐ試せる実践のコツ
- 最小構成で始める: Python 3とインターネット接続があれば、
git cloneからStep 3の実行まで数分で動かせます。特別なサーバーの用意やAPIキーの取得が不要なケースがほとんどで、導入のハードルは低めです。 - 定期実行を設定する: LinuxやMacであれば
crontab -e(クーロンタブ、定期実行のスケジュールを管理する仕組み)に1行追記するだけで毎時自動実行できます。0 * * * * cd /path/to/Proxy-sorter && python sort.pyのように書くと毎時0分に動きます。 - GitHub Actionsと組み合わせる: リポジトリに
.github/workflows/フォルダを作成し、scheduleトリガーを設定すると、整理済みリストを自動コミット・リリースする完全自動パイプラインが組めます。 - 出力をクライアントに登録する: 生成されたリストをv2rayN(ブイツーレイエヌ)やClash(クラッシュ)などのv2ray対応クライアントのサブスクリプション機能に登録すると、国別に管理されたプロキシを手軽に切り替えながら使えます。
- 国別に絞り込む: 出力ファイルに
grep "🇯🇵"などを組み合わせるだけで、特定の国のノードだけ抜き出す簡易フィルターを追加できます。
用語とポイント解説
プロキシ(フリープロキシ)
プロキシとは、自分のパソコンとインターネットの間に置く「中継サーバー」のことです。かんたんに言うと、手紙を直接送る代わりに「仲介業者」を通して送るようなイメージです。「フリープロキシ」は無料で公開されているものを指します。品質や安定性はさまざまで、研究・調査・学習用途に使われることが多いです。
v2ray(ブイツーレイ)
オープンソース(誰でも中身を見られる形式)のプロキシフレームワーク(通信を中継する仕組みのまとまり)です。かんたんに言うと、「複数の中継方法をひとつのソフトで扱えるプラットフォーム」のようなものです。vmess・vless・trojanなど複数のプロトコル(通信のルール)に対応しており、Proxy-sorterはこの形式のプロキシを扱います。
vmess / vless
v2rayが定義するプロキシプロトコル(通信ルール)の名前です。かんたんに言うと、「v2rayが使う特定の通信方式のバリエーション」です。vmessは従来から使われている暗号化形式、vlessはより軽量な後継形式で、どちらも通信内容を暗号化して中継します。
trojan(トロイアン)
HTTPS(ウェブサイトの暗号化通信)に見せかけて通信を隠蔽するプロキシプロトコルです。かんたんに言うと、「普通のウェブ通信のふりをして実際はプロキシとして動く仕組み」です。外から見るとただのHTTPS通信に見えるという特性を持ちます。
Shadowsocks(ss・シャドウソックス)
シンプルな暗号化プロキシプロトコルで、ss://から始まる短い文字列一本で設定を共有できます。かんたんに言うと、「設定が短い文字列で済む、軽量なプロキシの種類」です。Proxy-sorterが対応する4つのプロトコルのひとつです。
GeoIP(ジオIP)
IPアドレスから地理情報(国・地域)を調べる技術・データベースの総称です。かんたんに言うと、「電話番号から市外局番で地域を推測するのと同じように、IPアドレスから国を割り出す仕組み」です。Proxy-sorterはこれを使って各プロキシの国情報を自動で取得します。
Base64(ベース64)
バイナリデータ(画像や設定ファイルなど)をテキスト文字列として表現するエンコード方式です。かんたんに言うと、「コンピューターが扱うデータを、メールやURLで送れる文字だけの形に変換する方法」です。vmessのプロキシ設定は多くの場合Base64でエンコードされて共有されており、Proxy-sorterはこれをデコード(元に戻す)して解析します。
国旗絵文字(Regional Indicator Symbols)
Unicodeという文字コードの規格で定義されている国旗の絵文字です。かんたんに言うと、「JとPという2種類の特殊記号を並べると🇯🇵に見えるという仕組み」です。Proxy-sorterはソート結果の各行に自動でこの国旗絵文字を付加するため、どの国のサーバーかひと目でわかります。
活用例
- セキュリティ研究での分布調査: 取得した国コードをPythonの
collections.Counterで集計し、matplotlibやplotlyでノードの地理的分布をグラフ化する。公開プロキシの実態を数値で把握したい研究・分析用途に活用できます。 - 特定国のリストを自動生成するワークフロー: 出力結果を国コードでフィルタリングして「アジア圏のノードだけ」「日本とシンガポールのみ」といった用途別リストを定期自動生成するパイプラインに組み込む。
- 自動更新パイプラインの構築: GitHub Actionsの
scheduleトリガーを使って毎時実行し、整理済みプロキシリストをリポジトリに自動コミット・リリースする。リストを常に最新の状態で維持できます。 - v2rayクライアントへのサブスクリプション登録: 出力リストをv2rayNやClashのサブスクリプション機能に登録し、国別に管理されたプロキシを手軽に切り替えながら利用する。
- Pythonスクリプトの学習素材として: 文字列解析・外部APIリクエスト・ファイル書き込みといった基本処理がコンパクトにまとまっているため、Pythonスクリプトの実例を読み解く学習の題材にできます。
- 他の形式や条件への応用: コードの解析ロジックを参考に、ポート番号・プロトコル種別など別の項目でのソートや独自形式への対応を加えるカスタマイズの出発点として活用する。
Proxy-sorterはシンプルな構成でありながら、フリープロキシの整理・分類・自動化といった実務的なニーズに幅広く応えてくれるツールです。ぜひ国別分布の研究調査や、v2rayクライアントへのサブスクリプション登録、GitHub Actionsを使った自動更新パイプラインの構築などに活用してみてはいかがでしょうか。