Chute tvOSリリースノート

バージョン 1.5.1 (90)

新機能:

  • エディターにプロキシチェーンを追加:すべてのプロキシタイプでポリシーが underlying-proxy を指定できるようになり、その接続は指定したポリシー経由でダイヤルされます — ストリーム系プロトコルは上流のストリームに乗り、Hysteria2、TUIC、MASQUE と HTTP/3 上の XHTTP はその UDP リレーに乗り、WireGuard と AmneziaWG はそれを経由してトンネルし、SSH と AnyTLS のセッションはそれを経由して開きます — ループするチェーン、16 ホップより深いチェーン、存在しないポリシーを指すチェーンは、直接接続するのではなく読み込み時に拒否されます。Tailscale を除くすべてのプロキシタイプをチェーンでき、TUIC、Hysteria2、WireGuard、AmneziaWG、ShadowTLS の各ポリシーはそれ以外の点では読み込んだまま書き戻されます
  • グループ単位の上流プロキシを追加:グループエディターが underlying-proxy= を 1 回書き込み — 名前にカンマや空白が含まれる場合は引用符で囲まれます — そのグループのすべてのメンバーが、そこに指定した 1 つのポリシー経由でサーバーに到達します
  • 「詳細」に「フロントプロキシ」の行を追加:global-underlying-proxy を書き込み、「なし」とプロファイルのポリシーおよびグループから選択でき、独自の上流を設定していないすべてのノードを対象にします。close-if-proxy-chain-missing に行はなく、書かれたまま保持されます
  • ルールプロバイダーとプロキシプロバイダーの各エディターに「ダウンロードに使うポリシー」を追加:policy= を指定するとそのリストを選んだポリシー経由で取得し、「なし」を選ぶと直接ダウンロードします。プロキシプロバイダーのエディターは、プロバイダーの underlying-proxy も保持します
  • Shadowsocks エディターに UDP over TCP を追加:udp-over-tcp のスイッチと、オンの間は「UoT バージョン」の選択肢(1 または 2。バージョンが記述されていなければ 2 を使用)を備えます。このプロキシの UDP は自身の TCP 接続の中で運ばれるため、UDP に対応していない上流を経由しても動作し続けます。サーバー側が UoT に対応している必要があり、mihomo はバージョン 1 を使います。選択肢で表示できないバージョンは、別のバージョンを選ぶまで記述どおりに保持されます
  • 接続の詳細に「プロキシチェーン」行を追加:チェーンを経由した接続では、ルーティングしたポリシーの横にすべてのホップ(Airport/HK-01 → Landing)が表示されます。Web コンソールのリクエスト詳細と UDP 一覧にも同じ経路が表示され、HAR エクスポートにも含まれます
  • リレーグループを追加(relay、Clash や mihomo と同様):メンバーは記述した順にチェーンされます。最初のメンバーには直接接続し、以降の各メンバーにはそれより前のメンバーを経由して接続し、最後のメンバーが宛先に接続します。グループタイプの選択肢に Relay が加わり、リレーグループでは「名前」「グループタイプ」「非表示」が表示されます。メンバーはその順序のまま保持され、パラメーターは保存後も引き継がれます。動的な供給元がなくメンバーが 2 つ未満の場合は、専用のメッセージを表示して拒否します
  • ランダムグループを追加(random、Shadowrocket と同様):接続ごとにメンバーをランダムに選びます。UDP の場合は UDP を扱えるメンバーの中からだけ選びます。ランダムグループには切り替える選択がないため、グループのポリシーを選ぶ画面には表示されません。グループエディターで編集してもランダムグループのまま保持されます
  • VMess と VLESS に UDP 対応を追加:これまでは、どちらに送った UDP も一律に拒否されていました(udp-policy-not-supported-behaviour に従い、既定では REJECT)。今後は mihomo、sing-box、Shadowrocket と同様に、宛先ごとに 1 本の接続で転送されます
  • ルールセットの読み込みに失敗したプロバイダーの行に、その理由を赤字で表示するようにしました(一度も成功しなかったダウンロード、またはサイズ上限を超えるペイロード)。以前は、そのようなプロバイダーも正常なものとまったく同じに見え、それを参照するルールはどれも何にも一致していませんでした
  • エディターが、表示できない内容を捨てなくなりました:ルールは対応する行のないオプション(notification-text、no-resolve、update-interval など)を保持し、事前照合はポリシーの後ろに REJECT の場合のみ書き込み、SUBNET ルールの KEY:value を読み込み、RULE-SET で SYSTEM、LAN、プロバイダー、URL を区別し、正しく解析できる AND / OR / NOT のサブルールを作成できます。グループは宣言されたメンバーを読み込み、policy-path から生成されたプロバイダーは表示せず、フィルター、include-*、default=、interrupt-exist-connections、未知のパラメーターを元の順序のまま保持します。ホストは #proxy とコメントを含むサーバー一覧全体を保持し、DoH / DoT / DoQ / DoH3 の値を表示し、スクリプトタイプにも対応しました。Map Local はバイナリのボディ、データタイプ、ステータスコードを保持し、値にコロンを含む Surge 形式のヘッダーも保持します。モジュールは #!system_version と他プラットフォーム向けの行を保持します
  • エディターで表示できなかった設定に行を追加:DoT / DoQ / DoH3、DIRECT 用・プロキシサーバー用・フォールバック用の専用 DNS、SVCB、ルールに従い証明書の検証もスキップできる暗号化 DNS、「UDP非対応のポリシー」、proxy-test-url / internet-test-url / test-timeout、MitM の HTTP/2 と QUIC ブロック、および除外するホスト名、Replica のフィルターモード、ポリシー選択画面での REJECT の各バリエーションと組み込みの PROXY、FINAL の dns-failed、ポリシーのホストとしての IPv6 リテラル。さらに、ヘッダー書き換えには「ヘッダーを置換(正規表現)」、URL 書き換えには「拒否(配列)」と「拒否(透明GIF)」、スクリプトには generic タイプとイベント名が加わり、ポート範囲、HOSTNAME-TYPE、PROTOCOL、プロバイダー形式には入力できる内容を示すプレースホルダーが付きました
  • tun-included-routes を追加:指定した CIDR を、既定ルートの後にトンネルのルートへ加えます。システムはより具体的なルートを優先するため、本来ならネットワークインターフェース自身のサブネットに取られてしまう範囲も、Chute を経由させられます。トンネルを切り離してしまうエントリ(ループバック、トンネル自身のサブネット、リンクローカル、マルチキャスト、ブロードキャスト、プレフィックス長 0)は、理由をログに記録したうえで拒否され、プライベートアドレスの範囲は警告付きで受け付けられます。リストを編集した場合は、トンネルを再起動せずにホットリロードで反映されます
  • ボディ書き換えに jq を追加:設定ファイルに記述した http-request-jq と http-response-jq は、JSON ボディに対して本物の jq プログラムを実行します(Apple TV のボディ書き換えエディターでは設定できません)。無効なプログラムはエラーとして報告され、そのルールはスキップされます。JSON 以外のボディ、実行に失敗したプログラム、空の出力の場合は、いずれもボディをそのまま残します
  • 汎用スクリプトを追加:type=generic のスクリプトには自動トリガーがなく、GET /api/scripts と POST /api/scripts/run から要求したときにのみ実行されます
  • 専用 DNS プールを追加:direct-dns-server はルールで DIRECT に振り分けたドメインを、proxy-dns-server はプロキシサーバー自身のホスト名を解決し、fallback-dns-server はメインのサーバーから応答がないときの問い合わせ先になります。いずれもグローバルのサーバーにフォールバックします
  • 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>)
  • 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 に格上げされます
  • インラインルールセットを追加:設定ファイル内の [Ruleset Name] セクションは RULE-SET,<name> として参照でき、インラインルールセット同士の参照も可能です(ネストは最大 8 段まで、循環参照は拒否)。ルールプロバイダーの一覧にはこれらが表示されますが、編集は設定ファイルで行います
  • 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 のどちらでもローカルで応答します
  • インポートの対応範囲を拡大: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 は実際に発生したイベントを返します

