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=——名称中含逗号或空格时加引号——使该组的每个成员都经由这里指定的那一个策略连接其服务器 - 在「高级」下新增「前置代理」一行:它写入
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 相同):成员按书写顺序串联——第一个直接连接,之后的每一个都经由它前面的成员到达,最后一个连接目标。组类型选择器中新增中继;中继组显示「名称」、「策略组类型」与「隐藏」,按顺序保留成员并在保存时保留其参数;成员少于两个且没有动态来源时,会给出专门的提示并拒绝保存 - 新增随机组(
random,与 Shadowrocket 相同):每条连接随机选择一个成员,UDP 只在能承载 UDP 的成员中选择。随机组没有可以更改的选择,因此不会出现在选择策略组所用策略的地方;组编辑器也会让它保持随机组类型 - 新增 VMess 与 VLESS 的 UDP 支持:以前发往这两种协议的 UDP 会被直接拒绝(按
udp-policy-not-supported-behaviour处理,默认为 REJECT);现在每个目标地址使用一条连接传输,与 mihomo、sing-box 和 Shadowrocket 一致 - 规则集加载失败的提供者会在它那一行用红字显示原因——从未成功过的下载,或超过大小上限的载荷;以前这样的提供者看起来和正常的完全一样,而引用它的规则却什么都匹配不到
- 编辑器不再丢弃无法显示的内容:规则会保留没有对应行的选项(
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与未知参数;hosts 会保留带#proxy与注释的完整服务器列表,能显示 DoH / DoT / DoQ / DoH3 取值,并新增脚本类型;Map Local 会保留二进制正文、数据类型与状态码,也会保留取值中含冒号的 Surge 风格头部;模块会保留#!system_version与其他平台的配置行 - 为编辑器此前无法显示的设置新增了对应的行:DoT / DoQ / DoH3,专用的 direct / proxy-server / fallback DNS,SVCB,跟随规则并可跳过证书校验的加密 DNS,不经中继的 UDP,
proxy-test-url/internet-test-url/test-timeout,MitM 的 HTTP/2 与 QUIC 阻断及排除主机名,Replica 的过滤方式,策略选择器中的 REJECT 系列与内置 PROXY,FINAL 上的dns-failed,以及可作为策略主机的 IPv6 地址;Header 重写新增「替换 Header(正则)」,URL 重写新增「拒绝数组」与「拒绝透明 GIF」,脚本新增通用类型与事件名称,端口范围、HOSTNAME-TYPE、PROTOCOL 与提供者格式也有了说明可填内容的占位文本 - 新增
tun-included-routes:列出的 CIDR 会加在隧道默认路由之后,因此原本会被网络接口自身子网接走的网段(系统优先选择更具体的路由)也会经过 Chute。会切断隧道自身的条目(回环、隧道自己的子网、链路本地、组播、广播、前缀长度为 0)会被拒绝并在日志中说明原因,私有网段可以使用但会给出警告,修改后的列表在热重载后即生效,无需重启隧道 - Body 重写新增 jq:写在配置文件中的
http-request-jq与http-response-jq会对 JSON 正文运行真正的 jq 程序(Apple TV 上的 Body 重写编辑器不提供这两种类型);程序无效时会报告错误并跳过该规则,正文不是 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;对于会丢弃 UDP DNS 的网络,也可以直接使用普通的tcp://上游 - 新增
encrypted-dns-follow-outbound-mode、allow-dns-svcb(未开启时 HTTPS 与 SVCB 查询一律返回空应答),以及逐服务器的#h3、#skip-cert-verify、#disable-ipv4、#disable-ipv6与#disable-qtype= - 本地 DNS 映射能做的更多了:
[Host]条目会保留列出的每一台服务器并同时查询,可以把一个域名映射到多个地址,可以以规则集为键(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=会把它的连接固定在一个网络接口上 - 新增脚本 API 能力:
$httpAPI无需打开 socket 即可调用引擎自身的路由,$httpClient会遵循policy,read-etc-hosts让 DNS 读取 hosts 文件,$event.name报告实际触发的事件
改进:
- 应用显示的每一条文字现在都有全部八种语言的版本:此前回退到英文的八个标签(包括 Tailscale 的几行)已经翻译,应用内置文字与语言文件不一致的 88 处也已统一
- 各 Chute 应用的用词保持一致:日志的级别筛选与七种标记采用引擎的级别名称,负载均衡的标签与 Chute Mac 一致,Web 控制台、流量捕获、模拟响应、本地 DNS 映射与 HTTP 控制 API 在八种语言中各自用法统一
- 导入已发布的配置不再丢失路由:
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 暂停」时,任何没有 SSID 的条目(
TYPE:、BSSID:或ROUTER:)都会出错,列表每次进入都会重写[SSID Setting],SSID 与子网编辑器会丢掉没有对应行的成员。现在列表只显示简单的"<name>" suspend=true条目,其余内容原样保留;ssid 组编辑器按声明顺序保留成员,并提供「匹配方式」选择;保存这类设置时会提示它们在 Apple TV 上不可用,只为在 iOS 和 macOS 上使用而保存 - 修复编辑器破坏无法完整显示的条目的问题:含多个地址的
[Host]条目一打开就被截成第一个地址;含逗号的[Script]取值(cron 的0 8,20 * * *、JSON 参数)每次保存都会被截断;[Body Rewrite]行会丢失额外的正则对;规则、组、host、Map Local 或 header-rewrite 行会丢失没有对应行的选项;「高级」每次进入都会去掉列表条目内部的空格。没有打开过该条目就保存配置是安全的,所以这个问题一直没有被发现 - 修复多次下载相互混淆的问题:现在每次下载都写入各自的临时文件,读取后即删除,下载或读取失败时也会删除,因此托管刷新不会再一直读到第一次下载的内容,两个建议名称相同的地址也不会再互相覆盖;服务器建议的文件名也不再能决定文件写到哪里
- 修复格式由文件名决定的问题:「从 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 上传页面的二维码交接:
chute://tv?url=交接重新内联在页面中,扫码后会像页面所说的那样打开 Chute iOS 应用;iPad 也能完成交接,因为 iPadOS 报告的是桌面浏览器,此前只识别手机的判断漏掉了它;不允许在没有点按的情况下打开自定义协议的浏览器,现在会看到一个「用 Chute 打开」按钮,并提供与页面相同的九种语言 - 修复几处崩溃:在「设置 › 会话」中;配置编辑器打开写了
loglevel = none的配置时;打开隧道只写了一半的会话时(此前这样的会话永远无法打开);许可证服务器返回意外应答后的每次启动;许可证无法读取时的启动与「查看许可证」;以及共享文件夹里有杂散系统文件时每次进入配置列表。清空设置中的字段现在会真正清空 - 修复到期的订阅刷新让配置列表与保存编辑等待最多 30 秒的问题;刷新现在在下载完成时接着进行,不会阻塞任何操作
- 修复两个线程同时修改同一份数据导致的崩溃——发生在冷启动期间、读取会话日志时,以及刷新会话列表时
- 修复重启后的隧道沿用上一次运行的起始本地端口与 TCP 序列号的问题:仍持有旧连接的 WireGuard 对端会因此重置新连接。隧道的 TCP 协议栈现在从系统随机源取种子,并按 RFC 6528 所述选择初始序列号
- 修复 XHTTP 经由隧道时在应用第一次写入后就停滞的问题:TLS 握手无法完成,上传只发出一个分块;现在每次写入都会按顺序完成,待上传的数据超过 1 MB 时,下一次写入会等它消化后再继续
- 修复
PROTOCOL,TCP与PROTOCOL,UDP永远不匹配的问题:现在每个入站都会判定自己的传输方式,因此用 AND 规则阻断 QUIC 的常见写法可以生效 - 修复 AND / OR / NOT 中的
RULE-SET与DOMAIN-SET恒为假——这让NOT,((RULE-SET,…))也把国内流量一并拒绝——以及逻辑规则中的SCRIPT恒为真的问题 - 修复按名称书写时
RULE-SET,<name>,<policy>,no-resolve会丢失no-resolve、GEOIP 与 IP-ASN 的UNKNOWN永不匹配、Map Local 的status-code=在 HTTP/2 上被忽略,以及明文 HTTP 上的响应 Header 重写只匹配路径、导致按完整 URL 书写的模式永远无法命中的问题 - 修复
block-quic只认 Surge 的一种取值、写成其他取值时完全不阻断 QUIC 的问题 - 修复脚本 API:
$klne.getPolicyGroups()与selectPolicy()第一次使用时不再抛错,reloadConfiguration()会真正重载,getActiveConnections()报告真实的主机、端口与 id,closeConnection()会真正关闭,带requires-body的 before-send 脚本终于能收到正文 - 修复
[Replica] keyword-filter比较整个主机名、而不是检查主机名是否包含关键字的问题,因此keyword-filter = google无法覆盖www.google.com - 修复 PROCESS-PATH 与 PROCESS-NAME-REGEX 规则在 Apple TV 上拿一个并非进程的名称来比较的问题;它们与 PROCESS-NAME 一样只在 macOS 上可用,在这里永远不会匹配
- 各项稳定性和性能改进
版本 1.4(75)
新增功能:
- 控制面板新增「Web 控制台地址」一行:只有在控制台监听真正启动后才会出现,打开后显示一个二维码,URL 中已带上访问令牌——用手机扫一下即可登录,不必用遥控器抄写地址和 32 个十六进制字符的令牌
- 设置中新增「离线诊断包」,由应用在隧道未运行时自行生成:设备与应用信息、tvOS 记录的 VPN 描述文件状态、所选配置的摘要及其解析错误、网络分区(可达性、链路类型、DNS 服务器、本机地址与接口)、脱敏后的配置开头、上次运行的结束方式、最新会话的日志分片,以及待上传的崩溃报告。由于 tvOS 没有分享面板,压缩包由一个一次性的本地 HTTP 服务器在不可猜测的路径上提供,并以二维码显示;离开该界面后链接立即失效
- 会话日志新增按级别过滤——全部、Notify+、Warning+、Fatal——「只看警告」变成点一下的事,而不必在虚拟键盘上打字搜索;解析器无法判定级别的行永远不会被隐藏
- 会话详情新增重写归因:新增的「改写」分区会在路由该请求的规则与策略旁边,标出改动了该请求的 URL 重写、Header 重写、Body 重写或模拟响应规则
- 配置编辑器新增「允许 Wi-Fi 访问」一行——这是导入 Surge 的
http-listen = 0.0.0.0:…或 sing-box 的allow-lan后产生的键,也是此前编辑器完全无法显示的状态;开启时两个监听开关显示为开启并被锁定,因为引擎会自行放宽两个监听器 - 新增法语作为内置语言,并向 App Store 声明全部八种内置语言
- Web 控制台新增「当前」与「历史」标签页、连接检视视图(命中的规则、规则来源、策略、适配器、DNS 来源、关闭原因,以及请求与响应正文)、可显示哪些重写规则已经命中的「规则」页面,以及「诊断」页面(内存占用、CPU、运行时长、连接数、上次运行的结束方式、拒绝计数、事件日志、Tailscale 快照,以及 ping / DNS / 出口 / URL 测试探测);控制台现已完整支持全部九种语言。由于电视本身无处存放文件,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(同时报告两次 DNS 匹配的结果)、无需重载即可调整日志级别与子系统分区的GET|PUT /api/loglevel,以及只检查、不应用配置的POST /api/config/validate
改进:
- 配置未指定
external-http-secret时,HTTP 控制 API 不再开放访问:引擎会生成一个令牌,由「Web 控制台地址」的二维码携带;如需保持匿名访问,请设置external-http-secret = none;此外通配监听地址不再被当作回环地址 - 大型列表的规则匹配大幅加快:RULE-SET 与 DOMAIN-SET 的内容在下载或从缓存恢复时建立索引,不再按连接逐次流式扫描;只含域名规则的规则表通过哈希方案匹配——一份 5 万行的列表每次查询从约 94 ms 降到 2 ms 以内,每个索引约占 100 KB 内存
- UDP 流只匹配一次:一条流的判定会记住 60 秒,后续数据报跳过两轮匹配以及其间的 DNS 查询
- 网络切换后的恢复更好:上游源地址已不存在于任何接口上的隧道会被直接关闭,而不是让应用一直挂到空闲超时;能建立连接却不传数据的路径会被报告为黑洞
- 会话日志按 8 MB 分片写入(每次运行最多八个,最旧的先删除);日志视图从最新的分片起取满一个分片的量,不再把整次运行读进内存,并在省略了更早分片时给出提示,同时能跨越轮转持续跟随正在写入的那个分片
- 引擎运行期间会维持一个运行标记,下次启动时报告上次运行是正常停止还是被系统终止——写入日志头部、
/api/status以及两种诊断包 - HAR 导出现在由引擎根据记录的帧生成,状态码、时间戳和耗时都是真实值,每个条目都在
_kl下带有所选策略、命中的规则和重写命中 - 只有购买页面出售的三项功能需要许可证——多配置、本地代理服务器控制和流量记录器;HTTP API 与 Web 控制台开关、协议嗅探、Optimus DNS、清除 DNS 缓存和「Web 控制台地址」一行不再要求许可证;隧道未启动的免费用户现在会被提示先启动隧道,而不是弹出购买页
- 控制台绑定在回环地址时,现在会说明它只能在这台 Apple TV 上打开以及应当改成什么,而不是给出一个打不开的二维码;访问令牌也不再显示在整个房间都能看到的屏幕上
- 购买提示现在说明一次购买覆盖三台 Apple TV 以及三台 iPhone 或 iPad;「恢复 IAP 购买」没有找到购买记录时,弹窗会提供「查看手册」,并以应用当前语言显示跨平台许可说明的二维码
loglevel = info下,传输量达到 1 MiB 的大流量连接会在关闭时记录一行日志,说明它在远端一侧和应用一侧各等待了多久
错误修复:
- 修复 TUN 模式下的 MitM:命中 MitM 规则的主机会一直卡到超时,导致 HTTPS 的 Header 重写、Body 重写、模拟响应和解密捕获对应用流量从未生效(经由本地 HTTP/SOCKS5 代理的流量不受影响)
- 修复
allow-wifi-access不起作用的问题:本地 HTTP 与 SOCKS5 监听器一直停留在回环地址,Wi-Fi 上的其他设备无法访问;现在该选项(以及导入时 sing-box 的allow-lan)会放宽两个监听器,关闭时重新绑定 - 修复控制面板第二个分区在「Web 控制台地址」一行可能出现之后,切换任意开关都会导致应用崩溃的问题——单行刷新时表格的行数已经变化
- 修复引擎改为按固定大小轮转日志之后,会话视图只显示某一段运行记录、以及会话在第八次轮转后丢失日期的问题;分片现在按序号排序,实时视图也不会再在轮转处卡住
- 修复日志视图一次性把会话的全部分片读入内存的问题——在 Apple TV 上可达 64 MB 文本——以及级别过滤会放行多行条目的后续行、而这些行所属的条目本身已被过滤隐藏的问题
- 修复 MitM HTTP/1.1 的响应 Header 重写被记录为已应用、客户端收到的却仍是原始头部的问题,以及按完整 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」二维码指向失效 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)设置,可按策略单独设置,也可设置全局默认值
- 新增 AmneziaWG 协议支持;AmneziaWG 是一种带流量混淆的 WireGuard 变体
- 新增支持 tvOS 焦点导航的配置错误报告界面,取代原有会阻断操作的弹窗
- 新增 X25519MLKEM768 后量子混合密钥交换(TLS 1.3)
改进:
- 策略编辑器现在会在保存时保留当前界面无法编辑的现有选项(ECH、ALPN、证书固定、
test-url、udp-relay)
错误修复:
- 修复由格式错误的
IP-CIDR规则导致的隧道崩溃 - 修复 SSH
idle-timeout与 REALITYspiderx设置以错误的键名写入并在保存时被丢弃的问题 - 修复切换语言时的崩溃
- 修复屏幕控件的显示问题
- 各项稳定性和性能改进
版本 1.2(45)
新增功能:
- 新增 Tailscale 内置代理类型:可配置 Tailscale 账户、加入 tailnet,并通过 Tailscale 节点转发 Apple TV 流量,无需安装独立的 Tailscale 客户端
- 新增 Tailscale 控制面板:实时显示节点状态(在线/离线、IP、最近活跃时间),并支持在遥控器上切换出口节点
- 新增全屏仪表板与会话视图,提供深色按级别的会话日志
- 新增隧道详情面板,用于查看活跃隧道
- 在策略编辑器中新增 MASQUE 代理类型
改进:
- 提升 Apple TV 上的 TUN 吞吐
- 提升 Tailscale 和 WireGuard 的连接稳定性与吞吐
- 优化主屏幕在列表、电源键和 About 行之间的焦点导航,使其更可预期
- 设置布局与 iOS 对齐(移除 Always On 条目、Twitter 改为 X,并打磨 APNs、Rate 和 Language 行)
- 仅在 VPN 关闭时在主屏幕右侧列表显示设备 IP
错误修复:
- 修复仪表板错误显示“VPN 未运行”状态及“运行中”标签残留的问题
- 修复打开仪表板/会话视图以及从 Tailscale 节点列表返回时的焦点丢失与跳转
- 修复 Menu 键行为,使其能可靠关闭列表并正确返回焦点
- 修复会话列表底部文案,将"滑动删除"更正为"长按删除"
- 各项稳定性和性能改进
版本 1.0(35)
- 首次发布
本页为英文版的翻译。如内容有出入,以英文版为准。