その他オプション

[General]
ipv6 = true
loglevel = notify

skip-proxy = 127.0.0.1, 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12, 100.64.0.0/10, localhost, *.local

tun-excluded-routes = 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12
tun-included-routes = 192.168.1.12/32

共通オプション

完全なIPv6サポートを有効にする(デフォルト: true)

ipv6 = true

loglevel(デフォルト: warning)

loglevel = notify

none、fatal、warning、notify、info、verboseのいずれか。verboseを日常使用で有効にすることは推奨されません。パフォーマンスが大幅に低下するためです。

skip-proxy

skip-proxy = 127.0.0.1, 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12, 100.64.0.0/10, localhost, *.local

iOS版では、このオプションはこれらのドメイン/IP範囲への接続をChuteプロキシではなくChute TUNで処理するよう強制します。macOS版では、「システムプロキシとして設定」が有効な場合にこれらの設定がシステムに適用されます。このオプションは一部のアプリとの互換性問題を修正するために使用されます。

  • 単一のドメインを指定するには、ドメイン名を入力します(例: apple.com)。
  • ドメイン上の全てのWebサイトを指定するには、ドメイン名の前にアスタリスクを使用します(例: *apple.com)。
  • ドメインの特定の部分を指定するには、各部分を指定します(例: store.apple.com)。
  • IPアドレスでホストまたはネットワークを指定するには、192.168.2.11のような特定のIPアドレス、または192.168.2.*や192.168.2.0/24のようなアドレス範囲を入力します。

注意: IPアドレスまたはアドレス範囲を入力した場合、そのアドレスを使用してそのホストに接続する場合にのみプロキシをバイパスでき、そのアドレスに解決されるドメイン名でホストに接続する場合にはバイパスできません。


プロキシサーバーのリッスン

interface = 127.0.0.1
port = 8118
socks-interface = 127.0.0.1
socks-port = 8119

interface / portはHTTPプロキシサーバーのリッスンアドレスとポートを制御します(デフォルト127.0.0.1:8118)。socks-interface / socks-portはSOCKS5プロキシサーバーを制御します(デフォルト127.0.0.1:8119)。

互換性エイリアス: doh-serverdohのエイリアスとして受け付けられます。http-listen / socks5-listen(例: 0.0.0.0:6152[::]:6153、またはポート番号のみ)は上記のinterface/port設定にマッピングされます。ワイルドカードのリッスンホスト(0.0.0.0::*)はallow-wifi-access = trueも設定します。


インバウンドプロキシ認証

http-auth = username:password

ChuteのHTTPおよびSOCKS5プロキシサーバーを使用する前に、クライアントに認証を要求します。この行を繰り返して複数の認証情報を許可できます。


システムリクエストをバイパス

bypass-system = true

有効にすると、システムプロセスから送信されたリクエストはChuteの処理をバイパスします。

デフォルト: true


常に実IPを使用

always-real-ip = *.example.com, tracker.example.org

ChuteがハイジャックされたDNSクエリに対して偽のIPアドレスを提供する場合(hijack-dnsを参照)、このカンマ区切りリストにマッチするホスト名には、代わりに常に実際に解決されたIPアドレスが返されます。ワイルドカードがサポートされています。


既存の接続を中断

interrupt-exist-connections = true

有効にすると、任意のポリシーグループで選択されたポリシーを(URLテスト、フォールバック、ロードバランス、SSID、または手動選択によって)変更した際に、古いポリシーを使用していた既存の接続を正常に切断します。これにより、接続が古いプロキシに残り続けることなく、新しく選択されたプロキシを即座に使用するようになります。

影響を受ける各接続は、強制切断される前に3秒のタイムアウトで正常に閉じられます。

デフォルト: false。これはグローバル設定であり、全てのポリシーグループに影響します。


Network Framework(macOS / tvOS)

network-framework = true

アウトバウンド接続にApple Network.frameworkを有効にします。Network.frameworkを使用すると、サポートされているプラットフォームでより良いパフォーマンスと最新のTLSスタック統合が得られます。

デフォルト: macOSではtrue、iOSとtvOSではfalse