改善:

  • アプリが表示するすべての文字列が 8 言語すべてで用意されました:Tailscale の行をはじめ、英語にフォールバックしていた 8 つのラベルが翻訳され、アプリに組み込まれた文言と言語ファイルが食い違っていた 88 件のテキストも一致するようになりました
  • Chute の各アプリで用語を統一しました:ログの重要度フィルターと 7 つのバッジはエンジンのレベル名を使い、ロードバランスのラベルは Chute Mac に合わせ、Webコンソール、トラフィックキャプチャ、モックレスポンス、ローカルDNSマッピング、HTTPコントロールAPI は 8 言語それぞれの中で一貫した名称で表記されるようになりました
  • 公開されているプロファイルをインポートしてもルーティングが失われなくなりました:dns-server は暗号化 DNS の URL を受け付け、リスナー行ではパスワードを指定でき、引用符付きのグループメンバーも保持され、sing-box の論理ルールはドキュメントどおりに変換されます。PASS メンバーは REJECT に変換されずに除外され、未対応のプロトコルやグループタイプはグループ全体を巻き込まずに警告を出します。インポートした mihomo プロファイルでは、一致し得ないルールがリストの大半を占めていた状態から、ほぼゼロになりました
  • ルールセットのメモリ使用量を大幅に削減:プロバイダーは順番にダウンロードされるため、35 個目以降が一斉に失敗することはなくなりました。変換時のピーク使用量は 62〜73% 減少し、インデックス接続には上限を設けてメモリ逼迫時に解放します。Apple TV にとって大きすぎるペイロードは拒否され、その理由がプロバイダーの行に表示されます
  • リソース上限を設け、巨大な設定によってトンネルエクステンションがメモリ上限を超えないようにしました:MitM の証明書ストア、キャプチャのバックログ、スクリプトのサイズと数、コンソールのリクエスト枠、Tailscale のピア、DNS キャッシュに、Apple TV ではそれぞれ上限を設けています
  • レイテンシテストが正しい対象を使うようになりました:グループの test-url と test-timeout、プロファイルの proxy-test-url、メンバー自身の test-url と expected-status がすべて反映され、チェーンされたノードは直接ではなくチェーンを経由して計測されます
  • Web コンソールと制御 API:実行中に追加したルールが、同じプロファイルを再読み込みした後まで残ることはなくなりました。また、ログカーソルは単調増加を保つため、ポーリングでエントリを取りこぼしません
  • ShadowTLS は、sni= が指定されている場合、sing-box と同様に偽装先のサイトの証明書を検証するようになりました。skip-cert-verify=true で検証を無効にできます(以前はこのオプションが無視され、証明書はまったく検証されていませんでした)。sni= がない場合は、警告を出して検証をスキップします

