
New releaseJul 31, 2026
oproxy v0.1.10
オープンソースのMITMプロキシ。ネットワークトラフィックの傍受、検査、モック化が可能です。
oproxy
oproxy は、トラフィックの検査、リプレイ、変更のためのローカル HTTP、HTTPS、SOCKS5 プロキシです。
開発者が自分のマシンまたはローカルの Docker コンテナ上で、ブラウザ、CLI、モバイルアプリ、API クライアント、サービス、テストスイートをテストするためのものです。
機能
- ローカルの oproxy CA を信頼した後、HTTP トラフィックと HTTPS トラフィックをキャプチャします。
- リクエスト、レスポンス、ヘッダー、ボディ、ステータス、タイミング、タグ、ノート、および選択したインスペクタデータを表示します。
- キャプチャしたリクエストをリプレイし、Compose で開きます。
- ヘッダー、クエリパラメータ、認証、生ボディ、変数、コレクション、cURL エクスポートを使用して手動リクエストを構築します。
- キャプチャを HAR、または生成された cURL、Fetch、Python スニペットとしてエクスポートします。
- ルールセット、map-remote、map-local、アクセスルール、スロットリング、ブレークポイント、モックレスポンス、DNS オーバーライド、キャプチャフィルター、Lua スクリプト、アップストリームプロキシチェーンを使用してトラフィックを変更します。
- 認証された Assistant を使用して、OpenAI 互換のチャットモデルを通じて状態を検査し、確定したプロキシ変更を準備します。
- CA 素材とローカル状態の永続ボリュームを使用して、ソースまたは Docker から実行します。
デモ
クイックスタート
Docker
docker run --rm \
--name oproxy \
-p 127.0.0.1:8080:8080 \
-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 build -t oproxy:latest .
Docker Compose
docker compose up --build
同梱の Compose ファイルは、ループバック公開ポートを使用したブリッジネットワークを使用し、/app/certs と /app/storage を永続化し、OPROXY_BIND_HOST=0.0.0.0 を設定します。Linux ユーザーはオプションでホストネットワーキングを有効にできます。
ソース
要件:
- 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 をキャプチャするには、http://127.0.0.1:8080/admin/ca から CA をブラウザまたは OS のトラストストアにインストールします。
できること
OPROXY_PORT/port(デフォルト8080)でフォワード HTTP プロキシとして動作します。- 同じリスナーからローカル管理 UI と API を提供します。
- MITM が有効で、クライアントが生成された CA を信頼する場合、HTTPS CONNECT トラフィックをインターセプトします。
- オプションで
socks5_portで SOCKS5 CONNECT トラフィックを待ち受けます。 - オプションで
https_portを使用して 2 番目の TLS リスナーを実行します。 - セッションとボディの保持に上限を設けて、ライブセッションをメモリ上にキャプチャします。
- 管理エンドポイントを使用して、セッションを明示的に保存および読み込みます。
- デフォルトで秘匿化された HAR、cURL、Fetch、Python スニペットをエクスポートします。
- HAR ファイルと oproxy の JSON セッションデータをインポートします。
- Server-Sent Events でセッション変更通知をストリーミングします。
- 該当するトラフィックがキャプチャされたときに、JWT、GraphQL、gRPC、および WebSocket フレームのメタデータを検査します。
ユースケース
- アプリケーションコードを変更せずに、ブラウザまたは CLI のリクエストをデバッグします。
- Compose でヘッダーまたはボディを編集した後、キャプチャしたリクエストをリプレイします。
- モックレスポンスまたはローカルのフィクスチャファイルに対してフロントエンドをテストします。
- トラフィックの一部をステージングサービスにルーティングします。
- 遅い、または帯域幅が制限されたレスポンスを再現します。
- 一致するリクエストまたはレスポンスを続行する前に一時停止します。
- リクエストがブロック、リダイレクト、または書き換えられたときにクライアントがどのように動作するかを検証します。
スクリーンショット


ドキュメント
ライセンス
MIT