Proxyman: 概要、セットアップ、トラフィックデバッグの機能

著者: IT Sectr 公開日: 2026-05-08 読了時間: 8 分

Proxymanは、アプリケーション開発中にHTTP/HTTPSトラフィックをインターセプト、表示、変更するために設計された、macOSおよびiOS向けのネイティブプロキシクライアントです。Proxyman公式サイト(2025)によると、このツールは10,000以上の企業で使用され、iOSおよびmacOSの最新バージョンすべてをサポートしています。このプロキシクライアントは無料の基本バージョンを提供し、よりモダンなインターフェース、リアルタイムデータ変更のためのJavaScriptスクリプトのサポート、iOSシミュレーターとの組み込み互換性においてCharles Proxyとは異なります。

重要ポイント

  • Proxymanは、モダンなUIと広範なトラフィックデバッグ機能を備えた、macOSおよびiOS向けのネイティブプロキシクライアントです
  • HTTPSプロキシはiOSシミュレーター向けの自動証明書インストールで実装され、Charlesと比較してセットアップが簡単です
  • Scriptingは、Breakpointsを使わずにJavaScriptスクリプトでリクエストとレスポンスを変更できるProxymanのユニークな機能です
  • iOS統合はシミュレーター(自動)とWiFi Proxy経由の物理デバイスの両方をサポートします
  • 無料版には時間制限なしの基本的なトラフィックインターセプト機能が含まれています

Proxymanとは?

Proxymanは、Appleエコシステム専用に作られたHTTP/HTTPSプロキシクライアントです。クロスプラットフォームソリューションとは異なり、ProxymanはネイティブのmacOSフレームワーク(Swift、AppKit)を使用しており、高いパフォーマンスとシステムプロキシメカニズムとのシームレスな統合を実現しています。このツールはmacOS 11+およびiOS 14+をサポートしています。

市場での位置づけ

Proxymanは、Appleエコシステムの開発者向けにCharles Proxyのモダンな代替品として位置づけられています。主な利点:完全な基本機能を備えた無料版、macOSのデザインシステムに準拠したネイティブインターフェース、追加手順なしのiOSシミュレーターの自動設定。Proxymanは2018年から積極的に開発されており、開発者コミュニティとのオープンなフィードバックシステムを備えています。

サポートされるプラットフォーム

ProxymanはmacOS(ネイティブアプリケーション、Electronではありません)で動作し、iOS向けのコンパニオンアプリケーションを提供します。物理デバイス(iPhone、iPad)はCharlesと同様にWiFi Proxy経由で設定されます。iOSコンパニオンアプリ(Proxyman iOS companion)を使用すると、コンピューターなしでデバイス上で直接トラフィックを表示できます。この機能はProxyman独自のものです。

Proxymanの仕組み

Proxymanは標準的なMITM方式で動作します。アプリケーションがシステムプロキシとして設定され、すべてのHTTP/HTTPSトラフィックが通過します。このツールは、iOSシミュレーターの手動プロキシ設定を必要とせずにトラフィックをインターセプトするために、ネイティブのmacOS Network Extensionメカニズムを使用します。

macOSでのインターセプトメカニズム

macOSでは、Proxymanは透過的なトラフィックインターセプトにApple Network Frameworkを使用します。プロキシが有効化されると、Proxymanは仮想ネットワークインターフェースを作成し、すべてのアプリケーションのトラフィックが通過します。iOSシミュレーターの場合、起動時に自動的に設定が行われます。ProxymanはXcode経由で実行中のシミュレーターを検出し、設定で手動プロキシを設定しなくてもトラフィックをリダイレクトします。

HTTPSトラフィックの処理

HTTPSの復号化のために、ProxymanはmacOSシステムキーチェーンにローカルルート証明書をインストールします。初回起動時に、プログラムは証明書のインストールと信頼を求めます。特定のドメインの証明書はすべてその場で生成され、Proxymanのルート証明書で署名されます。iOSシミュレーターの場合、プロキシ起動時に証明書が自動的にインストールされます。

js
// レスポンス変更のためのProxymanスクリプト例
// Scripting: エラーテスト用にレスポンスステータスを500に変更
function onResponse(request, response) {
    if (request.url.includes("/api/users")) {
        response.statusCode = 500;
        response.body = JSON.stringify({
            error: "Internal Server Error",
            code: "SERVER_TIMEOUT"
        });
    }
    return response;
}

Proxymanの主な機能

Proxymanは、他のプロキシツールと差別化されたユニークな機能セットを提供します。スクリプトベースのトラフィック変更とネイティブパフォーマンスに特に重点が置かれています。

Scripting — JavaScriptによる変更