単純なホスト名を除外

exclude-simple-hostnames = true

有効にすると、単純なホスト名(ドットを含まない単一ラベル名、例: localhost)へのリクエストはプロキシルールをバイパスし、ローカルで解決されます。これにより、ローカルネットワーク名に対する不要なDNSルックアップを回避できます。

Chute Macでは、初回起動時に一度だけ実行されるマイグレーションによってこのオプションがデフォルトで有効になります。ユーザーが明示的にオフに設定した場合は、その設定が尊重されます。

デフォルト: false


データベース記録を無効にする

disable-db-record = true

有効にすると、Chuteはトラフィックレコードのローカルデータベースへの書き込みを停止します。これによりパフォーマンスが向上しストレージ使用量が削減されますが、Chute Dashboardでトラフィック履歴が利用できなくなります。

デフォルト: false


menu-bar-show-speed = true

有効にすると、Chute Macは現在のアップロードおよびダウンロード速度をメニューバーに表示します。

デフォルト: false


他のDNSサーバーをハイジャック

hijack-dns = 8.8.8.8:53

デフォルトでは、ChuteはChute DNSアドレス(198.18.0.2)に送信されたDNSクエリに対してのみ偽のIPアドレスを返します。標準DNSに送信されたクエリは単に転送されます。

一部のデバイスやソフトウェアは常にハードコードされたDNSサーバーを使用します(例えば、Google Speakersは常に8.8.8.8を使用します)。このオプションを使用してクエリをハイジャックし、偽のアドレスを取得できます。

hijack-dns = *:53を使用して全てのDNSクエリをハイジャックすることもできます。


除外ルート

tun-excluded-routes = 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12

Chute VIFはTCPおよびUDPプロトコルのみを処理できます。このオプションを使用して特定のIP範囲をバイパスし、全てのトラフィックを通過させます。

注意: このオプションは拡張モードのVIF(utun)タイプでのみ機能し、PacketTunnel VPNタイプを使用する場合は効果がありません。Chuteプロキシサーバーによって処理されるリクエストは影響を受けません。'skip-proxy'と'tun-excluded-routes'を組み合わせて、特定のHTTPトラフィックがChuteをバイパスするようにしてください。

このオプションはシステムエラーENOMEM(メモリを割り当てられません)を引き起こす可能性があります。これはiOSシステムのバグのようです。可能であればこのオプションを使用しないでください。


含めるルート

tun-included-routes = 192.168.1.12/32

デフォルトでは、Chute VIFインターフェースは自身をデフォルトルートとして宣言します。しかし、Wi-Fiインターフェースがより小さいルートを持っているため、一部のトラフィックがChute VIFインターフェースを通過しない場合があります。このオプションを使用してより小さいルートを追加します。

注意: このオプションは拡張モードのVIF(utun)タイプでのみ機能し、PacketTunnel VPNタイプを使用する場合は効果がありません。


プロトコルスニッフィング

sniffing-enabled = true
sniffing-timeout = 100

Chuteは初期バイトを検査することで接続の実際のプロトコルを検出できます。これにより、非HTTPインバウンド接続でもPROTOCOL,TLS,Proxyのようなルールが正しく機能します。

sniffing-enabled(デフォルト: false)

sniffing-enabled = true

TCP接続のプロトコル検出を有効にします。

sniffing-timeout(デフォルト: 100ms)

sniffing-timeout = 200

プロトコルを判断するために初期データを待つ最大時間(ミリ秒)。遅い接続でプロトコル検出が失敗する場合は、この値を増やしてください。


QUICのブロック

block-quic = auto

検出されたQUIC(HTTP/3を含む)トラフィックをChuteが拒否するかどうかを制御します。QUICはUDP上で動作するため、ChuteのHTTP MitMでは復号できません。QUICを拒否すると、対応するクライアントにTCPでの再試行を促し、TCPベースのプロキシ処理や、設定済みの場合はHTTPS復号を適用できるようになります。

動作
off QUICのグローバルブロックを適用しません(デフォルト)。検出されたQUICトラフィックは通常のルーティングルールに従います。
on DIRECTにルーティングされたトラフィックを含め、検出されたすべてのQUICフローを拒否します。
auto 最終的な送信ポリシーがプロキシの場合にのみ、検出されたQUICを拒否します。DIRECTにルーティングされたトラフィックは許可され、REJECTにルーティングされたトラフィックはそのルールによって引き続き拒否されます。

TUN経由のトラフィックでは、拒否されたQUICフローにICMP/ICMPv6 Port Unreachableメッセージを返すため、対応するクライアントはQUICのタイムアウトを待たずにTCPへフォールバックできます。

block-quicのQUIC検出は自動的に行われ、sniffing-enabledは必要ありません。sniffing-enabledはTCPのプロトコルスニッフィングを制御します。QUICフローをルール単位で処理する場合は、PROTOCOL,QUIC,...ルールを使用してください。


TUNをバイパス

bypass-tun = 192.168.0.0/16, 10.0.0.0/8

skip-proxyと似ていますが、TUN/VIFルーティングレベルで動作します。これらのIP範囲への接続はTUNインターフェースを完全にバイパスし、システムネットワークスタックを直接通過します。

注意: このオプションは拡張モードのVIF(utun)タイプでのみ機能します。PacketTunnel VPNタイプを使用する場合は効果がありません。


拒否時にエラーページを表示

show-error-page-for-reject = true

有効にすると、Chuteは拒否されたリクエストに対して接続を単に切断する代わりに、ユーザーフレンドリーなエラーページを返します。


楽観的DNS

optimistic-dns = false

有効にすると、Chuteはバックグラウンドでレコードを更新しながら、キャッシュされたDNS結果を即座に返します。これにより、古いDNSレコードを返す可能性と引き換えに接続レイテンシが削減されます。

デフォルト: true。無効にするにはoptimistic-dns = falseを設定してください。


Wi-Fiアクセスを許可

allow-wifi-access = true

同じネットワーク上の他のデバイスから Chute の HTTP / SOCKS5 プロキシポートに到達できるようにします。両方のリスナーのバインドアドレスを 0.0.0.0 に広げる動作です。Surge 形式の設定(および sing-box インポート時の allow-lan マッピング)はこのフラグだけを持ち、interface は既定の 127.0.0.1 のままなので、フラグ自身がバインドアドレスを広げる必要があります。

このフラグと明示的なワイルドカード interface は同じ意図の二通りの書き方で、Chute は両者の和集合を取ります。すでに 0.0.0.0 と書かれた設定の動作は変わりません。フラグを変更すると両方のリスナーが再バインドされるため、アクセスの取り消しは再起動を待たずリロード時に反映されます。

これらはプロキシポートであり、http-auth を設定しない限り認証はありません。自分の管理外のネットワークでは資格情報も設定してください。


管理設定

#!MANAGED-CONFIG https://example.com/config.conf interval=86400 strict=false

先頭行に #!MANAGED-CONFIG ヘッダーを持つ設定は、そのURLから自動的に再取得されます。ヘッダーのパラメータと更新の動作についてはマネージド設定を参照してください。


レプリカ / トラフィック記録

replica = true

[General]replica キー(replica = true)がトラフィック記録を有効にします。[Replica] セクションは Chute Dashboard に表示される内容のフィルタリングを担当し、そのキーは Replica に記載されています。


外部コントローラーアクセス(Chute Dashboard)

external-controller-access = password@0.0.0.0:6155

Chute Dashboardが使用するリモートコントロールサーバーを起動します。値はpassword@host:portです。パスワードの前にオプションでユーザー名を付けられます(user:password@host:port)。iOSでは、付随するUSBチャンネルがport + 1で開かれます(macOSでは開かれません)。 接続方法は Chute Dashboard のページにあります。


HTTPコントロールAPIとWeb UI

[General]
external-http-controller = 127.0.0.1:9090
external-http-secret = your-secret-token
external-http-ui = true
external-http-cors = false

Chuteは、ClashやSurgeのダッシュボードと同様の組み込みHTTPコントロールAPIとWebベースの管理UIを提供します。APIはRESTエンドポイントを通じてカーネルステータス、トラフィック、接続、DNS、ポリシー制御、設定管理を公開します。

external-http-controller(デフォルト: 無効)

external-http-controller = 127.0.0.1:9090

HTTP 制御サーバーのアドレスとポート。ローカル限定にするには 127.0.0.1 を使います。ループバック以外のアドレス(例: 192.168.1.5:9090)にバインドする場合は external-http-secret の明示が必須です。指定がなければサーバーは起動を拒否し、何が足りないかをログに残します。

ワイルドカードアドレス(0.0.0.0::*)はこの検査ではループバック以外として扱われます。すべてのインターフェースで待ち受ける、つまりローカル限定の正反対だからです。受け付けられる書き方は 0.0.0.0:9090*:9090(同じ意味)、IPv6 なら [::]:9090 です — 裸の :::9090 は自動的に角括弧で囲まれます。解析できないアドレスは、コントローラーを黙って無効にする代わりに設定エラーとして報告されます。127.0.0.0/8 全体がループバックであり、127.0.0.1 だけではありません。

external-http-secret(デフォルト: 自動生成されたトークン)

external-http-secret = your-secret-token

API 認証に使う Bearer トークン。リクエストにはヘッダー Authorization: Bearer <secret> が必要です。トークンはこのヘッダーでのみ受け付けられ、クエリパラメータでは渡せません。比較は定数時間で行われます。認証失敗は 401{"ok": false, "error": {"code": "unauthorized", "message": "missing or invalid token"}} を返します。保護されるのは /api/* と Clash 互換エイリアスのみで、Web UI の静的アセットにトークンは不要です(external-http-ui = false ではそれ自体が無くなり、ページは 404 になります)。

このキーが無い場合、Chute は認証なしで配信するのではなくトークンを生成します。 生成されたトークンは Chute の共有フォルダー内の control-token に所有者のみ読み取り可能な権限で書き出されます — 設定ファイルの隣ではなく、iOS と tvOS では App Group コンテナ、Android ではアプリの private データディレクトリです。再起動後も使い回され、各アプリが表示します(Web コンソールを開くを参照)。制御 API は接続データベースを渡すことができ、その記録には実行中に見たすべての URL・ヘッダー・プロセス名が含まれます。認証なしが既定であってよい理由はありません。

それでも認証なしで配信したい場合は、設定で明示してください:

external-http-secret = none

これが受け付けられるのはループバックへのバインドのときだけです。ループバック以外では、none もキー無しも不十分で、制御サーバーは起動を拒否し、何が必要かを伝えます。

アップグレード時の注意: 「external-http-secret が無い=認証なし」に依存していた場合、ローカルのスクリプトは 401 を受け取るようになります。アプリから生成トークンを読み取るか、external-http-secret = none と書いて従来の動作を明示的に選んでください。

external-http-ui(デフォルト: true)

external-http-ui = true

有効にすると、Chuteはコントローラーアドレスで組み込みWeb UIを提供します。Web UIは概要ダッシュボード、接続管理、DNS検査、トラフィック監視、ポリシー制御、設定編集を提供します。APIを有効にしたままUIを無効にするにはfalseに設定します。

Web コンソールを開く

コンソールは制御サーバーのアドレスで提供されます。各アプリはアドレスとトークンを渡してくれます — 自動生成されたトークンも含めてで、そうでなければ読む手段がありません:

  • Chute Mac: メニューバー → Web コンソールを開く、および Web コンソールのトークンをコピー。接続の詳細ウィンドウにも リクエストと履歴 があり、コンソールを開きます — 開くのはホームで、その接続そのものではありません。
  • Chute iOS: コントロールパネル → Web UI の行 → 開くアドレスをコピーアクセストークンをコピー
  • Chute tvOS: コントロールパネルには Web UI スイッチの下に Web UI アドレス という独立した行があり、ホストとポートを表示します。選択すると、リスナーが他のデバイスから到達可能なら QR コードが表示されます — サインイン用トークンは画面ではなくコードの中にだけ入っています。コントローラーがループバックにバインドされている場合は代わりに説明が表示されます。ループバックのコンソールはスマートフォンから開けないからです。
  • Chute Android: コントロールパネルはアドレスを HTTP API スイッチのサブタイトルとして表示し、別に 生成されたアクセストークン の行があってタップでコピーできます — この行はカーネルがトークンを生成したときにだけ現れ、自分で設定したシークレットは決して表示されません。

これらが示すアドレスはトークンをクエリパラメータとして含みます。ページは読み込み時にそれを消費してアドレスバーから取り除くため、リンクを開くだけでサインインが完了し、32 桁の 16 進数を書き写す必要はありません。


external-http-cors(デフォルト: false)

external-http-cors = true

APIレスポンスにCORS(Cross-Origin Resource Sharing)ヘッダーを有効にします。Web UIやサードパーティツールが異なるオリジンからAPIにアクセスする必要がある場合に便利です。

APIエンドポイント:

メソッド エンドポイント 説明
GET /api/status ランタイムステータス、ポート、稼働時間
GET /api/traffic グローバルおよびポリシーごとのトラフィックカウンター
GET /api/connections 現在のアクティブな接続
DELETE /api/connections/:id 接続を閉じる
GET /api/connections/history 履歴接続レコード
GET /api/connections/processes プロセスごとの接続統計
GET /api/connections/:id/request 接続のキャプチャされたリクエストデータ
GET /api/connections/:id/response 接続のキャプチャされたレスポンスデータ
GET /api/dns DNSキャッシュレコード
DELETE /api/dns/cache DNSキャッシュを消去
DELETE /api/dns/records/:domain 単一のDNSレコードを削除
GET /api/config 現在の設定
PUT /api/config 設定を再読み込み
POST /api/config/validate 設定を解析してエラーを報告する(読み込みはしない)
GET /api/policies ポリシーグループと現在の選択
PUT /api/policies/:group ポリシーグループの選択を変更
PUT /api/mode アウトバウンドモードを設定
GET /api/features 機能スイッチの状態
PUT /api/features/mitm MitMを切り替え
PUT /api/features/record-traffic トラフィック記録を切り替え
GET /api/rules 読み込まれたルールと、命中した書き換えルール
POST /api/rules/match リクエストがどこへ送られるか(実際には送らない)
GET /api/logs 最近のログエントリ
GET /api/loglevel 現在のログレベルと、書き出し中のセクション
PUT /api/loglevel 再起動せずにログレベルやセクションを変更
GET /api/health エンジンの健全性: 拒否数、世代、フットプリント、前回の終了
GET /api/events この実行で注目すべき出来事
GET /api/tailscale Tailscale エンジンの現在の状態
POST /api/diagnostics/ping ICMP または TCP による到達性プローブ
POST /api/diagnostics/dns-query 実行中のリゾルバでドメインを解決
POST /api/diagnostics/egress-probe 現在の出口 IP を検出
POST /api/diagnostics/url-test/:policy ポリシーのレイテンシテストを実行
POST /api/diagnostics/bundle 秘匿処理済みの診断アーカイブを作成
GET /api/connections/export 接続を HAR 1.2 として書き出し
GET /api/rewrites すべての書き換え/Mock 系統と MitM ホスト一覧
GET /api/rewrites/:family 1 つの系統のルール
POST /api/rewrites/:family ルールを追加
DELETE /api/rewrites/:family/:id ルールを削除
DELETE /api/rewrites/:family 系統をクリア
GET /api/mitm/hosts 現在復号しているホスト
POST /api/mitm/hosts ホストを追加
DELETE /api/mitm/hosts/:host ホストを削除
DELETE /api/mitm/hosts 一覧をクリア

エンドポイントの注意点:

  • GET /api/connectionslimit(正の整数、デフォルトおよび最大は1000)とcursor(カーソルより大きいidを持つ接続のみを返す)を受け付けます。レスポンスのdataにはconnectionstotalpage_sizehas_moreが含まれ、さらにページがある場合はnext_cursorも含まれます。
  • GET /api/connections/historylimit(デフォルト100、最大1000)とcursor/before(同義。両方を渡すと拒否されます)を受け付けます。
  • GET /api/connections/:id/request.../response{"connection_id": <id>, "data": "<base64>"}を返します。2 MiBを超えるキャプチャは413を返します。
  • GET /api/configは、機密値(http-authexternal-http-secretca-p12ca-passphrase、WireGuardの鍵など)を<redacted>に置き換えた設定を返します — 結果をそのままPUT /api/configに送り返さないでください。プレースホルダーがそのまま設定に書き込まれてしまいます。
  • PUT /api/configはJSON {"configuration": "<full text>"}、または生の設定テキストをリクエストボディとして受け付けます(上限1 MB)。成功するとカーネルが再読み込みされます — 実行されていなかった場合は起動します。
  • PUT /api/policies/:groupは、ボディのキーpolicynameselectedselectのうち最初に存在するものから選択値を取ります。値はポリシー名でも、数値インデックスの文字列でも構いません。特殊なグループ名GLOBALはグローバル選択ポリシーを設定します。
  • PUT /api/modeはJSON数値を必要とします: {"mode": 0}0はルール、1は直接接続、2はプロキシです。
  • PUT /api/features/mitmPUT /api/features/record-traffic{"enabled": true}を取ります。
  • GET /api/logssince(Unix秒)を受け付けます。インメモリバッファは最新の1000エントリを保持し、各エントリは{timestamp, level, section, message}です。
  • GET /api/health はエンジンが何を保持しているか、直近で何を理由に拒否したか、そして前回の実行がどう終わったか(cleanuncleansuspected_memoryトラブルシューティングを参照)を返します。
  • GET /api/events はメモリ上のリングを返します。?persisted=1 はこの実行の保存済み履歴を読み、記録が無効なら available: false を返します。
  • [Tailscale] セクションが無い場合、GET /api/tailscalestate: "idle" を返します。これはエラーではなく正常な答えです。
  • POST /api/diagnostics/* の各プローブはクエリ文字列でも JSON ボディでも引数を受け取り、10 秒で打ち切られ、必ず 1 回だけ応答します。url-test/:policy は定義されていないポリシー名を拒否し、REJECT を計測したりはしません。
  • POST /api/rules/match は接続を開かずにリクエストがどこへ行くかを答えます。host(または host とポートを取り出すための url)、port(既定 443)、および任意で ipprotocolprocessprocess_pathsrc_ipsrc_portin_portin_typein_userin_namenetworkssidbssidfrom_tunuser_agent を受け取ります — 知らないフィールドは無視されず、受理可能な一覧とともに拒否されます。応答には matched(ルールの行、種別、指名するポリシー、そしてグループが現在指している resolved_policy)、policyneed_resolve、そして算出の根拠となった rule_countmatch_generation が含まれます。ドメインは 2 回マッチされる(名前で 1 回、アドレスが判明してからもう 1 回)ため passes は 1 パスにつき 1 項目です。ip を渡さない場合は解決前のパスだけになり、応答は note でそう伝えます。explain=true を加えると、同じくマッチし得た候補ルールを最大 50 件、展開しなかったルールセットの数とともに返します。
  • POST /api/config/validate は設定を解析して捨てます。動作中のカーネルは何も取り込みません。{"configuration": "<full text>"} として送るか、生のテキストをそのまま送ってください。応答は validerror_countadvisory_countrule_countpolicy_count、および {line, severity, content, error} からなる errors の一覧です — severity拒否された行と、留保付きで受理された行を区別し、content は問題の行(伏字済み。壊れた [Proxy] 行はたいてい、それを壊した当のパスワードを抱えているからです)。PUT /api/config の前に使ってください。あちらはデバッグ中の実行を再起動してしまいます。
  • GET /api/loglevel は現在の levelnslog_level、ファイルに書き出し中の sections、そして設定可能な available_levels / available_sections を返します。PUT(または PATCH)は levelsections、またはその両方を受け取ります。sections はセクション名の配列か文字列 "all" で、空の配列は拒否されます — 記録を止めたい場合は levelnone にしてください。この方法でレベルを変えても実行は再起動されません。それがこの API の意義です:ファイルに書いた loglevel = verbose は再読み込みが必要で、再読み込みは見ようとしていたものを失わせます。
  • GET /api/rulesrewrite_hits も返します。この実行で命中した書き換え/Mock ルールとその回数です。そこに現れないルールは一度も命中していません — 「書き換えが効かない」の最も一般的な理由がこれです。 この表が追跡するのは最大 512 種類のルールで、それを超えた分は rewrite_hit_dropped_rules として報告されます。
  • POST /api/rewrites/:family{"rule": "<configuration line>"} を受け取ります。設定ファイルに書くのと同じ一行です。解析できない行は 400 で拒否され、決して命中しないルールとして保存されることはありません。:familyurl-rewriteheader-rewritebody-rewritemock のいずれかです。この方法で追加したルールは実行中のカーネルにのみ存在し、設定ファイルには書き戻されません。
  • GET /api/connections/export?format=harHAR 1.2 ドキュメントを、POST /api/diagnostics/bundlezip を返します。どちらもファイルなので、他のエンドポイントと違い {"ok": ..., "data": ...} のエンベロープには包まれません。exportsource(既定は current、ほかに history)、limit(既定 100、最大 300)、ids、および取得済みペイロードを含める bodies=1 を受け付けます。各エントリには HAR に対応するフィールドが無い情報 — 選ばれたポリシー、命中したルール、発動した書き換え — が _kl オブジェクトとして付きます。

— ステータスを読み取り、ポリシーグループを切り替える:

curl -H "Authorization: Bearer your-secret-token" http://127.0.0.1:9090/api/status
{"ok":true,"data":{"running":true,"outbound_mode":0,"mitm":false, ...}}

curl -X PUT -H "Authorization: Bearer your-secret-token" \
     -d '{"policy": "ProxyB"}' http://127.0.0.1:9090/api/policies/MainGroup
{"ok":true,"data":{"outbound_mode":0,"selectable_groups":[...], ...}}

— リクエストを送る前に、それがどこへ行くかを尋ねます:

curl -X POST -H "Authorization: Bearer your-secret-token" \
     -d '{"url": "https://api.example.com/v1/orders", "explain": true}' \
     http://127.0.0.1:9090/api/rules/match
{"ok":true,"data":{"policy":"MainGroup","matched":{"rule":"DOMAIN-SUFFIX,example.com,MainGroup", ...}, ...}}

再現している最中に、実行を再起動せずログを 1 つのサブシステムに絞ります:

curl -X PUT -H "Authorization: Bearer your-secret-token" \
     -d '{"level": "verbose", "sections": ["MitM", "DNS"]}' \
     http://127.0.0.1:9090/api/loglevel

注意: この機能はデフォルトで無効です。全てのレスポンスは、成功時には{"ok": true, "data": {...}}、エラー時には{"ok": false, "error": {"code": "...", "message": "..."}}のエンベロープを使用します。リクエストボディの上限は1 MBです。

PUTエンドポイントはPATCHも受け付けます。サードパーティのダッシュボード向けに、Clash互換のエイリアスパスが利用可能です: /version/traffic/connections/configs/proxies/rules — パスには到達できますが、レスポンスはClashのスキーマではなくChute自身のエンベロープとフィールド名を使用するため(/version{"name", "run_id"}のみを返します)、Clashダッシュボードはそのままでは動作しません。


クライアントフィンガープリント

global-client-fingerprint = chrome

独自の fingerprint を持たないすべてのポリシーにTLSクライアントフィンガープリントを設定します。 ポリシー側の値が常に優先されるため、これは上書きではなくデフォルト値です。

指定できる値は chromefirefoxsafariios に加えて edge360qqandroidrandom で、後者はいずれもChromeとして扱われます。認識できない値は 無視され、プラットフォームのTLSスタックが使用されます。

デフォルト: 空(プラットフォームのTLSスタック)。読み取るのはTrojan、VMess、VLESS、 ShadowTLSのポリシーだけです。

S. Smart Rabbit LLC © All Rights Reserved            updated 2026-09-05 00:43:47

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

results matching ""

    No results matching ""