Reverse Proxy
Proxyman の Reverse Proxy を使うと、システムプロキシを無視するアプリやコマンドラインツールの HTTP/HTTPS 通信を、ローカルポート経由でキャプチャできます。
1. 概要
Reverse Proxy は、ローカルの Web サーバー を作成し、通信をリモートサーバーへ透過的に転送します。これにより、Proxyman は通信をキャプチャしてログに記録できます。
Reverse Proxy は、HTTP/HTTPS プロキシに対応していないクライアントを扱う場合や、HTTP プロキシの設定が複雑すぎる場合に役立ちます。
たとえば、多くのコマンドラインアプリはシステムの HTTP/HTTPS プロキシを参照しないため、Proxyman で通信をキャプチャできません。これを解決するには、次のいずれかの方法があります:
- HTTP/HTTPS プロキシを明示的に設定する。設定は複雑になることがあり、使用しているネットワークライブラリによって異なります。詳しくは 3rd-party のネットワークライブラリからリクエストが見えない をお読みください。
- Reverse Proxy を使用する。
Reverse Proxy は Proxyman 2.29.0 以降で利用できます。
2. メリット
- クライアントを Proxyman のローカル Web サーバーに接続すると、Proxyman が通信をリモートホストへ転送します。クライアントに HTTP/HTTPS プロキシを設定する必要はありません。
- Charles Proxy から Reverse Proxy の設定をインポートできます。
- Host ヘッダーを維持します。
- 新しいエントリを作成すると、Proxyman が利用可能なポートを自動的に選択します。
- Reverse Proxy の通信にも Breakpoint、Map Local、Scripting を使用できます 💯
3. 使い方
- Tools メニュー -> Reverse Proxy… を開きます。
- 新しいエントリを作成し、Remote Host と Remote Port を入力します。Local Port は Proxyman が自動的に選択します。別のポートに変更することもできますが、そのポートは利用可能である必要があります。
- 保存します。
- クライアントアプリで、URL を
http://localhost:<local_port>(例:http://localhost:10000)に変更します。 - リクエストを送信し、Proxyman アプリで通信を確認します。

Reverse Proxy ウィンドウ

Reverse Proxy のエントリ
Remote Port が 443 の場合、Proxyman はリモートサーバーと SSL ハンドシェイクを行います。それ以外の場合は、リモートサーバーを通常の HTTP Web サーバーとして扱います。
Proxyman 5.17.0 以降では、Force Using SSL when connecting to Remote Port をオンにすると、任意のリモートポートで SSL/TLS を使用できます。
Preserve Host in Header fields をオンにすると、元の Host の値が保持されます。Host の値が一致しない場合、リモートサーバーがリクエストを拒否することがあるため、注意して使用してください。