Chute Dashboard

Chute Dashboard は無料の macOS アプリで、動作中の Chute — Wi-Fi または USB ケーブル経由の Chute iOS、あるいは同じ Mac 上の Chute Mac — に接続し、そのインスタンスが何をしているかを表示します:すべての接続とそれを決めたルールとポリシー、HTTPS 復号の対象ホストでは復号済みのリクエストとレスポンス、DNS の応答、UDP セッション。見ながらトラフィックを変えることもできます:MitM ホストリストと、書き換え・Mock の各ルールファミリーをその場で編集できます。

これは Web コンソールではありません。コンソールはカーネル自身が提供しブラウザーで開きますが、Dashboard は独立したアプリで、カーネルのバイナリ制御チャネルを通じて対話します。そのためデバイス側に必要なのは external-http-controller ではなく external-controller-access です。両者は重なる部分もあれば、それぞれにしかないものもあります — Dashboard が届かないものを参照してください。

Dashboard のインターフェースは本マニュアルと同じ言語にローカライズされています(アラビア語を除く。アラビア語のシステムでは英語で表示されます)。

Dashboard の接続を許可する

デバイスが許可するまで、何も待ち受けません。

Chute iOS — 設定エディターで 外部コントローラー → 外部コントローラーアクセス を開きます:

  1. Chuteダッシュボード/Chute CLIの接続を許可 をオンにします。
  2. ポートパスワード を設定します。パスワードは空にできず、自分で決めたものでなければなりません。ネットワークから到達できるリスナーは、空のパスワードや既定のパスワードでは起動を拒否します。
  3. 必要でない限り Wi-Fiからのアクセスを許可 はオフのままにします。オフが既定で、リスナーはスマートフォン自身の中にとどまります — USB ケーブルなら届きますが、Wi-Fi 上の他のデバイスからは届きません。オンにすると、そのネットワーク上でパスワードを知っている誰もが、この実行が見たすべてを読めるようになります。
  4. 保存して、トンネルを開始(または再起動)します。コントロールパネルに 外部アクセスポート: <ポート> が表示されます — この行がリスナーが立ち上がった確認です。

Chute Mac — 同じ 3 つの値は [General] にあります:

[General]
external-controller-access = password@127.0.0.1:6170

127.0.0.1 は今いる Mac だけに限定します。同じ Mac で動く Dashboard が必要とするのはまさにこれです。LAN のアドレスや 0.0.0.0 にすると他のマシンにも開きます。設定ウィンドウの General セクションに同じキーのフィールドがあります。

接続する

Dashboard は Chute 新規ダッシュボード ウィンドウで開きます。接続ごとに 1 つのウィンドウを持つので、複数のデバイスを同時に開けます。入り方は 2 つ:

フィールド どんなとき
リモート ホスト、ポート、パスワード デバイスの Wi-Fi アドレス(iPhone: 設定 → Wi-Fi → ⓘ)、またはこの Mac の Chute Mac なら 127.0.0.1。スマートフォン側で Wi-Fiからのアクセスを許可 がオンである必要があります。
USB ポート、パスワード iPhone がケーブルでこの Mac に接続され、この Mac を信頼していること。設定したのと同じポートを入力します — ケーブルのチャネルは Dashboard が自分で見つけます。Wi-Fiからのアクセスを許可 がオフでも動作し、スマートフォンが Wi-Fi に接続している必要すらないので、モバイル回線のトラフィックも見えます。

接続したことのあるマシンは マシン: に記憶され、次回はそこから選べます。

パスワードが違うとウィンドウに パスワードが一致しません と表示されます。デバイスがいなくなると — トンネルが止まった、ケーブルが抜かれた、スマートフォンがネットワークを変えた — Dashboard ウィンドウは 接続が切断されました と報告し 再接続 を提示します。自動再接続はありません。

ウィンドウ

