Repolode
quyxishi

quyxishi/whitebox

VMESS、VLESS、TrojanなどのVPNサービスをプローブし、稼働状況を報告するPrometheus exporter。

スター
162
フォーク
14
未解決の Issue
1
最終コミット
6 日前

これは何?

whiteboxは、外部VPNサービスに接続でき、正常に動作しているかを確認するPrometheus exporterです。VPN接続URIと対象URLを渡すと、VPN経由のトンネルを構築して対象にアクセスし、成功 여부、HTTPステータス、フェーズごとの所要時間、レスポンスサイズをPrometheusメトリクスとして返します。

対応プロトコルはVMESS、VLESS、Trojan、WireGuard、AmneziaWG、Shadowsocks、Hysteria2です。RESTエンドポイントからオンデマンドでプローブを実行できるほか、Prometheusのマルチターゲットexporterパターンを使った定期実行や、cronジョブからcurlでの呼び出しにも対応します。YAML設定ファイルでは名前付きスコープ、タイムアウト、リクエストボディ、カスタムヘッダー、fail_if検証ルールを設定でき、SIGHUPで再読み込みできます。

プローブ間で起動済みのxrayインスタンスを再利用して、メモリ使用量を一定範囲に保ちます。また、/metricsで独自のキャッシュ統計も公開します。Dockerイメージを提供しており、Prometheus、blackbox_exporter、Grafanaを含む構成例も用意されています。

主な機能

  • 01VMESS、VLESS、Trojan、WireGuard、AmneziaWG、Shadowsocks、Hysteria2経由のトンネルをプローブします。
  • 02成功 여부、ステータスコード、フェーズごとの所要時間など、プローブ結果をPrometheusメトリクスとして公開します。
  • 03オンデマンドまたは定期実行に使えるREST /probeエンドポイントを提供します。
  • 04タイムアウト、リクエストボディ、ヘッダー、レスポンス検証ルールを設定できるYAMLスコープに対応します。
  • 05再起動せずにSIGHUPで設定を再読み込みします。
  • 06プローブ間でxrayインスタンスを再利用し、キャッシュメトリクスを公開します。

ユースケース

  • PrometheusやGrafanaで、自前またはサードパーティのVPNノードの稼働状況を監視する。
  • 複数のVPN接続URIに対して、定期的な到達性チェックを実行する。
  • VPN接続から指定したURLにアクセスできるか、手早く単発でテストする。

クイックスタート

  1. 1

    ビルド済みのDockerイメージを実行する

    docker run --rm -d --name whitebox -p 9116:9116 rxyvea/whitebox:latest
  2. 2

    VPN接続URIを使ってターゲットをプローブする

    curl -sG http://localhost:9116/probe --data-urlencode 'ctx=vless://c9f5228c-8870-47bd-a92f-9b38c7c02b08@1.2.3.4:443?type=tcp&encryption=none&security=reality&pbk=DF-3KL2W4RuNB2HgsEDmLqHLvvTTN4_QfwUCUn8Uhy0&fp=firefox&sni=ce-cdn.icloud-content.com&sid=620352b7&spx=%2F&flow=xtls-rprx-vision' --data-urlencode 'target=https://google.com'

使う前に知っておきたいこと

  • 各ターゲットのプローブには動作するVPN接続URIが必要なため、VPNサーバーの詳細は自分で用意する必要があります。
  • xrayインスタンスのキャッシュを有効にするか、コンテナにメモリ上限を設定しない限り、メモリ使用量が際限なく増加する可能性があります。

トピック

よくある質問

whitebox とは?
VMESS、VLESS、TrojanなどのVPNサービスをプローブし、稼働状況を報告するPrometheus exporter。 whiteboxは、外部VPNサービスに接続でき、正常に動作しているかを確認するPrometheus exporterです。VPN接続URIと対象URLを渡すと、VPN経由のトンネルを構築して対象にアクセスし、成功 여부、HTTPステータス、フェーズごとの所要時間、レスポンスサイズをPrometheusメトリクスとして返します。
whitebox は無料で使えますか?ライセンスは?
whitebox は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
whitebox は今もメンテナンスされていますか?
活発にメンテナンス中。whitebox の最終コミットは 2026年10月14日 です。
whitebox は何に使えますか?
PrometheusやGrafanaで、自前またはサードパーティのVPNノードの稼働状況を監視する。 複数のVPN接続URIに対して、定期的な到達性チェックを実行する。 VPN接続から指定したURLにアクセスできるか、手早く単発でテストする。
whitebox のインストール方法は?
ビルド済みのDockerイメージを実行する: docker run --rm -d --name whitebox -p 9116:9116 rxyvea/whitebox:latest VPN接続URIを使ってターゲットをプローブする: curl -sG http://localhost:9116/probe --data-urlencode 'ctx=vless://c9f5228c-8870-47bd-a92f-9b38c7c02b08@1.2.3.4:443?type=tcp&encryption=none&security=reality&pbk=DF-3KL2W4RuNB2HgsEDmLqHLvvTTN4_QfwUCUn8Uhy0&fp=firefox&sni=ce-cdn.icloud-content.com&sid=620352b7&spx=%2F&flow=xtls-rprx-vision' --data-urlencode 'target=https://google.com'
whitebox はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/quyxishi/whitebox

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト