その他オプション
[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アドレスまたはアドレス範囲を入力した場合、そのアドレスを使用してそのホストに接続する場合にのみプロキシをバイパスでき、そのアドレスに解決されるドメイン名でホストに接続する場合にはバイパスできません。
既存の接続を中断
interrupt-exist-connections = true
有効にすると、任意のポリシーグループで選択されたポリシーを(URLテスト、フォールバック、ロードバランス、SSID、または手動選択によって)変更した際に、古いポリシーを使用していた既存の接続を正常に切断します。これにより、接続が古いプロキシに残り続けることなく、新しく選択されたプロキシを即座に使用するようになります。
影響を受ける各接続は、強制切断される前に3秒のタイムアウトで正常に閉じられます。
デフォルト:
false。これはグローバル設定であり、全てのポリシーグループに影響します。
Network Framework(macOS / tvOS)
network-framework = true
アウトバウンド接続にApple Network.frameworkを有効にします。これはmacOSとtvOSではデフォルトで有効、iOSでは無効です。Network.frameworkを使用すると、サポートされているプラットフォームでより良いパフォーマンスと最新のTLSスタック統合が得られます。
デフォルト: macOS/tvOSでは
true、iOSではfalse。
単純なホスト名を除外
exclude-simple-hostnames = true
有効にすると、単純なホスト名(ドットを含まない単一ラベル名、例: localhost)へのリクエストはプロキシルールをバイパスし、ローカルで解決されます。これにより、ローカルネットワーク名に対する不要なDNSルックアップを回避できます。
デフォルト:
false。
データベース記録を無効にする
disable-db-record = true
有効にすると、Chuteはトラフィックレコードのローカルデータベースへの書き込みを停止します。これによりパフォーマンスが向上しストレージ使用量が削減されますが、Chute Dashboardでトラフィック履歴が利用できなくなります。
デフォルト:
false。
メニューバー速度表示(Macのみ)
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,HTTPS,Proxyのようなルールが正しく機能します。
sniffing-enabled(デフォルト: false)
sniffing-enabled = true
TCP接続のプロトコル検出を有効にします。
sniffing-timeout(デフォルト: 100ms)
sniffing-timeout = 200
プロトコルを判断するために初期データを待つ最大時間(ミリ秒)。遅い接続でプロトコル検出が失敗する場合は、この値を増やしてください。
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 = true
有効にすると、Chuteはバックグラウンドでレコードを更新しながら、キャッシュされたDNS結果を即座に返します。これにより、古いDNSレコードを返す可能性と引き換えに接続レイテンシが削減されます。
Wi-Fiアクセスを許可
allow-wifi-access = true
携帯電話/従量制接続のコンテキストで有効にすると、ChuteはWi-Fi接続を介して機能し続けます。これはmacOS固有です。
管理設定
Chuteは設定ファイルの先頭にある#!MANAGED-CONFIGヘッダーを介したリモート管理設定をサポートしています:
#!MANAGED-CONFIG https://example.com/config.conf interval=86400 strict=false
| パラメータ | 必須 | デフォルト | 説明 |
|---|---|---|---|
<url> |
はい | — | 設定を取得するURL |
interval |
いいえ | 86400 (24h) | 更新間隔(秒) |
strict |
いいえ | false | trueの場合、管理設定はローカルで上書きできません |
Chuteは指定されたURLから定期的に設定を再取得して適用します。厳格な管理設定へのローカル編集は永続化されません。
レプリカ / トラフィック記録
[Replica]セクションはトラフィック記録の動作とフィルタリングを制御します:
[Replica]
hide-apple-request = true
hide-udp = true
hide-crashlytics-request = true
use-keyword-filter = false
keyword-filter = example
| キー | 型 | デフォルト | 説明 |
|---|---|---|---|
hide-apple-request |
Boolean | false | Appleサービスリクエストをトラフィックログから非表示 |
hide-udp |
Boolean | false | UDPトラフィックをトラフィックログから非表示 |
hide-crashlytics-request |
Boolean | false | Crashlyticsリクエストをトラフィックログから非表示 |
use-keyword-filter |
Boolean | false | キーワードベースのトラフィックフィルタリングを有効化 |
keyword-filter |
String | — | トラフィックレコードをフィルタするカンマ区切りキーワード |
[General]のreplicaキー(replica = true)はトラフィック記録を有効にします。[Replica]セクションを使用して記録内容をフィルタリングします。
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を使用してください。0.0.0.0または非ループバックアドレスにバインドするとリモートアクセスが有効になり、空でないexternal-http-secretが必須となります。
external-http-secret(デフォルト: 空)
external-http-secret = your-secret-token
API認証に使用されるBearerトークン。リクエストにはAuthorization: Bearer <secret>ヘッダーを含める必要があります。コントローラーが非ループバックアドレスにバインドされている場合、またはリモートアクセスが必要な場合に必須です。
external-http-ui(デフォルト: true)
external-http-ui = true
有効にすると、Chuteはコントローラーアドレスで組み込みWeb UIを提供します。Web UIは概要ダッシュボード、接続管理、DNS検査、トラフィック監視、ポリシー制御、設定編集を提供します。APIを有効にしたままUIを無効にするにはfalseに設定します。
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/dns |
DNSキャッシュレコード |
DELETE |
/api/dns/cache |
DNSキャッシュを消去 |
GET |
/api/config |
現在の設定 |
PUT |
/api/config |
設定を再読み込み |
GET |
/api/policies |
ポリシーグループと現在の選択 |
PUT |
/api/policies/:group |
ポリシーグループの選択を変更 |
PUT |
/api/mode |
アウトバウンドモードを設定 |
GET |
/api/features |
機能スイッチの状態 |
PUT |
/api/features/mitm |
MITMを切り替え |
PUT |
/api/features/record-traffic |
トラフィック記録を切り替え |
注意: この機能はデフォルトで無効です。APIは成功時に
{"ok": true, "data": {...}}形式、エラー時に{"ok": false, "error": {"code": "...", "message": "..."}}形式のJSONレスポンスを使用します。