ツールバーで 5 つのビュー — アクティブ最近DNSUDPMitM — を切り替え、フィルターフィルターバーの表示・非表示を切り替えます。左下のパネルはアップロードとダウンロードのリアルタイム速度で、クリックするとグラフが展開します。

アクティブ最近 のビューでは、ツールバーに 動作中のカーネル に作用する 2 つのスイッチもあり、各アプリのスイッチとまったく同じ働きをします:

  • トラフィックを記録トラフィック記録を無効化: リクエストとレスポンスのボディの取得(replica 設定)をオンにします。オフでも行は経路情報付きで表示されますが、データのタブは空のままです。
  • MitM を有効化(N ルール)MitM を無効化(N ルール): MitM ホストリストにある N 個のホストの HTTPS 復号をオンにします。デバイスに信頼された CA と少なくとも 1 つのホストが無いうちは、このスイッチは実質的に何もしません — HTTPS 復号のページを参照してください。

どちらのスイッチも設定ファイルは書き換えません。再起動すればファイルの内容に戻ります。

サイドバーは接続をクライアントごとにまとめます: すべてのクライアント、次にデバイス自身のクライアントの ローカル、この Chute をプロキシとして使う他のマシンの リモート。1 つを選ぶと、すべてのリストがそれに絞られます。デバイスが Chute Mac のときは、ローカルのクライアントは名前とアイコン付きのアプリケーションで、コンテキストメニューに Finder に表示 があります。

アクティブと最近

アクティブ はいま開いている接続、最近 はデバイスの履歴で、新しい順に、この実行の記録から読み戻されます。両方が同じ列を共有します:

ID カーネルの接続番号 — コンソールや各アプリが表示するのと同じ番号
日付、継続時間 いつ始まったか、どれだけ続いているか/続いたか
クライアント プロセス(Chute Mac)またはローカルアドレス
メソッド、サーバー、ステータス 取得したリクエストから解析したリクエスト行と応答
ポリシー ルールが選んだポリシー
アップロード、ダウンロード 各方向のバイト数
フラグ Chute がその接続に何をしたか — 下の凡例を参照

フラグ 列は、書いたルールが適用されているかを最も手早く知る方法です:

フラグ 意味
M 復号済み(MitM 傍受)
H ヘッダーが変更された
B ボディが変更された
R 書き換えルールが適用された
K サーバーではなく Map Local の Mock が応答した

最近は最大 5,000 行を保持します。リスト末尾の さらに読み込む がデバイスから次のページを取得し、リスト自体は数秒ごとに自動更新されます。アクティブのリストが 1 つの制御パケットに収まらないほど長いときは、表の下にカーネルが切り詰めた旨の注記が出ます — その行はデバイス上に存在し、閉じれば最近に現れます。

行を右クリックすると curl コマンドをコピー選択項目を HAR として書き出す… / CSV として書き出す…すべてを HAR として書き出す… / CSV として書き出す… が使えます。アクティブな行にはさらに 接続を切断 があり、デバイス上でその接続を閉じます。

注意: 1 行は 接続 であって、リクエストではありません。複数のリクエストを運んだ keep-alive 接続も 1 行のままで、取得されたデータにはそれらのメッセージが連続して入っています。表示されるヘッダーはそのうちの 1 つのリクエストのものです。そのため、ブラウザーでページを 1 つ開いても、ページのリソース数より少ない行しか生まれません。

フィルターバー

フィルターバーが絞るのは 表示 です。デバイスが何を記録するかは変えません — それにはデバイス側の [Replica] を使います。

コントロール 選択肢
ホスト/URL でフィルター… ホストと URL に対するテキスト一致
メソッド GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS、CONNECT
ステータス 1xx – 5xx
トラフィック アクティブ、完了、中断
種類 JSON、HTML、XML、画像、テキスト、バイナリ — レスポンスのコンテンツタイプから
所要時間 < 100ms、100ms–1s、1s–5s、> 5s
サイズ < 1 KB、1–100 KB、100 KB–1 MB、> 1 MB
MitM のみ 復号された接続のみ
変更済み ルールが変更した接続 — HBRK のいずれか

