Chute iOSリリースノート
バージョン 1.2.2 (382)
新機能:
- プロキシチェーンを追加:ポリシーは
underlying-proxyを指定すると、そのプロキシを経由して自分のサーバーに接続できます。ポリシーグループはすべてのメンバーを 1 つの上流プロキシ経由にでき、「詳細」に新設した「フロントプロキシ」行(global-underlying-proxy)は、独自の上流を設定していないすべてのノードに同じ処理を適用します。Tailscale 以外のすべてのトランスポートをチェーンできます。ストリーム系プロトコルは上流のストリームを通り、Hysteria2、TUIC、MASQUE と HTTP/3 上の XHTTP は上流の UDP リレーを固定 1280 バイトのパケットで通ります。WireGuard と AmneziaWG は内側の MTU を 1280 バイトにして上流経由でトンネルを張り、SSH と AnyTLS のセッションは上流の上で開かれます。ループしているチェーン、16 階層を超えて入れ子になったチェーン、存在しないポリシーを指定したチェーンは拒否され、直接送信されることはありません - リレーグループを追加(
relay、Clash や mihomo と同様):メンバーは記述した順にチェーンされます。最初のメンバーには直接接続し、以降の各メンバーにはそれより前のメンバーを経由して接続し、最後のメンバーが宛先に接続します。グループエディターでは Relay を選択でき、メンバーをその順序のまま保持し、メンバーが少なくとも 2 つ必要です - ランダムグループを追加(
random、Shadowrocket と同様):接続ごとにメンバーをランダムに選びます。UDP の場合は UDP を扱えるメンバーの中からだけ選びます。ランダムグループには切り替える選択がないため、グループのポリシーを選ぶ画面には表示されません。グループエディターで編集してもランダムグループのまま保持されます - ダッシュボードと Web コンソールにプロキシチェーンを追加:リクエスト詳細と UDP 一覧にはすべてのホップ(
Airport/HK-01 → Landing)が表示され、HAR エクスポートにもその経路が含まれます - ルールプロバイダーとプロキシプロバイダーのエディターに「ダウンロードに使うポリシー」を追加:
policy=を指定すると、そのリストを選んだポリシー経由で取得します。存在しないポリシー名を指定した場合は、直接ダウンロードせずにダウンロードを失敗させます - Shadowsocks エディターに UDP over TCP(
udp-over-tcp、バージョン 1 または 2)を追加:プロキシの UDP を自身の TCP 接続の中に載せて運ぶため、上流が UDP に対応していないチェーンを経由しても動作します - VMess と VLESS に UDP 対応を追加:これまでは、どちらに送った UDP も一律に拒否されていました(
udp-policy-not-supported-behaviourに従い、既定では REJECT)。今後は mihomo、sing-box、Shadowrocket と同様に、宛先ごとに 1 本の接続で転送されます - ボディ書き換えに jq を追加:
http-request-jqとhttp-response-jqは JSON ボディに対して本物の jq プログラムを実行し、エディターには「JQ プログラム」フィールドがあります。無効なプログラムはエラーとして報告され、そのルールはスキップされます。JSON 以外のボディ、実行に失敗したプログラム、空の出力の場合は、いずれもボディをそのまま残します - 汎用スクリプトを追加:
type=genericのスクリプトには自動トリガーがなく、エディターの「実行」ボタン、またはGET /api/scriptsとPOST /api/scripts/runから要求したときにのみ実行されます。スクリプトエディターには「イベント名」フィールドも加わりました。配信されるイベントはnetwork-changedだけなので、それ以外のイベントを指定したイベントスクリプトは実行されません - 専用 DNS プールを追加:
direct-dns-serverはルールで DIRECT に振り分けたドメインを、proxy-dns-serverはプロキシサーバー自身のホスト名を解決し、fallback-dns-serverはメインのサーバーから応答がないときの問い合わせ先になります。いずれもグローバルのサーバーにフォールバックし、DNS エディターにはそれぞれの行があります - DNS アップストリームに
#proxy/#proxy=<policy>を追加(DoQ と DoH3 を含む):QUIC リゾルバーはポリシーの UDP リレーを経由し、UDP を扱えないポリシーの場合はそのサーバーに直接問い合わせずにスキップします。ポリシー経由で送る通常のリゾルバーは DNS over TCP に切り替わり、DNS over UDP が遮断される経路向けに素のtcp://アップストリームも受け付けます encrypted-dns-follow-outbound-mode、allow-dns-svcb(有効にしない限り、HTTPS と SVCB の問い合わせには空の応答を返します)、およびサーバーごとの#h3、#skip-cert-verify、#disable-ipv4、#disable-ipv6、#disable-qtype=を追加- ローカル DNS マッピングを拡充:
[Host]エントリは、列挙したすべてのサーバーを保持して並列に問い合わせ、1 つのドメインを複数のアドレスに対応付け、ルールセットをキーにでき(RULE-SET:<url>)、そのドメインに対してtype=dnsスクリプトを実行し(script:<name>)、ネットワークごとのマッピング用にssid:<name>も受け付けます - ルール通知を追加:FINAL を含むすべてのルールに
notification-text=とnotification-interval=を指定でき、一致したときに通知を表示します(通知はルールごとに、間隔内で最大 1 回)。通知はアプリの「通知を許可」スイッチに従い、タップすると通知に含まれる URL を開きます FINAL,<policy>,dns-failedを追加:名前を解決できない場合でも接続を閉じず、FINAL ポリシーでリモート解決を使って接続します- REJECT 系ポリシーを本物のポリシーとして追加(REJECT-DROP、REJECT-NO-DROP、REJECT-TINYGIF、REJECT-IMG、REJECT-DICT、REJECT-ARRAY、REJECT-200、REJECT-VIDEO):それぞれ HTTP リクエストにドキュメントどおりのボディで応答し、30 秒間に 50 回を超えて拒否されたホストは REJECT-DROP に格上げされます。ポリシー選択画面にこれらが表示されるようになり、以前はローカライズされたラベルが書き込まれていた箇所には DIRECT / REJECT / PROXY トークンを書き込み、以前のビルドが残したラベルも修復します
- インラインルールセットを追加:
[Ruleset Name]セクションは設定エディターで別枠に表示され、行単位で編集でき、RULE-SET,<name>として参照できます。インラインルールセット同士の参照も可能で、ネストは最大 8 段まで、循環参照は拒否されます - SSID 関連の機能を追加:
[SSID Setting]の DNS 上書きがネットワークごとに適用され(名前、BSSID:、TYPE:WIFI/CELLULAR/WIRED、ROUTER:、引用符付きの名前、ワイルドカード名)、ネットワークが切り替わると以前のリゾルバーのキャッシュを破棄します。ssidとsubnetのポリシーグループは現在のネットワークに応じてメンバーを選び、SUBNET ルールも現在のネットワークに一致します。また、suspend=trueでトンネルが停止するようになりました。ネットワーク名やTYPE:のエントリはオンデマンドの切断ルールになり、BSSID:、ROUTER:、ワイルドカードのエントリはエクステンション自身が一時停止させます。常時オンによってトンネルが再開されてしまう場合は、エクステンションがその旨を伝えます - DEST-PORT、SRC-PORT、IN-PORT の範囲指定と比較(
80-81、>=50000、/区切りのリスト)、HOSTNAME-TYPEの値IPv4、IPv6、DOMAIN、SIMPLEを追加し、IN-TYPE、IN-USER、IN-NAME ルールが機能するようになりました。これらのルールはドライランだけでなく、実際のトラフィックにも一致するようになりました - MitM の制御項目を追加:HTTP/2 の復号(
h2)、復号対象ホストへの QUIC をブロックして HTTP/3 による復号の回避を防ぐ設定(auto-quic-block)、ホストの復号対象からの除外、ホストリストでのキーワード<ipv4-address>、<ipv6-address>、<simple-hostname>の照合に対応しました - ドメイン名による QUIC のルーティングを追加:クライアントの QUIC Initial から名前を読み取り、複数の Initial にまたがる ClientHello は再構成し、名前が判明するまでフローを保留するため、IP アドレス宛ての HTTP/3 接続も DOMAIN ルールでルーティングできます
icmp-auto-replyを追加(既定で有効):トンネル内の ping に対し、タイムアウトさせずに IPv4 と IPv6 のどちらでもローカルで応答しますtun-included-routesを追加:指定した CIDR を、既定ルートの後にトンネルのルートへ加えます。システムはより具体的なルートを優先するため、本来なら Wi-Fi インターフェース自身のサブネットや別の VPN に取られてしまう範囲も、Chute を経由させられます。トンネルを切り離してしまうエントリ(ループバック、トンネル自身のサブネット、リンクローカル、マルチキャスト、ブロードキャスト、プレフィックス長 0)は拒否されてログに記録され、プライベートアドレスの範囲は警告付きで受け付けられます。リストを編集した場合は、トンネルを再起動せずに再読み込みで反映されます- インポートの対応範囲を拡大:mihomo の GEOSITE とカテゴリ GEOIP ルールは実際に機能するルールセットに展開され、
policy-pathグループはupdate-interval、フィルター、インクルードリストを備えたプロバイダーに変換されます。mihomo のSUB-RULEは AND ルールに展開され、sing-box のdetourと mihomo のdialer-proxyはプロキシチェーンとしてインポートされます。WireGuard のallowed-ipsはコンパイルされて適用されるため、スプリットトンネルがすべての宛先を取り込んでしまうことはなくなりました。ポリシーのinterface=/allow-other-interface=は、そのポリシーの接続を 1 つのネットワークインターフェースに固定します - スクリプト API を拡充:
$httpAPIはソケットを開かずにエンジン自身のルートを呼び出せるようになり、$httpClientはpolicyの指定に従い、read-etc-hostsで hosts ファイルを DNS に反映でき、$event.nameは実際に発生したイベントを返します - モックレスポンスの設定項目(ボディにはテキスト、ファイル、base64、1×1 GIF を指定でき、ステータスコードと入力検証にも対応)と、URL 書き換え・ヘッダー書き換えのタイプ一覧を追加。ヘッダーの値を置換する正規表現モードも備えています
改善:
- Chute の動作には iOS 15 以降が必要になりました
- すべての構造化エディターが、画面に表示しない内容も保持するようになりました:各ビルダーは表示しないキー(ルールの残りのオプション、AND / OR / NOT のサブルール、
[Host]エントリの他のアドレス、モジュールヘッダーの他の行)をそのまま引き継ぐため、設定を開いて保存しただけで内容が書き換わることはなくなりました。エディターが認識できない種類のエントリはテキストとして編集できます - ボディ書き換え、ヘッダー書き換え、URL 書き換え、Map Local、モック、スクリプトの各エディターが、エンジンが読み取るとおりの形式で書き込むようになりました:スクリプトは
type=付きで保存され、JSONPath の値は型を保ち、Map Local はstatus-code、data-type、ヘッダーを保持します - 公開されているプロファイルをインポートしてもルーティングが失われなくなりました:
dns-serverは暗号化 DNS の URL を受け付け、リスナー行ではパスワードを指定でき、引用符付きのグループメンバーも保持され、sing-box の論理ルールはドキュメントどおりに変換されます。PASSメンバーは REJECT に変換されずに除外され、未対応のプロトコルやグループタイプはグループ全体を巻き込まずに警告を出します。インポートした mihomo プロファイルでは、一致し得ないルールがリストの大半を占めていた状態から、ほぼゼロになりました - ルールセットのメモリ使用量を大幅に削減:プロバイダーは順番にダウンロードされるため、35 個目以降が一斉に失敗することはなくなりました。変換時のピーク使用量は 62〜73% 減少し、インデックス接続には上限を設けてメモリ逼迫時に解放します。デバイスにとって大きすぎるペイロードは拒否され、その理由がルールセットのステータスに表示されます
- リソース上限を設け、巨大な設定によってトンネルエクステンションがメモリ上限を超えないようにしました:MitM の証明書ストア、キャプチャのバックログ、スクリプトのサイズと数、コンソールのリクエスト枠、Tailscale のピア、DNS キャッシュに、iOS ではそれぞれ上限を設けています
- レイテンシテストが正しい対象を使うようになりました:グループの
test-urlとtest-timeout、プロファイルのproxy-test-url、メンバー自身のtest-urlとexpected-statusがすべて反映され、チェーンされたノードは直接ではなくチェーンを経由して計測されます - Web コンソールと制御 API:実行中に追加したルールが、同じプロファイルを再読み込みした後まで残ることはなくなりました。ログカーソルは単調増加を保つためポーリングでエントリを取りこぼさず、接続の詳細にはプロキシチェーンが表示されます
- ShadowTLS は、
sni=が指定されている場合、sing-box と同様に偽装先のサイトの証明書を検証するようになりました。skip-cert-verify=trueで検証を無効にできます(以前はこのオプションが無視され、証明書はまったく検証されていませんでした)。sni=がない場合は、警告を出して検証をスキップします - ダウンロードとサブスクリプション:ダウンロードごとに専用のファイルに保存し、形式はボディの内容で判定するため、更新時に最初のダウンロードを読み直したり、別のアドレスのプロファイルを適用したりすることはなくなりました。Clash や sing-box から変換したプロファイルは
.confとして保存され、他の Chute アプリと同じ規則で命名されます。すでに使われている名前の場合は、上書きせずに番号を付けます - 設定の扱い:別の名前で保存する前に確認し、実行中のファイルを上書きした場合はトンネルを再読み込みし、設定の読み込み元ファイルを削除しなくなりました。「iCloudから同期」は、すでにインストール済みの設定もライセンスの上限に数えます。非表示のポリシーグループはグローバルと select の一覧に表示されなくなりますが、エンジンからは引き続き利用できます。グローバルには使用中のグループが常に表示されます
- Wi-Fi アップロードページは、アップロードされたファイルの拡張子を保持し、すでに使われている名前は理由を示して拒否し、ASCII 以外の文字を含む名前は RFC 6266 に従って送信するため、
上传的配置.confもその名前のまま届きます - 新しい設定項目、メッセージ、通知は 8 つの組み込み言語すべてに対応し、トンネルの通知にはトンネルが停止した理由も表示されます
バグ修正:
- Hysteria2 が 1 つの QUIC DATAGRAM フレームに収まらない UDP データグラムを破棄していた問題を修正。このため、アプリの HTTP/3 が通らず TCP に戻っていました。現在は、大きなデータグラムを送信時に分割し、サーバーから分割して返された応答を再構成します
- 再起動したトンネルが前回と同じ最初のローカルポートと TCP シーケンス番号を再利用し、古い接続を保持したままの WireGuard ピアからリセットが返されていた問題を修正。トンネルの TCP スタックはシステムの乱数源からシードを取得し、RFC 6528 に従って初期シーケンス番号を選ぶようになりました
- トンネル経由の XHTTP がアプリの最初の書き込みの後で止まり、TLS ハンドシェイクが完了せず、アップロードもチャンクを 1 つ送っただけで止まっていた問題を修正。現在は、各書き込みが順序どおりに完了し、アップロード待ちのデータが 1 MB を超えると、それが送り出されるまで次の書き込みは待機します
PROTOCOL,TCPとPROTOCOL,UDPがまったく一致しなかった問題を修正:すべてのインバウンドでトランスポートを判定するようになったため、AND ルールで QUIC をブロックする一般的な方法が機能するようになりました- AND / OR / NOT 内の
RULE-SETとDOMAIN-SETが常に false と評価されていた問題(このためNOT,((RULE-SET,…))が国内向けのトラフィックまで拒否していました)と、論理ルール内のSCRIPTが常に true と評価されていた問題を修正 - 名前で指定した
RULE-SET,<name>,<policy>,no-resolveからno-resolveが失われる問題、GEOIP と IP-ASN のUNKNOWNがまったく一致しない問題、HTTP/2 で Map Local のstatus-code=が無視される問題、平文 HTTP でレスポンスのヘッダー書き換えがパスにしか照合されず、完全な URL で書いたパターンが一致しなかった問題を修正 block-quicが Surge の値のうち 1 つしか受け付けず、他の値ではまったく QUIC がブロックされなかった問題を修正- スクリプト API を修正:
$klne.getPolicyGroups()とselectPolicy()が初回呼び出し時に例外を投げなくなり、reloadConfiguration()が実際に再読み込みを行い、getActiveConnections()が実際のホスト、ポート、ID を返し、closeConnection()が実際に接続を閉じるようになりました。また、requires-bodyを指定した before-send スクリプトがようやくボディを受け取れるようになりました [Replica] keyword-filterがキーワードを含むかどうかを確かめずにホスト名全体と比較していたため、keyword-filter = googleでwww.google.comが対象にならなかった問題を修正- iOS で PROCESS-NAME、PROCESS-PATH、PROCESS-NAME-REGEX ルールがブラウザーのトラフィックに一致していた問題を修正。比較していた名前は、プロセス名ではなくブラウザーの製品名でした。これらのルールは macOS 専用で、iOS では何にも一致しなくなりました
- 保存したダッシュボードのプロファイルが誤った型として読み込まれ、タップのたびにクラッシュしていた問題、重複を含むリストで行をドラッグまたは削除するとテーブルとデータがずれていた問題、すでに閉じた画面へのコールバックによるクラッシュを修正
- サブスクリプションの自動更新がメインスレッドを 30 秒間ブロックし、そのせいで更新中にバックグラウンドへ移ったアプリがウォッチドッグに強制終了されていた問題、ウィジェットに VPN を制御する権限がなかったためコントロールセンターのスイッチが常に失敗していた問題、ピクチャ・イン・ピクチャが 2 回表示されていた問題、ウィジェットのコンティニュエーションが 2 回再開されていた問題を修正
- ダウンロードとファイル名に関する問題を修正:保持していたダウンロードファイルが次回の更新で読み直される問題、2 つのアドレスが同じ名前を提示したときに一方のアドレスに他方のプロファイルが返される問題、インポートやコピーによって iCloud 上の読み込み元ファイルが削除される問題、アップロードしたファイル名の最初のドット以降がすべて失われる問題、拡張子だけで終わるアドレスのサブスクリプションが隠しファイルとして保存される問題、読み取り可能な設定に確認なしで編集内容が上書き保存される問題
- Chute が起動していないときに
chute://リンク(ショートカットのオートメーションからのものなど)を開いても何も起きなかった問題を修正。コールドスタート時にも処理されるようになりました - 各種の安定性とパフォーマンスの改善
バージョン 1.2.0 (351)
新機能:
- コントロールパネルに Web コンソールのアドレスを追加:「Webコンソール」の行にホストが表示され、タップすると「開く」「アドレスをコピー」「アクセストークンをコピー」を選べます。「開く」はトークンを URL に含めて開くため、入力せずにサインインできます
- コントロールパネルの「ローカルプロキシ」セクション末尾に「ランタイム診断バンドル」を追加:動作中のエンジンが秘匿処理済みのアーカイブ(設定、健全性スナップショット、この実行のイベント、読み込まれたルールとポリシー、DNS、トラフィック、ログシャード)を作成し、共有シートに渡します。トンネルが接続されている必要がありますが、
external-http-controllerは不要です - 設定 → 「診断」セクションに「オフライン診断バンドル」を追加。トンネルが動いていなくてもアプリ単独で作成します:デバイスとアプリの情報、iOS が保持する VPN プロファイルの状態、選択中の設定の概要と解析エラー、3 つの診断ページのテキスト、秘匿処理済みの設定の冒頭、前回の実行の終わり方、最新セッションのログ末尾、未送信のクラッシュレポート
- セッション画面に「ログを共有」を追加。そのセッションのログのすべてのシャードを共有できます
- セッション詳細に書き換えの帰属を追加:「ポリシー」セクションに、リクエストをルーティングしたルールとポリシーの横に、リクエストを変更した URL 書き換え・ヘッダー書き換え・ボディ書き換え・モックレスポンスのルールが表示されます
- 「出口 IP 変更」に代わる「ネットワークアドレス変更」通知を追加:物理リンク上でこのデバイス自身が持つ IPv4 と IPv6 をアドレスファミリーごとに 1 行ずつ表示し、NAT 配下の IPv4 にはその旨を示します。IPv6 とルーティング可能な IPv4 はローカルで読み取り、NAT 内の IPv4 のときだけ STUN リクエストを 1 回送ります
- 内蔵言語にフランス語を追加
- Web コンソールと同じスタイルで再設計した Wi-Fi アップロードページを追加(9 言語対応)
- Web コンソールに「現在」と「履歴」のタブ、接続の詳細ビュー(一致したルール、ルールの出所、ポリシー、アダプター、DNS の出所、プロセス、切断理由、リクエストとレスポンスのボディ)、どの書き換えルールが発火したかを示す「ルール」ページ、「診断」ページ(メモリフットプリント、CPU、稼働時間、フロー数、前回の実行の終わり方、拒否の集計、イベントログ、Tailscale スナップショット、ping / DNS / 出口 / URL テストのプローブ)を追加。コンソールは 9 言語すべてで完全対応になりました
- HTTP 制御 API にエンドポイントを追加:
/api/health、/api/events、/api/tailscale、/api/diagnostics/配下のプローブ、/api/connections/export?format=har、/api/diagnostics/bundle、/api/rewritesと/api/mitm/hostsによる書き換えルールと MitM ホストの管理、ルールテーブルに対してリクエストを試験的に照合するPOST /api/rules/match(2 回の DNS パスの両方を報告)、再読み込みなしでログレベルとサブシステムのセクションを変更するGET|PUT /api/loglevel、プロファイルを適用せずに検証するPOST /api/config/validate
改善:
- 設定に
external-http-secretが無い場合、HTTP 制御 API はもう無認証で公開されません。エンジンがトークンを生成し、コントロールパネルで表示・コピーできます。匿名アクセスを維持するにはexternal-http-secret = noneを設定してください。また、ワイルドカードの待ち受けアドレスはループバックとして扱われなくなりました - 大きなリストでのルール照合が大幅に高速化:RULE-SET と DOMAIN-SET のペイロードは接続ごとにストリーム走査する代わりに、ダウンロード時または復元時にインデックス化され、ドメインルールだけで構成されたルールテーブルはハッシュ化されたプランで照合します。5 万行のリストで 1 回の照合が約 94 ms から 2 ms 未満になり、インデックスあたりのメモリは約 100 KB です
- UDP フローは 1 回だけ照合:フローの判定を 60 秒間記憶し、後続のデータグラムは 2 回の照合パスとその間の DNS クエリを省略します
- ネットワーク切り替え後の回復を改善:上流の送信元アドレスがどのインターフェースにも無くなったトンネルは、アイドルタイムアウトまでアプリを待たせずに閉じられます。同種のパス変更(モバイル回線の再接続)も検知されるようになり、接続はできるがデータが流れないパスはブラックホールとして報告されます
- セッションログは 8 MB のシャード単位で書き込まれます(1 回の実行につき最大 8 個、古いものから削除)。各シャードの先頭には実行と開始時刻を示すヘッダーが付くため、長いセッションでも取得できないほど大きなファイルが 1 つできることはなくなりました。ログビューアーはすべてのシャードを順に読み込み、書き込み中のシャードを追い続けます
- エンジンは実行中に実行マーカーを保持し、次回起動時に前回の実行が正常に停止したか強制終了されたかを、ログヘッダー、
/api/status、両方の診断バンドルで報告します - HAR エクスポートは記録されたフレームからエンジンが生成するようになり、ステータスコード、タイムスタンプ、タイミングが実際の値になりました。各エントリには
_klの下に選択されたポリシー、一致したルール、書き換えのヒットが含まれます。ダッシュボードの「HAR をエクスポート」と接続詳細のどちらもこれを使います - ライセンスが必要なのは購入ページで販売している 3 つの機能(高度なサーバー制御、MitM、トラフィックレコーダー)だけになりました。プロトコルスニッフィング、Optimus DNS、外部アクセス、HTTP API、Webコンソール、DNS キャッシュの消去にはライセンスを求めません
- コントロールパネルはトンネルの状態に追従します:トンネル停止時に状態をリセットし、再接続時に再問い合わせし、コンソールページが実際に提供されているときだけアドレスを表示します
allow-wifi-accessが有効な間、設定エディターは 2 つのリスナースイッチをロックし(エンジン自身が両方のリスナーを広げるため)、無効にすると設定済みのインターフェースを復元します- 「IAP 購入を復元」で何も見つからなかった場合、アラートに「マニュアルを見る」が表示され、アプリの言語でクロスプラットフォームのライセンス手順を開きます。購入時の説明には、1 回の購入で iPhone または iPad 3 台と Apple TV 3 台をカバーすることを明記しました
- Tailnet のノード一覧が他の一覧と同じ見た目になり(インセットグループ、空のセクションには「項目なし」行)、表示のたびにノードの状態を再問い合わせします
loglevel = infoでは、1 MiB 以上を転送した大量フローが切断時に 1 行を記録し、リモート側とアプリ側でそれぞれどれだけ待ったかを示します- 診断ページでは、コピーできる内容がある行にだけ「コピー」を表示します
バグ修正:
- TUN モードの MitM を修正:MitM ルールに一致したホストがタイムアウトまで停止し、HTTPS のヘッダー書き換え、ボディ書き換え、モックレスポンス、復号キャプチャがアプリのトラフィックに一切適用されていませんでした(ローカル HTTP/SOCKS5 プロキシ経由のトラフィックは影響なし)
allow-wifi-accessが効かない問題を修正:ローカルの HTTP と SOCKS5 リスナーがループバックに留まり、Wi-Fi 上の他のデバイスから到達できませんでした。このフラグ(およびインポート時の sing-box のallow-lan)で両リスナーが広がり、無効にすると再バインドされます- MitM の HTTP/1.1 でレスポンスのヘッダー書き換えが適用済みと記録されながら、クライアントには元のヘッダーが届いていた問題と、完全な URL で書かれたルールが一度も一致しなかった問題を修正
- モックレスポンスがリクエストヘッダーから応答を組み立てていた問題(ステータス行の位置にリクエスト行、リクエストヘッダーの持ち越し、誤った Content-Length)と、平文 HTTP でオリジンのヘッダーを先に送っていた問題を修正
- プロトコルスニッフィングが Host ヘッダーや逆引き DNS 名を与えた場合に、
no-resolve付きの IP ルール(IP-CIDR、GEOIP、IP-ASN)が IP リテラル宛ての接続をスキップしていた問題を修正。スニッフィングで得た IP リテラルは DOMAIN ルールにも一致しなくなり、判定がスニッフィングの有無に左右されなくなりました - RULE-SET ペイロードで内容の後にオプションを持つ行(
GEOIP,CN,no-resolve、DOMAIN,example.com,force-remote-dns)が捨てられる、または何にも一致しなかった問題と、AND/OR/NOT のサブルールがno-resolveを失っていた問題を修正 - HOSTNAME-TYPE が一度も一致しなかった問題を修正:レコードタイプは IPv4 で発信した接続なら A、IPv6 なら AAAA になり、ルールエディターのプレースホルダーもそれを示します
- ドメインのサブルールを持つ AND/OR/NOT ルールでプロキシに振り分けられたドメインが、DNS サーバーでは実際に解決されてしまい、DNS の応答とルーティングの判定が食い違っていた問題を修正
- スニッフィングした Host ヘッダー内の角括弧付き IPv6 リテラル(
[2001:db8::1]:8080)がホスト名[2001として読まれていた問題を修正 - select グループが先頭以外のメンバーに設定された状態でトンネルを開始すると「ポリシーグループが切り替わりました」通知が出て、開始後の再構築がフラッピング警告を引き起こしていた問題を修正。記憶された選択が無いグループは、先頭メンバーに強制されるのではなくプロファイルの
default=に従います - トンネルがしばらく動作した後にコントロールパネルを開くと、アプリが CPU 100% で固まりメモリが増え続ける問題を修正
- HAR エクスポートが誤ったステータスコードと 1970 年のタイムスタンプを書き出し、接続詳細のエクスポートがどの HAR リーダーでも開けないファイルを生成していた問題を修正
[Replica] hide-crashlytics-requestが解析されるだけでキャプチャに適用されていなかった問題を修正external-http-controller = *:9090と:::9090(どちらも文書化された書き方)が拒否され、コントローラーが黙って起動しなかった問題を修正$klne.startURLTest()がレイテンシテストを一度も開始しなかった問題と、存在しないポリシーへの URL テストがエラーではなくもっともらしい失敗を報告していた問題を修正- 高負荷時に XHTTP トランスポートで時折発生していたクラッシュを修正
- 再シリアライズされた HTTP/1.1 レスポンスの理由句が空になっていた問題を修正
- ライセンス画面で tvOS や Android 向けに発行されたライセンスが「不明」と表示され、このアプリが保持できない証明書が iOS & macOS & tvOS バンドルと表示されていた問題を修正
- 「情報」画面の無効な App Store リンクを修正。「評価」はレビューシートを直接開きます
- 各種の安定性とパフォーマンスの改善
バージョン 1.1.9 (322)
新機能:
- ポリシーエディターにXHTTPトランスポートを追加:スイッチ、モード(auto、packet-up、stream-up、stream-one)、パス、ホストを設定でき、Trojan・VMess・VLESSに対応
- AEGIS-128LおよびAEGIS-256 Shadowsocks暗号化方式を追加
- TLSポリシー向けにECH(Encrypted Client Hello、暗号化クライアントハロー)設定を追加:有効化スイッチ、固定ECH設定(
ech-config)、カバー名の上書き(ech-public-name) - クライアントフィンガープリント(uTLS)をポリシー単位で設定可能にし、プロファイル全体の既定値も追加
- トラフィック難読化機能を備えたWireGuard派生のAmneziaWGプロトコルに対応し、パラメーターエディターを追加
- サブスクリプションURL、ファイル、Wi-FiアップロードからのClash・sing-boxプロファイルインポートを追加
- 操作を中断するアラートを置き換える、内容をコピーできる設定エラーレポートページを追加
- TLS 1.3向けにX25519MLKEM768耐量子ハイブリッド鍵交換を追加
改善:
- ポリシーエディターは保存時に、現在の画面では編集できない既存のオプション(ECH、ALPN、証明書ピンニング、
test-url、udp-relay)を保持するようになりました
バグ修正:
- 不正な
IP-CIDRルールによるトンネルのクラッシュを修正 - SSHの
idle-timeout設定が誤ったキー名で書き込まれ、保存時に破棄される問題を修正 - オンボーディング生成のルールがポリシー名を
no-resolveの後に配置し、IPベースのルールが壊れる可能性がある問題を修正 - 安定性とパフォーマンスのさまざまな改善
バージョン 1.1.8 (300)
新機能:
- Tailscaleを組み込みプロキシタイプとして追加:Chute内で直接Tailscaleアカウントを設定し、tailnetに参加してTailscaleノード経由でトラフィックを転送できます。別のクライアントは不要です
- Tailscaleセクションエディタを追加:auth keyを安全に入力、接続を検証、tailnetノードを一覧表示し、アプリ内で出口ノードを切り替えできます
- Tailscaleコントロールパネルを追加:ノードのリアルタイムステータス(オンライン/オフライン、IP、最終確認時刻)を表示し、随時出口ノードを切り替えできます
- プロキシ診断のシステム通知を追加:出口IPの変更やTailscaleの接続イベントを通知し、設定でタイプごとにオン/オフを切り替えできます
- ポリシーエディタにMASQUEプロキシタイプを追加
改善:
- iOSのTUNスループットを向上
- TailscaleおよびWireGuardの接続安定性とスループットを向上
- UDPトンネルの安定性とトラフィック統計の精度を向上
- VPN停止時の安定性を向上し、システムが接続を異常終了するケースを軽減
- 言語切り替えの信頼性を向上
- 設定ファイル名をサニタイズし、無効なパス文字による読み込み失敗を防止
バグ修正:
- VPNの開始と停止の間でon-demandルールが不一致になる問題を修正
- 言語切り替えの同時実行による稀なクラッシュを修正
- 不要なVPN再接続を避けるためのネットワーク変更処理を修正
- 各種の安定性とパフォーマンスの改善
バージョン 1.1.7 (290)
新機能:
- JavaScriptスクリプトシステムを追加: リクエスト/レスポンス変更、DNS解決、カスタムルールマッチング、スケジュールタスク用のカスタムスクリプトを実行
- ボディ書き換えを追加: 正規表現(キャプチャグループ対応)またはJSONPath式を使用したHTTPリクエスト/レスポンスボディコンテンツの検索と置換
- ShadowTLSプロトコル対応を追加
- VMessおよびVLESSプロトコル向けgRPCトランスポートを追加
- DNS-over-QUIC(DoQ)およびDNS-over-HTTP/3(DoH3)対応を追加
- DNS-over-TLS(DoT)対応を追加
- プロキシランタイムの監視と制御のためのHTTPコントロールAPIとWeb UIを追加
- モジュール式設定管理のためのモジュールシステム(.sgmodule)を追加
- 動的プロキシリスト更新のためのプロキシプロバイダーを追加
- 通知レポートを追加: 接続障害、プロキシ利用不可、トラフィック急増、設定更新失敗、ポリシーグループ切り替えを検出し、システム通知用のイベントを送出
- モックレスポンスを追加: 実際のサーバーに到達せずにマッチしたリクエストにモックデータを返す
- ラウンドロビン、コンシステントハッシュ、スティッキーセッション戦略を備えたロードバランスポリシーグループを追加
- URL書き換えの新モードを追加: reject-200、reject-img、reject-dict
- ヘッダー書き換えのレスポンス方向対応を追加
- 10種類のプロトコルタイプ値を持つPROTOCOLルールタイプを追加
- JavaScriptベースのカスタムマッチング用のSCRIPTルールタイプを追加
- ルールのextended-matchingおよびrequires-resolveオプションを追加
- AnyTLSマルチレイヤーパディングスキームを追加
- SS2022暗号化メソッドを追加(2022-blake3-aes-128/256-gcm、chacha20-poly1305)
- 管理設定対応を追加
- 設定レプリケーション用のレプリカ対応を追加
- WireGuard設定UIを追加
- interrupt-exist-connectionsグローバルオプションを追加
改善:
- ポリシーグループがexpected-status、hidden、idle-timeout、lazyオプションに対応
- Map Local形式でのテンプレート変数対応によるURL書き換えの強化
- DoQ、DoH3、DoTプロトコル対応によるDNSサーバーの改善
- ルールシステムを6種類から30種類以上に拡張し完全カバレッジを実現
バグ修正:
- IPv6のデフォルト値を修正(false → true)
- ログレベルのデフォルト値を修正(notify → warning)、noneおよびfatalレベルを追加
- ドキュメント全体でShadowsocks/ShadowsocksRの命名一貫性を修正
- 各種の安定性とパフォーマンスの改善
バージョン 1.1.6 (256)
新機能:
- Hysteria2プロトコル対応を追加
- WireGuardプロトコル対応を追加
- VLESS REALITYプロトコル対応を追加
- TUNトラフィック用のプロトコルスニファーを追加
- IP-ASNルール対応を追加
- AND/OR/NOT論理ルール対応を追加
バグ修正:
- UDPアダプターのメモリ問題を修正
- Rule-SetおよびDomain-Setマッチングのパフォーマンスを最適化
- その他の軽微なバグと安定性の問題を解決
- ライセンスビューのクラッシュを修正
バージョン 1.1.5 (245)
新機能:
- TUICプロトコル対応を追加
- Shadowsocks 2022(SS2022)対応を追加
- トンネル設定を導入
- セッションのログ表示を改善
バグ修正:
- UDPアダプターの問題を修正
- Rule-SetおよびDomain-Setマッチングのパフォーマンスを最適化
- その他の軽微なバグと安定性の問題を解決
バージョン 1.1.2 (231)
新機能:
- iOS 26 UI
バグ修正:
- Gemini AppのDNS IPv6レスポンスを修正
- コメントコンテンツを含むRULE-SETに対応
- ウィジェットセンターのスイッチボタン状態を修正
バージョン 1.1.1 (218)
新機能:
- AnyTLSポリシー対応
- ドメインセット対応
- リモートルールセット対応
改善:
- パフォーマンス向上のためのトンネル再構築
- 完全テスト済みUDPトンネル
バグ修正:
- メモリリークを修正
バージョン 1.1.0 (210)
バグ修正:
- いくつかのバグを修正
バージョン 1.0.9 (199)
新機能:
- iOS 18 コントロールセンタースイッチボタン
バグ修正:
- IPv6を使用するTUNがIPv6トンネルにリダイレクトされるようになり、一部のサービス問題を修正
バージョン 1.0.8 (188)
新機能:
- SSHポリシー対応
- リモートダッシュボード接続を追加
改善:
- IPv4内部アドレスの問題を回避するためTUNネットワークを198.18.0.0/15に変更
- 一部のテキストを更新
バグ修正:
- DNS問題を修正
バージョン 1.0.7 (167)
新機能:
- PIPモード
- 設定ファイルのiCloud同期
- tvOS向けリモート設定マネージャーを追加
バグ修正:
- Websocketを使用するVMessを修正
バージョン 1.0.6 (160)
新機能
- 新しいUI
- Wi-Fi経由の設定アップロードを追加
- ネットワーク診断とプロキシ診断を追加
- VPN設定リセット機能を追加
- ICMP(Ping)パケット対応を追加
- VPN状態チェックを追加
改善:
- 設定編集UI/UXを改善
- MTUを4000に更新
バグ修正
- バグ修正
- IPv6 TUN設定を修正
バージョン 1.0.5 (147)
新機能
- VLESSプロトコル対応を追加
- VLESSでのXTLS対応を追加
- プロキシセッションとログを確認するセッションビューアーを追加
- Chute Dashboard macOSアプリでUDP接続を確認可能に
改善:
- 設定編集を改善
- DNS汚染を回避するためローカルDNSサーバーを改善
- UDPリレーを改善
バグ修正
- IPv6表示を修正
- DNSサーバーを修正
バージョン 1.0.4 (143)
新機能
- ローカルHTTP/Socks5プロキシサーバーに対応
- 完全なIPv6対応
- DNSサーバーに
syslib対応を追加
改善:
- 設定編集を改善
- Optimistic DNSスイッチを追加
- ローカルDNSサーバーを改善
バグ修正
- iOSローカルプロキシサーバーアドレスがアプリのネットワークアクセスを停止させる問題を修正
- DNSサーバーを修正
バージョン 1.0.3 (138)
新機能
- DNSキャッシュポイズニングを回避するためのフェイクIP
- インターネットまたはQRコードから設定ファイルをダウンロード
バグ修正
- FINALルール編集の問題を修正
バージョン 1.0.2 (130)
新機能
- iPad対応
chute://スキームとx-callback-urlに対応- Dashboardアクション
- iPhone 12対応
- パフォーマンスと安定性向上のためDNSサーバーを再構築
バグ修正
- TCP安定性を改善
- パフォーマンス向上のためTCPロックを再構築
- UDP安定性を改善
- 設定クラッシュを修正
バージョン 1.0.1 (111)
- WeChat共有拡張の失敗を修正
- IPv6対応を修正
- HTTP完全チェックを更新
バージョン 1.0.0 (101)
- 初回リリース
本ページは英語版からの翻訳です。内容に相違がある場合は、英語版が優先されます。