WhaleProxyを コードで制御。
ローカルの制御プレーン:ポート8091のREST、名前付きパイプ上のJSON-RPC、そしてCLI。いずれもGUIの内側にある同じコマンドセットです。
概要
APIは、ルーティングエンジンへのマシン間インターフェースです。デフォルトのベースURLはhttp://127.0.0.1:8091/v1で、入出力はJSONです。Settingsタブで有効化できます。
デフォルトではループバック(127.0.0.1)のみで待ち受けます。リモート制御のためにネットワークIPへバインドすることもできますが、その場合はTLSとファイアウォールの背後に配置してください。エンジンは昇格権限で動作し、マシンのすべてのネットワークトラフィックを制御するためです。
認証
すべてのリクエスト(/v1/healthzを除く)には、ヘッダーで送信するAPIキーが必要です。キーはCSPRNGで生成され、Settings → Generateで作成・更新できます。キーの比較は一定時間で行われます。
X-API-Key: <YOUR_API_KEY>
# hoặc
Authorization: Bearer <YOUR_API_KEY>
再ルーティング — 実行中のプロセスのプロキシを変更
pids、実行ファイル名、パス、識別ハッシュ、ニックネームでプロセスを選択し、新しいプロキシに向けます。/previewを使えば、適用せずにドライランを実行できます。
{ "match": { "nickname": "App 3" }, "proxy": "jp-2" }
→ 200 { "rerouted": 1, "flows_moved": 12 }
プロキシ
上流プール(socks5 / http / localnet)を管理します。テストはレイテンシと実際の出口IPを返します。
ルール
永続的で先勝ちのルールを、現在および今後のプロセスに適用します。
プロセス
追跡中のプロセスを調べたり、ニックネームを付けたり、終了させたりできます。
統計 & イベント
プロセスごと・プロキシごとにバイト数/フロー/接続数を読み取り、起動/終了イベントをロングポーリングできます。
コマンドライン
CLIは同じコマンドをラップします。--jsonを付けると機械可読な出力が得られます。エンジンの稼働中に実行できます。
$ whaleproxy proxies list --json
$ whaleproxy reroute --name chrome.exe --to jp-2
$ whaleproxy pin --nickname "App 3" --proxy us-1
$ whaleproxy stats --json
サンプル — Pythonから呼び出す
APIはプレーンなHTTPで、どの言語からでも呼び出せます。以下の例では、1つのプロセスを別のプロキシへ移動します。
import requests
API = "http://127.0.0.1:8091/v1"
H = { "X-API-Key": "YOUR_KEY" }
# Đổi proxy của "App 3" sang jp-2, ngay khi đang chạy
r = requests.post(f"{API}/reroute", headers=H, json={
"match": { "nickname": "App 3" },
"proxy": "jp-2"
})
print(r.json()) # {'rerouted': 1, 'flows_moved': 12}
スクリプトで複数プロセスを一括再ルーティング
WhaleProxyをダウンロードし、SettingsでAPIを有効にして、コードでの操作を始めましょう。