Chute iOS 发布说明
版本 1.2.2(382)
新增功能:
- 新增代理链:策略可以用
underlying-proxy指定一个上游,经由它连接自己的服务器;策略组可以让全部成员经由同一个上游;「高级」下新增的「前置代理」一行(global-underlying-proxy)则让所有没有自带上游的节点都走它。除 Tailscale 外的所有传输都能串联:流式协议沿用上游的流;Hysteria2、TUIC、MASQUE 与基于 HTTP/3 的 XHTTP 以固定 1280 字节的包走上游的 UDP 中继;WireGuard 与 AmneziaWG 隧道经由上游连接,内层 MTU 为 1280 字节;SSH 与 AnyTLS 会话在上游之上建立。形成循环、嵌套超过 16 层或指向不存在策略的链会被拒绝,绝不会改为直接连出 - 新增中继组(
relay,与 Clash、mihomo 相同):成员按书写顺序串联——第一个直接连接,之后的每一个都经由它前面的成员到达,最后一个连接目标。组编辑器新增中继类型,会按顺序保留成员,并要求至少两个成员 - 新增随机组(
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 一致 - Body 重写新增 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;对于会丢弃 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>),并接受ssid:<name>做按网络的映射 - 新增规则通知:任何规则(包括 FINAL)都可以带
notification-text=与notification-interval=,命中时发出通知,同一条规则在一个间隔内最多通知一次;通知遵循应用的「允许通知」开关,点按通知会打开它携带的 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=会把它的连接固定在一个网络接口上 - 新增脚本 API 能力:
$httpAPI无需打开 socket 即可调用引擎自身的路由,$httpClient会遵循policy,read-etc-hosts让 DNS 读取 hosts 文件,$event.name报告实际触发的事件 - 新增模拟响应控制项——正文可以是文本、文件、base64 或 1×1 GIF,并可设置状态码与校验——以及 URL 重写与 Header 重写的类型表,其中包含用正则表达式替换头部取值的模式
改进:
- Chute 现在需要 iOS 15 或更高版本
- 每个结构化编辑器现在都会保留它不显示的内容:各构建器会原样带过不渲染的键——规则其余的选项、AND / OR / NOT 的子规则、
[Host]条目的其他地址、模块头部的其他行——因此打开再保存配置不会再改写它,编辑器不认识类型的条目则按文本编辑 - Body 重写、Header 重写、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 上传页面会保留所上传文件的扩展名,名称已被占用时拒绝并说明原因,并按 RFC 6266 的要求发送非 ASCII 名称,因此
上传的配置.conf会以这个名字送达 - 新的设置项、消息与通知都提供全部八种内置语言,隧道的通知会带上隧道停止的原因
错误修复:
- 修复 Hysteria2 丢弃一个 QUIC DATAGRAM 帧装不下的 UDP 数据报的问题——这会让应用的 HTTP/3 无法通过,只能退回 TCP;现在较大的数据报会在发出时拆分,服务器分片发回的应答也会被重组
- 修复重启后的隧道沿用上一次运行的起始本地端口与 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-NAME、PROCESS-PATH 与 PROCESS-NAME-REGEX 规则在 iOS 上匹配到浏览器流量的问题:在 iOS 上它们比较的是浏览器的产品名,而不是进程名。这些规则只在 macOS 上可用,现在在 iOS 上不会匹配任何流量
- 修复保存过的仪表盘配置被按错误类型读回、每次点按都会崩溃的问题;修复含重复项的列表在拖动或删除行后表格与数据不一致的问题;并修复已关闭的界面仍被回调时导致的崩溃
- 修复订阅自动刷新阻塞主线程 30 秒、导致应用在刷新途中进入后台时被看门狗终止的问题;另外修复控制中心开关因小组件没有控制 VPN 的权限而始终失败、画中画被呈现两次,以及小组件的 continuation 被恢复两次的问题
- 修复下载与命名问题:保留下来的下载文件会被下一次刷新重新读取;两个地址建议同一个名称时,一个地址会被当成另一个地址的配置;导入或复制会删掉 iCloud 中被读取的那个原文件;上传的文件名会丢掉第一个点之后的所有内容;地址以裸扩展名结尾的订阅会被存成隐藏文件;编辑结果会未经询问就覆盖可读的配置
- 修复 Chute 未运行时打开
chute://链接(例如由快捷指令自动化触发)没有任何反应的问题;现在冷启动时也会处理这类链接 - 各项稳定性和性能改进
版本 1.2.0(351)
新增功能:
- 控制面板新增 Web 控制台地址:「Web 控制台」一行会显示控制台的主机地址,点按后可选择「打开」「复制地址」「复制访问令牌」——「打开」会把令牌带在 URL 里,无需手动输入即可登录
- 控制面板「本地代理」分区末尾新增「运行时诊断包」:由运行中的引擎生成一份脱敏压缩包(配置、健康快照、本次运行的事件、已加载的规则与策略、DNS、流量和日志分片)并交给分享面板;需要隧道处于连接状态,但不需要
external-http-controller - 设置 → 「诊断」分区新增「离线诊断包」,由应用在隧道未运行时自行生成:设备与应用信息、iOS 记录的 VPN 描述文件状态、所选配置的摘要及其解析错误、三个诊断页面的文本、脱敏后的配置开头、上次运行的结束方式、最新会话的日志尾部,以及待上传的崩溃报告
- 会话视图新增「分享日志」,可分享该会话日志的全部分片
- 会话详情新增重写归因:「策略」分区现在会在路由该请求的规则与策略旁边,标出改动了该请求的 URL 重写、Header 重写、Body 重写或模拟响应规则
- 新增「网络地址变化」通知,取代原来的「出口 IP 变更」:显示本设备在物理链路上自己的 IPv4 与 IPv6 地址,每个地址族一行,并标出位于 NAT 之后的 IPv4;IPv6 与可路由的 IPv4 在本地读取,只有 NAT 内的 IPv4 需要发出一次 STUN 请求
- 新增法语作为内置语言
- 新增重新设计的 Wi-Fi 上传页面,风格与 Web 控制台一致,提供九种语言
- Web 控制台新增「当前」与「历史」标签页、连接检视视图(命中的规则、规则来源、策略、适配器、DNS 来源、进程、关闭原因,以及请求与响应正文)、可显示哪些重写规则已经命中的「规则」页面,以及「诊断」页面(内存占用、CPU、运行时长、连接数、上次运行的结束方式、拒绝计数、事件日志、Tailscale 快照,以及 ping / DNS / 出口 / URL 测试探测);控制台现已完整支持全部九种语言
- 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 不再开放访问:引擎会生成一个令牌,控制面板可显示并复制;如需保持匿名访问,请设置external-http-secret = none;此外通配监听地址不再被当作回环地址 - 大型列表的规则匹配大幅加快:RULE-SET 与 DOMAIN-SET 的内容在下载或从缓存恢复时建立索引,不再按连接逐次流式扫描;只含域名规则的规则表通过哈希方案匹配——一份 5 万行的列表每次查询从约 94 ms 降到 2 ms 以内,每个索引约占 100 KB 内存
- UDP 流只匹配一次:一条流的判定会记住 60 秒,后续数据报跳过两轮匹配以及其间的 DNS 查询
- 网络切换后的恢复更好:上游源地址已不存在于任何接口上的隧道会被直接关闭,而不是让应用一直挂到空闲超时;同类型的路径变化(蜂窝网络重新附着)现在也能被察觉;能建立连接却不传数据的路径会被报告为黑洞
- 会话日志按 8 MB 分片写入(每次运行最多八个,最旧的先删除),每个分片开头都有说明所属运行及其开始时间的头部,长时间会话不会再产生一个大到无法取回的文件;日志查看器会按顺序加载全部分片,并持续跟随正在写入的那个
- 引擎运行期间会维持一个运行标记,下次启动时报告上次运行是正常停止还是被系统终止——写入日志头部、
/api/status以及两种诊断包 - HAR 导出现在由引擎根据记录的帧生成,状态码、时间戳和耗时都是真实值,每个条目都在
_kl下带有所选策略、命中的规则和重写命中;仪表盘的「导出 HAR」与连接详情均使用该导出 - 只有购买页面出售的三项功能需要许可证——高级服务器控制、MitM 和流量记录器;协议嗅探、Optimus DNS、外部访问、HTTP API、Web 控制台和清除 DNS 缓存不再要求许可证
- 控制面板会跟随隧道状态:隧道停止时重置状态,重新连接时重新查询,并且只在控制台页面实际提供服务时才显示其地址
allow-wifi-access开启时,配置编辑器会锁定两个监听开关(引擎会自行放宽两个监听器),关闭该选项后恢复原先配置的接口- 「恢复 IAP 购买」没有找到购买记录时,弹窗会提供「查看手册」,以应用当前语言打开跨平台许可说明;购买提示现在说明一次购买覆盖三台 iPhone 或 iPad 以及三台 Apple TV
- Tailnet 节点列表现在与其他列表风格一致——内嵌分组样式,空分区显示「无条目」——并在每次出现时重新查询节点状态
loglevel = info下,传输量达到 1 MiB 的大流量连接会在关闭时记录一行日志,说明它在远端一侧和应用一侧各等待了多久- 诊断页面只在有内容可复制的行上提供「复制」
错误修复:
- 修复 TUN 模式下的 MitM:命中 MitM 规则的主机会一直卡到超时,导致 HTTPS 的 Header 重写、Body 重写、模拟响应和解密捕获对应用流量从未生效(经由本地 HTTP/SOCKS5 代理的流量不受影响)
- 修复
allow-wifi-access不起作用的问题:本地 HTTP 与 SOCKS5 监听器一直停留在回环地址,Wi-Fi 上的其他设备无法访问;现在该选项(以及导入时 sing-box 的allow-lan)会放宽两个监听器,关闭时重新绑定 - 修复 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,规则编辑器的占位文本也已相应更新
- 修复被带域名子规则的 AND/OR/NOT 规则路由到代理的域名仍会被 DNS 服务器真实解析、导致 DNS 应答与路由判定不一致的问题
- 修复嗅探到的 Host 头中带方括号的 IPv6 字面量(
[2001:db8::1]:8080)被当成主机名[2001的问题 - 修复隧道启动时,只要某个 select 组选中的不是第一个成员就会弹出「策略组已切换」通知、且启动后的重建会触发震荡警告的问题;没有记住选择的组现在遵循配置里的
default=,而不是被强制切到第一个成员 - 修复隧道运行一段时间后打开控制面板会让应用卡在 100% CPU、内存不断上涨的问题
- 修复 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)设置,可按策略单独设置,也可设置全局默认值
- 新增 AmneziaWG 协议支持及参数编辑器;AmneziaWG 是一种带流量混淆的 WireGuard 变体
- 新增从订阅 URL、文件和 Wi-Fi 上传导入 Clash 与 sing-box 配置
- 新增支持复制内容的配置错误报告页面,取代原有会阻断操作的弹窗
- 新增 X25519MLKEM768 后量子混合密钥交换(TLS 1.3)
改进:
- 策略编辑器现在会在保存时保留当前界面无法编辑的现有选项(ECH、ALPN、证书固定、
test-url、udp-relay)
错误修复:
- 修复由格式错误的
IP-CIDR规则导致的隧道崩溃 - 修复 SSH
idle-timeout设置以错误的键名写入并在保存时被丢弃的问题 - 修复引导流程生成的规则将策略名称放在
no-resolve之后、可能导致 IP 类规则失效的问题 - 各项稳定性和性能改进
版本 1.1.8(300)
新增功能:
- 新增 Tailscale 内置代理类型:可直接在 Chute 中配置 Tailscale 账户、加入 tailnet 并通过 Tailscale 节点转发流量,无需安装独立的 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 解析、自定义规则匹配和定时任务
- 新增 Body 重写:使用正则表达式(支持捕获组)或 JSONPath 表达式搜索和替换 HTTP 请求/响应 Body 内容
- 新增 ShadowTLS 协议支持
- 新增 VMess 和 VLESS 协议的 gRPC 传输支持
- 新增 DNS-over-QUIC (DoQ) 和 DNS-over-HTTP/3 (DoH3) 支持
- 新增 DNS-over-TLS (DoT) 支持
- 新增 HTTP 控制 API 和 Web UI,用于监控和控制代理运行时
- 新增模块系统(.sgmodule),用于模块化配置管理
- 新增代理提供者,用于动态代理列表更新
- 新增通知报告:检测连接失败、代理不可用、流量激增、配置更新失败和策略组切换;分发事件用于系统通知
- 新增 Mock 响应:向匹配的请求返回模拟数据,无需访问真实服务器
- 新增 LoadBalance 策略组,支持轮询、一致性哈希和会话保持策略
- 新增 URL 重写新模式:reject-200、reject-img、reject-dict
- 新增请求头重写响应方向支持
- 新增 PROTOCOL 规则类型,包含 10 种协议类型值
- 新增 SCRIPT 规则类型,用于基于 JavaScript 的自定义匹配
- 新增规则的 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 选项
- 增强 URL 重写,Map Local 格式支持模板变量
- 改进 DNS 服务器,支持 DoQ、DoH3 和 DoT 协议
- 规则系统从 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 策略支持
- Domain-Set 支持
- 远程 Rule-set 支持
改进:
- 隧道重建以提升性能
- 全面测试的 UDP 隧道
错误修复:
- 修复内存泄漏
版本 1.1.0(210)
错误修复:
- 修复一些错误
版本 1.0.9(199)
新增功能:
- iOS 18 控制中心切换按钮
错误修复:
- TUN 配合 IPv6 现在重定向到 IPv6 隧道,修复一些服务问题
版本 1.0.8(188)
新增功能:
- SSH 策略支持
- 新增远程仪表板连接
改进:
- 将 TUN 网络更改为 198.18.0.0/15,避免 IPv4 内部地址问题
- 部分文本更新
错误修复:
- 修复 DNS 问题
版本 1.0.7(167)
新增功能:
- PIP 模式
- 配置文件 iCloud 同步
- 新增 tvOS 远程配置管理器
错误修复:
- 修复 Vmess 配合 Websocket 的问题
版本 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支持
改进:
- 改进配置编辑
- 新增乐观 DNS 开关
- 改进本地 DNS 服务器
错误修复:
- 修复 iOS 本地代理服务器地址可能阻止应用程序访问网络的问题
- 修复 DNS 服务器
版本 1.0.3(138)
新增功能:
- 虚拟 IP 以避免 DNS 缓存污染
- 从互联网或二维码下载配置文件
错误修复:
- 修复 FINAL 规则编辑问题
版本 1.0.2(130)
新增功能:
- iPad 支持
- 支持
chute://方案和x-callback-url - Dashboard 操作
- iPhone 12 支持
- 重建 DNS 服务器以提升性能和稳定性
错误修复:
- 改进 TCP 稳定性
- 重建 TCP 锁以提升性能
- 改进 UDP 稳定性
- 修复配置崩溃问题
版本 1.0.1(111)
- 修复微信分享扩展失败
- 修复 IPv6 支持
- 更新 HTTP 完整检查
版本 1.0.0(101)
- 首次发布
本页为英文版的翻译。如内容有出入,以英文版为准。