バグ修正:

  • アプリの更新後に設定一覧が消える問題を修正:設定はアプリの Caches フォルダーに保存されています。ここは tvOS がアプリに書き込みを許す唯一の場所ですが、システムが容量を確保したいときにいつでも空にしてしまうため、アップグレード後に一覧が空になり、画面にはその理由が何も表示されないことがありました。このバージョン以降、すべての設定は、システムが消去しないアプリの設定ストレージにも保存されます(テキストは 256 KB 以下の場合に、サブスクリプションのアドレスと更新間隔は常に)。欠けているファイルは起動時とアプリがフォアグラウンドに戻ったときに書き戻され、アドレスだけが残っていた設定は再ダウンロードされ、メイン画面に「N 件の設定を復元しました。」と表示されます。自分で削除した設定は記録からも消えるため、復元されることはありません。このバージョンを初めて起動する前に失われた設定や、アドレスから取得したものではない 256 KB を超える設定は復元できません。また、アプリを一度も開いていない状態でコントロールセンターからトンネルを開始した場合は、何も復元されません
  • Apple TV での SSID 設定を修正:SSID を持たないエントリ(TYPE:、BSSID:、ROUTER:)があると「SSIDサスペンド」を開いた際に例外が発生し、一覧は開くたびに [SSID Setting] を書き直し、SSID とサブネットの各エディターは対応する行のないメンバーを破棄していました。現在、一覧には単純な "<name>" suspend=true のエントリだけが表示され、それ以外はそのまま保持されます。ssid グループエディターはメンバーを宣言順に保持し、「照合方法」を選択できます。これらを保存すると、この設定は Apple TV では使用できず、iOS と macOS で使うために保存される旨が表示されます
  • 完全には表示できないエントリをエディターが壊していた問題を修正:複数のアドレスを持つ [Host] エントリは開いた時点で最初のアドレスだけに切り詰められ、カンマを含む [Script] の値(cron の 0 8,20 * * * や JSON の引数)は保存のたびに途中で切れ、[Body Rewrite] の行は追加の正規表現ペアを失い、ルール、グループ、ホスト、Map Local、ヘッダー書き換えの行は対応する行のないオプションを失い、「詳細」は開くたびにリスト項目内の空白を削除していました。エントリを開かずに保存したプロファイルには影響がなかったため、この問題は見過ごされていました
  • ダウンロードが混ざる問題を修正:各ダウンロードは専用の一時ファイルに保存され、読み込み後、またはダウンロードや読み込みに失敗したときに削除されます。これにより、管理された設定の更新が最初のダウンロードをいつまでも読み続けることはなくなり、同じ名前を提示する 2 つのアドレスが互いに上書きし合うこともなくなりました。また、サーバーが提示したファイル名によって保存先が決まることもなくなりました
  • ファイル形式がファイル名で判定されていた問題を修正:「URLからダウンロード」と管理設定の更新は、アドレスから配信される内容をボディで判定するようになりました。そのため、Clash 形式を配信する .conf のアドレスは追加時に変換され、更新時にそのような内容を見つけた場合はファイルをそのまま残します。変換は MANAGED-CONFIG ヘッダーを付ける前に行われ、変換に失敗した場合は最初のエラーが表示され、変換時の通知は件数が画面に表示されるとともにログにも書き込まれます
  • Wi-Fi ページのアップロードとダウンロードを修正:/up は /upload と同様に Clash と sing-box を変換し、どちらも <name>.conf として保存します。別の設定がすでに使っている名前は拒否され、/download は .conf.conf を生成しなくなり、エンコードされた filename* を送るようになりました。/delete は名前を NFC で比較し、完全一致を優先します。これにより、別の Unicode 形式で書かれた同じ名前を使って、使用中の設定を削除したり、使用中チェックをすり抜けたりすることはできなくなりました
  • 同じ名前の設定が確認なしに上書き保存されていた問題を修正:エディターと「URLからダウンロード」は保存前に確認するようになり、トンネルで実行中の設定を上書きした場合はその設定を再読み込みします
  • 非表示のポリシーグループがトンネルのグループ一覧とグローバル一覧に表示されていた問題を修正。使用中の非表示グループは表示されたままになり、select グループを指すグローバルは名前に基づいて一覧表示、チェック、復元されます
  • Wi-Fi アップロードページの QR 引き渡しを修正:chute://tv?url= による引き渡しが再びページ内に直接埋め込まれ、QR コードを読み取るとページの説明どおりに Chute iOS アプリが起動します。iPadOS がデスクトップのブラウザーとして報告するためにスマートフォン専用のチェックから漏れていた iPad でも、引き渡しができるようになりました。また、タップなしではカスタムスキームを開かないブラウザーには「Chute アプリで開く」ボタンが表示され、ページの 9 言語でローカライズされています
  • 複数のクラッシュを修正:「設定 › セッション」で発生するもの、loglevel = none を指定したプロファイルを設定エディターで開いたときのもの、トンネルが書き込み途中で残したセッション(以後そのセッションは開けなくなっていました)でのもの、ライセンスサーバーから予期しない応答があった後に起動のたびに発生するもの、ライセンスを読み取れなかったときに起動時と「ライセンスを表示」で発生するもの、共有フォルダーに不要なシステムファイルがあると設定一覧を開くたびに発生するものです。また、設定のフィールドを消去すると、実際に消去されるようになりました
  • 期限が来たサブスクリプションの更新によって、設定一覧の表示や編集内容の保存が最大 30 秒待たされていた問題を修正。更新はダウンロードの完了を受けて続行するようになり、他の処理を待たせることはありません
  • 2 つのスレッドが同じデータを同時に変更することで起きていたクラッシュを修正(コールドスタート時、セッションログの読み込み中、セッション一覧の更新中)
  • 再起動したトンネルが前回と同じ最初のローカルポートと 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 が対象にならなかった問題を修正
  • Apple TV で PROCESS-PATH と PROCESS-NAME-REGEX ルールが、プロセス名ではない名前と照合されていた問題を修正。これらのルールは PROCESS-NAME と同様に macOS 専用で、Apple TV では一致しません
  • 各種の安定性とパフォーマンスの改善