フィルターをクリア で全件に戻ります。

接続の詳細

行を開くと詳細ウィンドウになります。タブは左から:

一般 — リストにあるものを、余裕をもって並べたもの: リクエスト行とステータスコード、アウトバウンドモード、ポリシー、一致したルール、転送量とピーク速度、ローカルとリモートのアドレス、開始時間、SSL/MitM の状態(傍受済みヘッダー変更済みボディ変更済みモック済み)、そして 適用されたルール — この接続を変更した書き換え・Mock ルールのすべてを、ルール自身の文言で引用したもの。ここに現れないルールはこの接続に触れていません。

タイミング — 接続のセットアップにかかった時間の内訳を、カーネルが測ったまま:

計測の始点 → 終点
プロキシ準備時間 クライアントの接続が到着 → Chute が処理できる状態になる
DNS 解決 → 名前が解決される(ルールがアドレスを必要としないときはゼロ)
ルール判定時間 → ルールテーブルが決定する
リモート準備時間 → 選ばれたアウトバウンドが接続され準備完了になる
アクティブ それ以降、接続が閉じるまでのすべて

遅いリクエストはたいていこの行のどれか 1 つだけが遅く、どの行かがどこを見るべきかを教えてくれます: DNS なら DNS セクション、リモート準備ならポリシーやその先のサーバー、アクティブならアプリケーション自身です。

リクエストヘッダー / レスポンスヘッダー — ヘッダーを表形式で。リクエスト側は クエリパラメータCookie、レスポンス側は Cookie を分けて表示します。ルールが変更したヘッダーは強調表示されます。選択項目をコピー は選択した行をコピーします。

リクエストデータ / レスポンスデータ — 取得したボディを 16進数テキストJSON(検索付きの展開できるツリー)、画像フィット / 実際のサイズ)として表示します。multipart のボディはパートごとに分割されます。bin として書き出す は生のバイト列を保存します。データがあるのは、その接続の実行時に記録がオンで、かつホストが [Replica] のフィルターを通過した場合だけです。

注意: ボディは取得されたままの姿で表示されます。圧縮されたレスポンス — Content-Encoding: gzip — はここでは展開されないので、そのテキストと JSON の表示はノイズになります。16進数の表示と bin として書き出す でバイト列を取り出し、別の場所で展開してください。デバイスは 2 MiB を超えるボディの引き渡しを拒否し、16進数の表示は先頭 1 MiB を示します。

DNS と UDP

DNS はデバイスのリゾルバキャッシュです: 各ドメインとそれが解決されたアドレス、最初に答えたサーバー(Chute は設定されたすべてのサーバーに同時に問い合わせます — DNS を参照)、TTL、レコードタイプ。右クリックで ドメインをコピーIP をコピーDNS サーバーをコピー ができます。

UDP は UDP セッション — ホスト、サーバー、ポリシー、状態 — を一覧します。UDP にボディはありません。

MitM ツール

MitM ビューはデバイス上の 5 つのルールファミリーを 5 つのパネルで管理します: MitM ルールヘッダー書き換えボディ書き換えMap LocalMap Remote。すべてに共通すること:

  • リストは 動作中のカーネル が持つルールのコピーで、出発点は設定ファイルが宣言した内容です。
  • ルールを追加するとデバイスへ送られ、デバイスは設定行を解析するのと同じように解析します。解析できない行は保存されず、エラーとして拒否されます。
  • 変更は動作中のカーネルにだけ存在します。設定ファイルには 書き戻されず、リロードや再起動でファイルの内容に戻ります。パネルで効くルールを見つけたら、それを設定に書き込んでください。
  • ルールが適用されているかどうかは、リストの フラグ 列(RK)と詳細ウィンドウの 適用されたルール に現れます。

