メインコンテンツまでスキップ

Reverse Proxy

Proxyman の Reverse Proxy を使うと、システムプロキシを無視するアプリやコマンドラインツールの HTTP/HTTPS 通信を、ローカルポート経由でキャプチャできます。

1. 概要​

Reverse Proxy は、ローカルの Web サーバー を作成し、通信をリモートサーバーへ透過的に転送します。これにより、Proxyman は通信をキャプチャしてログに記録できます。

Reverse Proxy は、HTTP/HTTPS プロキシに対応していないクライアントを扱う場合や、HTTP プロキシの設定が複雑すぎる場合に役立ちます。

たとえば、多くのコマンドラインアプリはシステムの HTTP/HTTPS プロキシを参照しないため、Proxyman で通信をキャプチャできません。これを解決するには、次のいずれかの方法があります:

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. 使い方​

  1. Tools メニュー -> Reverse Proxy… を開きます。
  2. 新しいエントリを作成し、Remote Host と Remote Port を入力します。Local Port は Proxyman が自動的に選択します。別のポートに変更することもできますが、そのポートは利用可能である必要があります。
  3. 保存します。
  4. クライアントアプリで、URL を http://localhost:<local_port>(例:http://localhost:10000)に変更します。
  5. リクエストを送信し、Proxyman アプリで通信を確認します。
ローカルポート 10000 を httpbin.proxyman.app のポート 443 にマッピングする httpbin のエントリが表示されている、Proxyman の Reverse Proxy ウィンドウ

Reverse Proxy ウィンドウ

ローカルポート 10000、リモートホスト httpbin.proxyman.app、リモートポート 443 が設定された 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 の値が一致しない場合、リモートサーバーがリクエストを拒否することがあるため、注意して使用してください。

詳細情報​