バージョン 1.4 (75)

新機能:

  • コントロールパネルに「Webコンソールアドレス」の行を追加:コンソールのリスナーが実際に起動しているときだけ表示され、開くとアクセストークンを URL に含んだ QR コードが表示されます。スマートフォンで読み取るだけでサインインでき、アドレスと 32 桁の 16 進数をリモコンで書き写す必要はありません
  • 設定に「オフライン診断バンドル」を追加。トンネルが動いていなくてもアプリ単独で作成します:デバイスとアプリの情報、tvOS が保持する VPN プロファイルの状態、選択中の設定の概要と解析エラー、ネットワークのセクション(到達性、リンク種別、DNS サーバー、ローカルアドレスとインターフェース)、秘匿処理済みの設定の冒頭、前回の実行の終わり方、最新セッションのログシャード、未送信のクラッシュレポート。tvOS には共有シートが無いため、アーカイブは推測できないパスで動く使い捨てのローカル HTTP サーバーから提供され、QR コードとして表示されます。画面を閉じるとリンクは無効になります
  • セッションログにレベルによる絞り込みを追加(すべて、Notify+、Warning+、Fatal)。ソフトウェアキーボードで検索を打つ代わりに、「警告だけ見る」がワンクリックで済みます。パーサーが判別できなかった行が隠されることはありません
  • セッション詳細に書き換えの帰属を追加:「REWRITES」セクションに、リクエストをルーティングしたルールとポリシーの横に、リクエストを変更した URL 書き換え・ヘッダー書き換え・ボディ書き換え・モックレスポンスのルールが表示されます
  • 設定エディターに「Wi-Fiアクセスを許可」の行を追加。Surge の http-listen = 0.0.0.0:… や sing-box の allow-lan をインポートすると生じるキーで、これまでのエディターでは表示すらできない状態でした。有効な間は 2 つのリスナー行が「オン」と表示されロックされます(エンジン自身が両方のリスナーを広げるため)
  • 内蔵言語にフランス語を追加し、内蔵 8 言語すべてを App Store に申告しました
  • Web コンソールに「現在」と「履歴」のタブ、接続の詳細ビュー(一致したルール、ルールの出所、ポリシー、アダプター、DNS の出所、切断理由、リクエストとレスポンスのボディ)、どの書き換えルールが発火したかを示す「ルール」ページ、「診断」ページ(メモリフットプリント、CPU、稼働時間、フロー数、前回の実行の終わり方、拒否の集計、イベントログ、Tailscale スナップショット、ping / DNS / 出口 / URL テストのプローブ)を追加。コンソールは 9 言語すべてで完全対応になりました。テレビ自体にはファイルの置き場所が無いため、tvOS ではランタイム診断バンドルや HAR エクスポートもこのコンソールから取得します
  • 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 はもう無認証で公開されません。エンジンがトークンを生成し、「Webコンソールアドレス」の QR コードがそれを運びます。匿名アクセスを維持するには 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 実行分をまるごと読み込む代わりに、新しいシャードからシャード 1 つ分だけを取り込み、古いシャードを省いたことを表示し、ローテーションをまたいで書き込み中のシャードを追い続けます
  • エンジンは実行中に実行マーカーを保持し、次回起動時に前回の実行が正常に停止したか強制終了されたかを、ログヘッダー、/api/status、両方の診断バンドルで報告します
  • HAR エクスポートは記録されたフレームからエンジンが生成するようになり、ステータスコード、タイムスタンプ、タイミングが実際の値になりました。各エントリには _kl の下に選択されたポリシー、一致したルール、書き換えのヒットが含まれます
  • ライセンスが必要なのは購入ページで販売している 3 つの機能(複数設定、ローカルプロキシサーバー制御、トラフィックレコーダー)だけになりました。HTTP API と Webコンソールのスイッチ、プロトコルスニッフィング、Optimus DNS、DNS キャッシュの消去、「Webコンソールアドレス」の行はライセンスを求めません。トンネルが停止している無料ユーザーには、購入シートではなくトンネルの開始を促します
  • コンソールがループバックアドレスにバインドされている場合、開けない QR コードを出す代わりに、この Apple TV でしか開けないことと何を設定すべきかを説明します。アクセストークンも部屋中から見える画面には表示しなくなりました
  • 購入時の説明には、1 回の購入で Apple TV 3 台と iPhone または iPad 3 台をカバーすることを明記しました。「IAP 購入を復元」で何も見つからなかった場合、アラートに「マニュアルを見る」が表示され、アプリの言語でクロスプラットフォームのライセンス手順を QR コードで示します
  • loglevel = info では、1 MiB 以上を転送した大量フローが切断時に 1 行を記録し、リモート側とアプリ側でそれぞれどれだけ待ったかを示します

