
oproxy v0.1.11
オープンソースのMITMプロキシ。ネットワークトラフィックの傍受、検査、モック化が可能です。
oproxy
oproxy は、ブラウザ、CLI、モバイルアプリ、API クライアント、サービス、テストスイートからのトラフィックを検査、リプレイ、変更するためのローカル HTTP、HTTPS、HTTP/3、WebSocket、SOCKS5 プロキシです。
同じローカルリスナー上で Web UI、API、およびオプションの AI アシスタントを実行するため、アプリケーションコードを変更することなく、トラフィックのキャプチャ、リクエストとレスポンスの検査、リクエストのリプレイ、アップストリームのモック、トラフィックの書き換え、レスポンスのスロットリング、再現可能なスニペットのエクスポートが可能です。
アシスタントは OpenAI 互換のコントロールプレーンクライアントです。許可リストに登録されたツールを通じて現在のプロキシ状態を検査し、トラフィックや設定の変更をレビュー可能な確認カードとして準備できます。
セキュリティに関する注意: HTTPS 傍受にはローカルの oproxy ルート CA を信頼させる必要があります。この CA は自分が管理するマシンとブラウザにのみインストールし、生成された秘密鍵を安全に保管し、強力なトークンなしで管理 UI を公開しないでください。
ハイライト
- HTTP および HTTPS トラフィックをキャプチャし、HTTPS の MITM をサポート。
- ヘッダー、ボディ、ステータス、タイミング、タグ、ノート、JWT、GraphQL、gRPC メタデータ、WebSocket フレームを検査。
- キャプチャしたリクエストをリプレイ、または Compose で編集。
- キャプチャを HAR、cURL、Fetch、Python スニペットとしてエクスポート。
- ルール、モック、map-local/map-remote、アクセスルール、スロットリング、ブレークポイント、DNS オーバーライド、Lua スクリプト、アップストリームプロキシチェーンによるトラフィックの変更。
- アシスタントを使用してセッションを検査し、プロキシ状態を理解し、OpenAI 互換チャットモデルを通じて確認済みの変更を準備。
- Docker、Docker Compose、またはソースから実行。
クイックスタート
Docker
docker run --rm \
--name oproxy \
-p 127.0.0.1:8080:8080 \
-p 127.0.0.1:1080:1080 \
-p 127.0.0.1:8443:8443/udp \
-e OPROXY_BIND_HOST=0.0.0.0 \
-e OPROXY_MITM_ENABLED=true \
-e OPROXY_HTTP3_ENABLED=true \
-e OPROXY_HTTP3_PORT=8443 \
-e OPROXY_ALLOW_REMOTE_ADMIN=true \
-e OPROXY_ADMIN_TOKEN=change-me-to-a-strong-secret \
-v oproxy-certs:/app/certs \
-v oproxy-storage:/app/storage \
ghcr.io/sauravrao637/oproxy:latest
http://127.0.0.1:8080 を開き、トークンでサインインします。
Docker ブリッジネットワーキングには OPROXY_BIND_HOST=0.0.0.0 が必要です。上記のコマンドは依然としてホストのループバック上にのみポートを公開します。実際に使用する前に OPROXY_ADMIN_TOKEN を変更してください。
Docker Compose
docker compose up --build
チェックインされている Compose ファイルは、MITM、UDP 8443 上の HTTP/3、永続的な証明書/状態、およびヘルスチェックを有効にします。
ソース
要件: Rust 1.85+、Node.js 22+、および Corepack 経由の Yarn。
corepack enable
yarn --cwd src/design install --frozen-lockfile
yarn --cwd src/design build
cargo run --release
http://127.0.0.1:8080 を開きます。
最初のキャプチャ
curl -x http://127.0.0.1:8080 http://example.com
リクエストは Sessions ビューに表示されます。
HTTPS の場合:
curl http://127.0.0.1:8080/admin/ca -o oproxy-ca.crt
curl --cacert oproxy-ca.crt -x http://127.0.0.1:8080 https://example.com
ブラウザでの HTTPS キャプチャの場合、ブラウザまたは OS を設定して 127.0.0.1:8080 を HTTP および HTTPS プロキシとして使用し、http://127.0.0.1:8080/admin/ca から CA をインポートします。
デモ


詳細
ライセンス
oproxy は MIT License の下でライセンスされています。