MitM ルール — 1 ルールにつき 1 つのホストパターン、host[:port][/path]、除外は - 接頭辞: *.google.comapi.example.com:8443api.example.com/v2/*-*.apple.comHTTPS 復号ページの hostname キーと同じ文法です。ツールバーの MitM スイッチの数字はこのリストの長さです。

ヘッダー書き換え — フォーム: URL 正規表現リクエスト または レスポンス追加 / 置換 / 削除ヘッダー名ヘッダー値。設定行は Dashboard が組み立てます。文法はヘッダー書き換えのページにあります。

ボディ書き換え — 設定行を 1 行、ファイルに書くとおりに入力します: url-regex type pattern replacement。type は responserequestjsonpath-responsejsonpath-request のいずれかです。ボディ書き換えを参照してください。

Map LocalURL 正規表現ファイルパス参照…)、任意の レスポンスヘッダー(1 行に 1 つ、Name: Value)。

注意: ファイルパスは Chute を動かしているデバイス がリクエスト時に読みます。Dashboard が同じマシンの Chute Mac に接続しているなら Mac 上のパスに意味がありますが、iPhone に接続しているなら意味がありません — スマートフォンに /Users/… はありません。リモートのデバイスには、ルールの base64= 形式で内容をインラインにし(モックレスポンスを参照)、デバイス自身のエディターか Web コンソールから追加するか、ファイルを URL で配信して Map Remote を使ってください。

Map RemoteURL 正規表現ターゲット種類: header はリクエストをその場で書き換え(Surge の Map Remote)、302307 はクライアントをリダイレクトし、rejectreject-200reject-imgreject-dict はサーバーに接続せずに応答します。URL書き換えを参照してください。

書き出し

  • HAR — リストの右クリックから: 選択した行またはすべてを HAR 1.2 ファイルとして。ブラウザーの開発者ツール(Network → インポート)、Charles、Proxyman で開けます。1 行につき 1 エントリで、記録がオンだったときはボディも含まれます。
  • CSV — リストの列を、表計算ソフト向けに。
  • curl コマンドをコピー — そのリクエストをヘッダー付きで Mac から再送する curl 呼び出し。
  • bin として書き出す — 取得されたままのボディ 1 つ。

Dashboard の HAR は取得済みのデータから組み立てられます。カーネル自身も HAR を作れます — エントリごとの _kl オブジェクトに一致したルール、ポリシー、適用された書き換えを収め、送受信のタイミングはキャプチャから取ったもので — コンソールの Export HAR(HAR をエクスポート)GET /api/connections/export?format=har からです。

Dashboard が届かないもの

Dashboard はカーネルのバイナリ制御チャネルで話し、カーネルにできることの一部は HTTP 制御 API にしかありません。以下は Web コンソールか API を使ってください:

  • 診断バンドル、健全性、拒否カウンター、イベント
  • コンソールの Rules ページにあるルールごとの適用回数と、それが答える このルールは一度でも発動したか
  • 上述のカーネル自身の HAR
  • ログ

頼りにする前に知っておきたいことがもう 2 つ:

  • Chute Android はバイナリチャネルを提供しないので、Dashboard は接続できません。Android 自身のリモートダッシュボードと Web コンソールが同じ範囲をカバーします。
  • iPhone と Apple TV では、HTTPS 復号とボディの取得はライセンスが必要な機能です。ライセンスが無くても Dashboard は接続でき、すべての接続をルールとポリシー付きで表示しますが、HTTPS の行は不透明な CONNECT トンネルのまま、データのタブは空のまま、MitM スイッチは効きません。ライセンスと有効化を参照してください。
S. Smart Rabbit LLC © All Rights Reserved            updated 2026-09-01 12:33:24

本ページは英語版からの翻訳です。内容に相違がある場合は、英語版が優先されます。

results matching ""

    No results matching ""