バグ修正:

  • TUN モードの MitM を修正:MitM ルールに一致したホストがタイムアウトまで停止し、HTTPS のヘッダー書き換え、ボディ書き換え、モックレスポンス、復号キャプチャがアプリのトラフィックに一切適用されていませんでした(ローカル HTTP/SOCKS5 プロキシ経由のトラフィックは影響なし)
  • allow-wifi-access が効かない問題を修正:ローカルの HTTP と SOCKS5 リスナーがループバックに留まり、Wi-Fi 上の他のデバイスから到達できませんでした。このフラグ(およびインポート時の sing-box の allow-lan)で両リスナーが広がり、無効にすると再バインドされます
  • 「Webコンソールアドレス」の行が現れうるようになって以降、コントロールパネルの 2 番目のセクションでスイッチを切り替えるとアプリがクラッシュしていた問題を修正。行単位の再読み込みの下でテーブルの行数が変わっていました
  • エンジンがログを一定サイズでローテーションするようになって以降、セッション画面が実行のうち一部しか表示せず、8 回目のローテーション以降はセッションの日付が失われていた問題を修正。シャードは番号順に並び、ライブ表示もローテーションで止まらなくなりました
  • ログ画面がセッションのすべてのシャードを一度にメモリへ読み込んでいた問題(Apple TV では最大 64 MB のテキストになります)と、レベルによる絞り込みが、隠されたエントリに属する複数行の続き行だけを通してしまう問題を修正
  • 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 になります。ルールエディターのプレースホルダーは PROTOCOL の http | https、IN-TYPE は TCP | UDP と表示されていましたが、どちらもそのルールが実際に受け付ける値を示すようになりました
  • スニッフィングした Host ヘッダー内の角括弧付き IPv6 リテラル([2001:db8::1]:8080)がホスト名 [2001 として読まれていた問題を修正
  • select グループが先頭以外のメンバーに設定された状態でトンネルを開始すると「ポリシーグループが切り替わりました」通知が出て、開始後の再構築がフラッピング警告を引き起こしていた問題を修正。記憶された選択が無いグループは、先頭メンバーに強制されるのではなくプロファイルの default= に従います
  • external-http-controller = *:9090 と :::9090(どちらも文書化された書き方)が拒否され、コントローラーが黙って起動しなかった問題を修正
  • 高負荷時に XHTTP トランスポートで時折発生していたクラッシュを修正
  • ライセンス画面で別製品の証明書が Chute のバンドルと表示されていた問題を修正。このアプリが正当に保持できない種類は「不明」と表示され、Android のラベルを追加しました
  • 「情報」画面の「Chute iOS」の QR コードが失効した App Store ID を指していた問題と、「評価」が本アプリではなく iOS 版のページを開いていた問題を修正
  • Wi-Fi アップロードページのレイアウトを修正
  • 中国語とタイ語における書き換え系統の名称を、マニュアルおよび設定ファイル自身のセクション名と一致するよう修正
  • 各種の安定性とパフォーマンスの改善

バージョン 1.3 (62)

新機能:

  • ポリシーエディターにXHTTPトランスポートを追加:スイッチ、モード(auto、packet-up、stream-up、stream-one)、パス、ホストを設定でき、Trojan・VMess・VLESSに対応
  • AEGIS-128LおよびAEGIS-256 Shadowsocks暗号化方式を追加
  • これまで欠けていたShadowsocks 2022(SS2022)暗号化方式を追加:2022-blake3-aes-128-gcm、2022-blake3-aes-256-gcm、2022-blake3-chacha20-poly1305
  • TLSポリシー向けにECH(Encrypted Client Hello、暗号化クライアントハロー)設定を追加:有効化スイッチ、固定ECH設定(ech-config)、カバー名の上書き(ech-public-name)
  • クライアントフィンガープリント(uTLS)をポリシー単位で設定可能にし、プロファイル全体の既定値も追加
  • トラフィック難読化機能を備えたWireGuard派生のAmneziaWGプロトコルに対応
  • 操作を中断するアラートを置き換える、tvOSのフォーカスナビゲーションに対応した設定エラーレポート画面を追加
  • TLS 1.3向けにX25519MLKEM768耐量子ハイブリッド鍵交換を追加

改善:

  • ポリシーエディターは保存時に、現在の画面では編集できない既存のオプション(ECH、ALPN、証明書ピンニング、test-url、udp-relay)を保持するようになりました

バグ修正:

  • 不正なIP-CIDRルールによるトンネルのクラッシュを修正
  • SSHのidle-timeoutおよびREALITYのspiderx設定が誤ったキー名で書き込まれ、保存時に破棄される問題を修正
  • 言語切り替え時のクラッシュを修正
  • 画面上のコントロールの表示問題を修正
  • 安定性とパフォーマンスのさまざまな改善

バージョン 1.2 (45)

新機能:

  • Tailscaleを組み込みプロキシタイプとして追加:Tailscaleアカウントを設定し、tailnetに参加してApple TVのトラフィックをTailscaleノード経由で転送できます。別のクライアントは不要です
  • Tailscaleコントロールパネルを追加:ノードのリアルタイムステータス(オンライン/オフライン、IP、最終確認時刻)を表示し、リモコンから出口ノードを切り替えできます
  • ダークなレベル別セッションログを備える全画面DashboardとSessionsビューを追加
  • アクティブなトンネルを確認するためのトンネル詳細パネルを追加
  • ポリシーエディタにMASQUEプロキシタイプを追加

改善:

  • Apple TVのTUNスループットを向上
  • TailscaleおよびWireGuardの接続安定性とスループットを向上
  • リスト、電源ボタン、About行にわたるホーム画面のフォーカスナビゲーションをより予測しやすく改善
  • 設定のレイアウトをiOSに合わせて調整(Always Onエントリを削除、Twitter→X、APNs/Rate/Languageの各項目を調整)
  • VPNオフ時のみホームの右側リストにデバイスIPを表示

バグ修正:

  • Dashboardの誤った「VPNが実行されていません」ステータスと、消えずに残る「実行中」ラベルを修正
  • Dashboard/Sessionsを開く際やTailscaleノードリストから戻る際のフォーカスの消失やジャンプを修正
  • Menuボタンの挙動を修正し、リストを確実に閉じてフォーカスを正しく戻すように改善
  • セッションリストのフッター表記を「スワイプで削除」から「長押しで削除」に修正
  • 各種の安定性とパフォーマンスの改善

バージョン 1.0 (35)

  • 初回リリース
S. Smart Rabbit LLC © All Rights Reserved            updated 2026-10-01 17:54:51

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

results matching ""

    No results matching ""