ネットワークのデバッグ
Chute はプロキシですが、自分のデバイスでプロキシを動かす理由はたいてい経路選択ではありません。すべてのリクエストが、自分の制御下にある場所を通るようになる — それが理由です。だからアプリが実際に何を送っているのかを観察でき、ボディを保存してあとから読み、転送中のリクエストやレスポンスを書き換え、正常なバックエンドを壊れたように見せてアプリの振る舞いを確かめられます。
それぞれの仕組みのリファレンスは本マニュアルの別の場所にあります:HTTPS 復号、モックレスポンス、URL 書き換え、JS スクリプト。このセクションはそれらを実際に使う順に並べ、プラットフォームごとに何が変わるかを示します。
同じカーネルを見る 4 つの窓
動いている Chute は 1 つ、見方は 4 つ。窓を間違えるのが「そこに無い」の典型的な原因です。
| 動作する場所 | リクエスト/レスポンスのボディ | 動作中のカーネルを変更 | 必要なもの | |
|---|---|---|---|---|
| アプリ自体 | デバイス上 | iOS はあり、macOS と tvOS は無し | スイッチのみ | 無し |
| Web コンソール | 任意のデバイスのブラウザ | あり | MitM ホスト、各書き換えファミリー、ポリシー、設定 | external-http-controller |
| Chute Dashboard | Mac | あり | MitM ホスト、各書き換えファミリー、2 つのスイッチ | external-controller-access |
| HTTP 制御 API | HTTP を話すもの全部 | あり(base64) | コンソールにできることはすべて | external-http-controller |
コンソールと Dashboard は大きく重なりますが、入り口が違います — コンソールはカーネルが提供しブラウザで開くもの、Dashboard はバイナリチャネルで話す Mac アプリです。どちらも他方の上位互換ではありません。違いは Dashboard が届かないものにあります。
まず 4 つのスイッチを正しく
「接続は見えるのにリクエストが見えない」は、ほぼ必ずこの 4 つのどれかに行き着きます。この順で確認してください:
- そもそもトラフィックが Chute に届いている。 トラフィックビューに行があることが証拠です。何も無いならデバッグではなく横取りの問題です — トラブルシューティングを参照。
- CA がインストールされ、かつ信頼されている。 iOS では 2 ステップ、macOS では 1 ステップ、tvOS ではそのどちらもアプリ内では行いません — CA 証明書のインストールと信頼を参照。
- ホストが MitM リストにある。 Chute は宣言されたホストだけを復号します。メソッドもステータスも無く
CONNECTと表示される行は、一度も復号されていません。 - 記録がオンになっている。
replica = true、またはスイッチ(Mac では Traffic Capture、iOS と tvOS では データダンプ)。オフでも各行はルール・ポリシー・タイミングを持ちます — 欠けるのはペイロードだけです。[Replica]がさらに何を残すかを絞ります。
3 と 4 はコンソールからも Dashboard からも API からも実行時に切り替えられますが、いずれも設定ファイルには書き戻されません。再起動すればファイルの内容が優先されます。
プラットフォームごとにできること
| Chute iOS | Chute Mac | Chute tvOS | |
|---|---|---|---|
| アプリ内での確認 | ダッシュボード画面 — 概要・リクエスト・レスポンス、ボディ付き | Traffic タブ — 経路情報のみ、ボディ無し | セッション一覧 — 経路情報のみ、ボディ無し |
| アプリ内での MitM 切り替え | コントロールパネルのスイッチ(ライセンス必要) | メニューバー → Enable MitM(⌘M) | このプラットフォームにはスイッチが無い |
| アプリ内での記録切り替え | コントロールパネル → データダンプ(ライセンス必要) | メニューバー → Traffic Capture(⌘B) | コントロールパネル → データダンプ(ライセンス必要) |
| CA のインストール | アプリ内で行い、設定で信頼する | アプリ内で 1 ステップ | MDM または Apple Configurator のみ |
| Chute Dashboard からの接続 | USB ケーブルまたは Wi-Fi | 同じ Mac の 127.0.0.1 |
Wi-Fi |
| デバイスからファイルを取り出す | 共有シート | ファイルシステム | コンソールのみ、QR コード経由 |
次に読むもの
- Mac から iPhone をデバッグ — まっさらなスマートフォンから Mac 画面上の復号済みボディまで、全行程。
- Mac でのデバッグ — Mac 自身のトラフィック。ターミナルツールやプロセス単位の切り分けを含みます。
- Apple TV のデバッグ — ブラウザも共有シートも無く、自分では証明書もインストールできないデバイス。
- レプリカ — どの接続がボディを保持するか、そして何でもかんでも取得するのをやめる方法。
- モックと障害注入 — 固定レスポンス、エラーステータス、遅延の注入、そして Chute には本当にできないこと。
「何をしているのか」ではなく「動かない」が問いなら、代わりにトラブルシューティングから始めてください。とくに書き換えが効かないのはなぜ? — このセクションが最も多く生む問いがこれです。
本ページは英語版からの翻訳です。内容に相違がある場合は、英語版が優先されます。