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

Network Extension(ネットワーク拡張)

Proxyman の Network Extension を使うと、Mac 上のすべてのアプリから HTTP と HTTPS の通信をキャプチャできます。プロキシ設定を無視するアプリやスクリプトも対象です。

1. 概要​

Network Extension は、Mac 上のアプリからの HTTP/HTTPS 通信をキャプチャします。システムのプロキシ設定を無視するアプリも対象です。

Apple の transparent proxy Network Extension API を基に構築されています。macOS のシステム拡張として動作し、TablePlus Inc の Developer ID 証明書で署名され、Apple の公証を受けています。

Fiddler Everywhere の Network Capture モードや mitmproxy の Local Capture モードと似た動作をします。アプリごとにプロキシを設定する必要はありません。

警告

Network Extension はベータ版で、デフォルトではオフになっています。Proxyman PRO(直接配布版の Proxyman)と macOS 26 以降が必要です。Setapp では利用できません。

--proxy フラグを付けずに cURL の HTTPS リクエストをキャプチャしている Proxyman

--proxy フラグなしで cURL リクエストをキャプチャする

2. 課題​

通常のプロキシモードは、アプリがリクエストをプロキシ経由で送信することを前提としています。

  • 一部のアプリやスクリプトは macOS のシステムプロキシを無視するため、Proxyman はそれらのリクエストをキャプチャできません。
  • NodeJS、Ruby、Python のライブラリは、個別のプロキシ設定、コードの変更、または Automatic Setup が必要になる場合があります。
  • アプリやライブラリを 1 つずつ手動で設定するには時間がかかり、設定ミスにつながることもあります。

3. メリット​

  • プロキシ設定を無視するアプリやスクリプトの通信をキャプチャできます。
  • アプリごとの手動によるプロキシ設定が不要です。
  • キャプチャしたリクエストに対して、Map Local、Breakpoint、Scripting などの既存の機能を使えます。

4. Network Extension をインストールする方法​

  1. 次のいずれかの方法で Network Extension をオンにします:
  • Proxyman -> Settings -> Network Extension を開きます。Enable Network Extension をオンにします。表示された場合は Install and Enable をクリックします。
Network Extension のペインと Enable Network Extension のトグルが表示されている Proxyman の Settings 画面

Settings で Network Extension をオンにする

  • または、メインウィンドウ上部のステータスバー(Proxyman | Listening on ...)をクリックし、Network Extension をオンにします。
  1. System Settings -> General -> Login Items & Extensions を開きます。Extensions の下で By Category -> Network Extensions を選択し、Proxyman を有効にします。
  2. macOS がネットワーク構成の追加を求めたら、Allow をクリックします。
Network Extensions で Proxyman のトグルをオンにする

Proxyman Network Extension を許可する

  1. Proxyman に「Capturing HTTP and HTTPS from local applications.」と表示されるまで待ちます。

5. 使い方​

  1. Network Extension を有効にした状態で、Proxyman を開いたままにします。
  2. Network Extension が、Mac 上のアプリの通信をキャプチャして Proxyman に送信します。
  3. HTTPS の内容を読むには、Proxyman 証明書をインストールして信頼し、次にアプリまたはドメインに対して SSL Proxying を有効にします。
  4. アプリ、ブラウザ、またはスクリプトから新しいリクエストを送信します。リクエストが Proxyman に表示されます。

拡張機能を有効にする前からアプリが起動していた場合は、再起動して新しい接続をキャプチャしてください。

アンインストールせずにキャプチャを停止するには、Settings で Enable Network Extension をオフにします。

6. トラブルシューティング​

NodeJS、Ruby、Python での SSL エラー​

これらのランタイムは、macOS で証明書を信頼していても、Proxyman の自己署名証明書を信頼しない場合があります。Network Extension はこれらの通信をキャプチャしますが、証明書の信頼設定は別途必要です。

対応するライブラリで証明書の信頼設定を行うには、Automatic Setup を使用します:

  1. Proxyman -> Setup -> Automatic Setup を開きます。
  2. Open New Terminal をクリックし、必要に応じて権限の確認を許可します。
  3. 新しいターミナルでスクリプトを実行するか、サーバーを再起動します。
ヒント

Automatic Setup または Manual Setup を使用している場合は、Settings -> Network Extension で Enable Network Extension をオフにできます。そのセットアップで構成されたターミナルで、スクリプトまたはサーバーを引き続き実行してください。

エラーが解消されない場合は、Automatic Setup のトラブルシューティングガイド を確認してください。

7. Network Extension をアンインストールする方法​

  1. Proxyman -> Settings -> Network Extension を開きます。
  2. Uninstall をクリックし、確認します。
  3. 求められたら Mac のパスワードを入力し、必要に応じて Mac を再起動します。

アンインストールすると、キャプチャが停止し、この拡張機能を使用している接続も閉じられます。ネットワーク構成も削除されます。

8. コマンドライン​

proxyman-cli network-extension を使うと、ステータスの確認、インストール、アンインストール、有効化、無効化、再試行ができます。Proxyman を開いておく必要があります。install はキャプチャをオンにせずにインストールします。enable はキャプチャを開始し、必要に応じて拡張機能をインストールします。macOS での承認や再起動が引き続き必要になる場合があります。

コマンド、JSON のステータスフィールド、終了コードについては、Network Extension のコマンドラインガイド をご覧ください。

さらに詳しく​