Proxymanの主な特徴は、リクエストとレスポンスを変更するためのJavaScriptスクリプトのサポートです。Breakpointsを使って各リクエストを手動で編集する(Charlesのように)代わりに、開発者は特定のURLに自動的に適用されるスクリプトを作成できます。スクリプトはヘッダー、リクエスト本文とレスポンス本文、ステータスコード、メタデータへの完全なアクセスをサポートしています。これにより、トークンの置換、ヘッダーの変更、テスト用のエラーシミュレーションなどのルーチン操作を自動化できます。

トラフィックのフィルタリングと整理

Proxymanは柔軟なルールベースのフィルターシステムを提供します。ドメイン、コンテンツタイプ、ステータスコードに従ってトラフィックを自動的にグループ化するプロファイルを作成できます。たとえば、アプリケーションのAPIへのすべてのリクエストは自動的に1つのグループに入り、静的アセット(CSS、JS、画像)は別のグループに入ります。これは、特定のエンドポイントのみに焦点を当てる必要があるデバッグ時に特に便利です。

機能ProxymanCharles Proxy備考
ScriptingJavaScriptなしBreakpoints不要の自動変更
iOSシミュレーター自動手動設定ProxymanはXcode経由でシミュレーターを検出
無料版あり30日間トライアルProxyman — 時間制限なし
プラットフォームmacOS、iOSWindows、macOS、LinuxCharlesはクロスプラットフォーム、ProxymanはAppleのみ
HARエクスポートありあり両方とも標準フォーマットをサポート

タイムライン表示

Proxymanはリクエストタイムラインをガントチャートスタイルで表示します。各リクエストは、期間、ステータス、サイズを示す色付きのバーで表されます。タイムラインはインタラクティブで、時間範囲を選択してその期間のリクエストのみを表示できます。各リクエストについて、DNS、Connect、TLS Handshake、Request、Responseのフェーズ別内訳が利用できます。

Proxyman iOS Companion

Proxymanのユニークな機能は、iPhoneまたはiPadにインストールできる独立したiOSアプリケーションです。コンピューターに接続しなくても、デバイス上で直接ネットワークトラフィックを表示できます。トラフィックはフィルタリングおよび検索機能とともにリアルタイムで表示されます。このアプリは、コンピューターが利用できないフィールドテストに特に役立ちます。

モバイルデバイス向けProxymanのセットアップ

ProxymanはiOSとAndroid向けに異なるセットアップ方法を提供しています。ネイティブのXcode統合により、iOSシミュレーターの設定はほぼ自動です。物理デバイスとAndroidの場合は、手動設定が必要です。

iOSシミュレーターのセットアップ

最も簡単なシナリオ:Proxymanを起動し、iOS Simulatorタブを開いてStartをクリックします。ProxymanはXcode経由で実行中のシミュレーターを自動的に検出し、プロキシを設定します。HTTPS証明書も自動的にインストールされます。追加の操作は不要で、シミュレーターのトラフィックがすぐにProxymanウィンドウに表示されます。これは、シミュレーターのセットアップに手動プロキシ設定が必要なCharlesに対する大きな利点です。

物理iOSデバイスのセットアップ

iPhoneまたはiPadの場合:デバイスをコンピューターと同じWiFiネットワークに接続します。デバイスのWiFi設定で、HTTPプロキシとしてコンピューターのIPアドレスとポート9090(Proxymanのデフォルトポート)を指定します。次にSafariを開き、http://proxy.man/sslにアクセスして証明書をインストールします。iOS 10.3+では、Settings → General → About → Certificate Trust Settingsで証明書の信頼を有効にしてください。

Androidのセットアップ

AndroidデバイスはiOSと同様に設定します。コンピューターのIPアドレスとポート9090を使用したWiFiプロキシです。HTTPSの場合は、http://proxy.man/sslでブラウザ経由で証明書をインストールする必要があります。Android 7+のデバッグビルドでは、ユーザー証明書を信頼するnetwork_security_config.xmlファイルが必要です。Androidエミュレーターの場合は、コンピューターのIPの代わりにホストIPアドレス(通常は10.0.2.2)を使用します。

xml
<!-- Proxymanを使用したAndroid向けnetwork_security_config.xml -->
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <debug-overrides>
        <trust-anchors>
            <certificates src="user" />
            <certificates src="system" />
        </trust-anchors>
    </debug-overrides>
    <base-config cleartextTrafficPermitted="false">
        <trust-anchors>
            <certificates src="system" />
        </trust-anchors>
    </base-config>
</network-security-config>

Proxyman vs Charles Proxy: 比較

ProxymanとCharles Proxyの選択は、チームの具体的なニーズと開発プラットフォームによって異なります。開発者が情報に基づいた決定を下せるよう、主な違いを検討しましょう。

パフォーマンスとネイティブ統合

