Proxymanは、アプリケーション開発中にHTTP/HTTPSトラフィックをインターセプト、表示、変更するために設計された、macOSおよびiOS向けのネイティブプロキシクライアントです。Proxyman公式サイト(2025)によると、このツールは10,000以上の企業で使用され、iOSおよびmacOSの最新バージョンすべてをサポートしています。このプロキシクライアントは無料の基本バージョンを提供し、よりモダンなインターフェース、リアルタイムデータ変更のためのJavaScriptスクリプトのサポート、iOSシミュレーターとの組み込み互換性においてCharles Proxyとは異なります。
重要ポイント
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は標準的なMITM方式で動作します。アプリケーションがシステムプロキシとして設定され、すべてのHTTP/HTTPSトラフィックが通過します。このツールは、iOSシミュレーターの手動プロキシ設定を必要とせずにトラフィックをインターセプトするために、ネイティブのmacOS Network Extensionメカニズムを使用します。
macOSでは、Proxymanは透過的なトラフィックインターセプトにApple Network Frameworkを使用します。プロキシが有効化されると、Proxymanは仮想ネットワークインターフェースを作成し、すべてのアプリケーションのトラフィックが通過します。iOSシミュレーターの場合、起動時に自動的に設定が行われます。ProxymanはXcode経由で実行中のシミュレーターを検出し、設定で手動プロキシを設定しなくてもトラフィックをリダイレクトします。
HTTPSの復号化のために、ProxymanはmacOSシステムキーチェーンにローカルルート証明書をインストールします。初回起動時に、プログラムは証明書のインストールと信頼を求めます。特定のドメインの証明書はすべてその場で生成され、Proxymanのルート証明書で署名されます。iOSシミュレーターの場合、プロキシ起動時に証明書が自動的にインストールされます。
// レスポンス変更のための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の主な特徴は、リクエストとレスポンスを変更するためのJavaScriptスクリプトのサポートです。Breakpointsを使って各リクエストを手動で編集する(Charlesのように)代わりに、開発者は特定のURLに自動的に適用されるスクリプトを作成できます。スクリプトはヘッダー、リクエスト本文とレスポンス本文、ステータスコード、メタデータへの完全なアクセスをサポートしています。これにより、トークンの置換、ヘッダーの変更、テスト用のエラーシミュレーションなどのルーチン操作を自動化できます。
Proxymanは柔軟なルールベースのフィルターシステムを提供します。ドメイン、コンテンツタイプ、ステータスコードに従ってトラフィックを自動的にグループ化するプロファイルを作成できます。たとえば、アプリケーションのAPIへのすべてのリクエストは自動的に1つのグループに入り、静的アセット(CSS、JS、画像)は別のグループに入ります。これは、特定のエンドポイントのみに焦点を当てる必要があるデバッグ時に特に便利です。
| 機能 | Proxyman | Charles Proxy | 備考 |
|---|---|---|---|
| Scripting | JavaScript | なし | Breakpoints不要の自動変更 |
| iOSシミュレーター | 自動 | 手動設定 | ProxymanはXcode経由でシミュレーターを検出 |
| 無料版 | あり | 30日間トライアル | Proxyman — 時間制限なし |
| プラットフォーム | macOS、iOS | Windows、macOS、Linux | Charlesはクロスプラットフォーム、ProxymanはAppleのみ |
| HARエクスポート | あり | あり | 両方とも標準フォーマットをサポート |
Proxymanはリクエストタイムラインをガントチャートスタイルで表示します。各リクエストは、期間、ステータス、サイズを示す色付きのバーで表されます。タイムラインはインタラクティブで、時間範囲を選択してその期間のリクエストのみを表示できます。各リクエストについて、DNS、Connect、TLS Handshake、Request、Responseのフェーズ別内訳が利用できます。
Proxymanのユニークな機能は、iPhoneまたはiPadにインストールできる独立したiOSアプリケーションです。コンピューターに接続しなくても、デバイス上で直接ネットワークトラフィックを表示できます。トラフィックはフィルタリングおよび検索機能とともにリアルタイムで表示されます。このアプリは、コンピューターが利用できないフィールドテストに特に役立ちます。
ProxymanはiOSとAndroid向けに異なるセットアップ方法を提供しています。ネイティブのXcode統合により、iOSシミュレーターの設定はほぼ自動です。物理デバイスとAndroidの場合は、手動設定が必要です。
最も簡単なシナリオ:Proxymanを起動し、iOS Simulatorタブを開いてStartをクリックします。ProxymanはXcode経由で実行中のシミュレーターを自動的に検出し、プロキシを設定します。HTTPS証明書も自動的にインストールされます。追加の操作は不要で、シミュレーターのトラフィックがすぐにProxymanウィンドウに表示されます。これは、シミュレーターのセットアップに手動プロキシ設定が必要なCharlesに対する大きな利点です。
iPhoneまたはiPadの場合:デバイスをコンピューターと同じWiFiネットワークに接続します。デバイスのWiFi設定で、HTTPプロキシとしてコンピューターのIPアドレスとポート9090(Proxymanのデフォルトポート)を指定します。次にSafariを開き、http://proxy.man/sslにアクセスして証明書をインストールします。iOS 10.3+では、Settings → General → About → Certificate Trust Settingsで証明書の信頼を有効にしてください。
AndroidデバイスはiOSと同様に設定します。コンピューターのIPアドレスとポート9090を使用したWiFiプロキシです。HTTPSの場合は、http://proxy.man/sslでブラウザ経由で証明書をインストールする必要があります。Android 7+のデバッグビルドでは、ユーザー証明書を信頼するnetwork_security_config.xmlファイルが必要です。Androidエミュレーターの場合は、コンピューターのIPの代わりにホストIPアドレス(通常は10.0.2.2)を使用します。
<!-- 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と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には、時間制限なしの基本的なHTTP/HTTPSトラフィックインターセプト機能を備えた無料版があります。有料サブスクリプション(ProおよびTeam)には、スクリプティング、高度なフィルター、HARエクスポート、優先サポートが追加されます。ほとんどのデバッグタスクには無料版で十分です。
ProxymanはネイティブのmacOSアプリケーションですが、Charlesと同様にWiFi Proxy経由でAndroidデバイスからのトラフィックをインターセプトできます。Androidデバイスは、コンピューターのIPアドレスとProxymanのポートを使用してHTTPプロキシとして設定されます。Androidエミュレーターの場合は、IP 10.0.2.2を使用します。HTTPS証明書は別途インストールされます。
2つの方法があります:Local Edit — リクエストをダブルクリックし、Responseタブを選択して手動で編集し、Executeをクリックして変更したレスポンスをアプリケーションに送信します。Scripting — 指定したURLに自動的に変更を適用するJavaScriptスクリプトを作成します。
はい、Proxymanは以下の形式へのエクスポートをサポートしています:HAR(HTTP Archive)、Proxyman Session(.pxm)、Curl Command(各リクエスト)、プレーンテキスト。エクスポートはリクエストまたはリクエストグループのコンテキストメニューから利用できます。HAR形式はCharles Proxy、Chrome DevTools、オンラインビューアと互換性があります。
ProxymanはXcode経由で実行中のiOSシミュレーターを自動的に検出し、手動設定なしでトラフィックをリダイレクトします。プロキシが起動すると、ProxymanはmacOSのNetwork Extensionを介してシステムプロキシを注入し、すべてのシミュレーターに自動的に適用されます。HTTPS証明書も自動的にインストールされます。
まとめ
ターンキー方式のモバイルアプリケーションを開発します
IT Sectrは2017年からスタートアップや企業向けにiOS・Androidアプリケーションを開発しています。私たちがご相談に乗り、最適なソリューションをご提案します。