ProxymanはSwiftとAppKitで書かれており、ネイティブのmacOSパフォーマンスと最小限のメモリ消費を実現しています。CharlesはJava(Eclipse RCP)で書かれており、クロスプラットフォーム互換性を可能にしますが、macOSではメモリ消費がやや多く、非ネイティブなインターフェースになる可能性があります。Appleエコシステムの開発者にとって、Proxymanは一般的に応答性が高いと感じられます。

機能の違い

Charlesはより成熟した幅広いツールセットを提供しています:ビジュアルエディター付きのRewrite Rules、リクエストを繰り返すRepeat、Map Local/Remote、セッションのAuto Save。Proxymanはよりモダンな機能で応答します:JavaScript Scripting、自動シミュレーター設定、デバイス上でトラフィックを表示するiOSコンパニオン。Charlesは複雑な自動化シナリオ(Rewrite、Repeat)で優位性があり、Proxymanはスクリプトによる迅速で柔軟な変更に優れています。

料金とライセンス

Proxymanは時間制限なしの基本機能を備えた無料版を提供しています。Pro版(サブスクリプション約$12/年、または一括購入約$59)では、スクリプティング、フィルター、エクスポートなどの高度な機能が利用できます。Charlesは30日間のトライアル付きで1ライセンス$50です。個人開発者にとってProxymanはより手頃で、企業環境ではその差はわずかです。

よくある質問

Proxymanは無料ですか?

Proxymanには、時間制限なしの基本的なHTTP/HTTPSトラフィックインターセプト機能を備えた無料版があります。有料サブスクリプション(ProおよびTeam)には、スクリプティング、高度なフィルター、HARエクスポート、優先サポートが追加されます。ほとんどのデバッグタスクには無料版で十分です。

ProxymanはAndroidをサポートしていますか?

ProxymanはネイティブのmacOSアプリケーションですが、Charlesと同様にWiFi Proxy経由でAndroidデバイスからのトラフィックをインターセプトできます。Androidデバイスは、コンピューターのIPアドレスとProxymanのポートを使用してHTTPプロキシとして設定されます。Androidエミュレーターの場合は、IP 10.0.2.2を使用します。HTTPS証明書は別途インストールされます。

Proxymanでサーバーレスポンスを変更するには?

2つの方法があります:Local Edit — リクエストをダブルクリックし、Responseタブを選択して手動で編集し、Executeをクリックして変更したレスポンスをアプリケーションに送信します。Scripting — 指定したURLに自動的に変更を適用するJavaScriptスクリプトを作成します。

Proxymanからデータをエクスポートできますか?

はい、Proxymanは以下の形式へのエクスポートをサポートしています:HAR(HTTP Archive)、Proxyman Session(.pxm)、Curl Command(各リクエスト)、プレーンテキスト。エクスポートはリクエストまたはリクエストグループのコンテキストメニューから利用できます。HAR形式はCharles Proxy、Chrome DevTools、オンラインビューアと互換性があります。

ProxymanはiOSシミュレーターとどのように連携しますか?

ProxymanはXcode経由で実行中のiOSシミュレーターを自動的に検出し、手動設定なしでトラフィックをリダイレクトします。プロキシが起動すると、ProxymanはmacOSのNetwork Extensionを介してシステムプロキシを注入し、すべてのシミュレーターに自動的に適用されます。HTTPS証明書も自動的にインストールされます。

まとめ

  • Proxymanは、Appleエコシステム向けのCharles Proxyの代替として作成された、モダンなSwiftインターフェースを備えたmacOSおよびiOS向けのネイティブプロキシクライアントです
  • JavaScript Scriptingは、Breakpointsなしでリクエストとレスポンスを自動変更できるユニークな機能で、エッジケースのテストを高速化します
  • 手動プロキシ設定不要のXcode経由のiOSシミュレーター自動セットアップ — Charlesに対する重要な利点
  • iOS Companion — コンピューターに接続せずにiPhoneまたはiPadで直接トラフィックを表示する独立したアプリケーション
  • ネイティブのSwift/AppKitフレームワークによるパフォーマンス — Javaベースのソリューションと比較して低メモリ消費
  • 時間制限なしの完全な基本機能を備えた無料版、ほとんどのデバッグタスクに適しています
  • クロスプラットフォーム開発(Windows + macOS + Linux)の場合はCharles Proxyを選択し、純粋なAppleエコシステムの場合はProxymanが最適なユーザー体験を提供します

ターンキー方式のモバイルアプリケーションを開発します

IT Sectrは2017年からスタートアップや企業向けにiOS・Androidアプリケーションを開発しています。私たちがご相談に乗り、最適なソリューションをご提案します。

プロジェクトについて相談

こちらもお読みください