TG Telegram Group Link
Channel: Surge TestFlight Feed
Back to Bottom
Surge iOS & Mac 更新日志
- [Mac] 修正 Dashboard 查看远端设备时,无法读取截取的 HTTP Body 的问题
- ipv6-vif 参数行为修改,当设置为 always 时,即使未设置 ipv6=true,也会开启 IPv6 功能。
- 为 ipv6-vif=always 参数增加了警告
- 调整了自动重试机制,在非 IPv6 网络下访问 IPv6 地址不再会进入重试流程,请求会立刻失败(以此解决在非 IPv6 环境下开启 IPv6 VIF 造成部分应用卡顿的问题,如微信和淘宝,但是应用仍然会持续发出 IPv6 请求)
- 文案完善
Surge iOS & Mac 更新日志
- DOMAIN-SET 与 RULE-SET 改为强校验,当文件中包含无效行时将导致整个规则集无效,以避免误用产生问题
- 在锁屏/休眠状态下不再触发策略组的自动重测
- 修正 IPv6 相关的一些日志错误
- 传统 DNS 现在将校验响应的服务端 IP,用于处理特定网络下的 DNS 抢答
Surge iOS & Mac 更新日志
- 新增规则类型 DOMAIN-WILDCARD,支持 ? 与 * 匹配域名
- 放开了 fallback 组使用 Smart Group 的限制,允许在 fallback 组内使用 Smart Group 作为子策略
- 优化各种异常的重试机制,避免在出现一些特定问题时持续重试导致高资源占用。对于需要持续重试的操作(如 WireGuard 重连、Ponte 服务端上报 iCloud),现在 Surge 会在出错后的 0.1s, 0.5s, 1s, 5s, 10s, 30s 后重试。
- UI 细节调整
Surge iOS & Mac 更新日志
- 优化 WireGuard 失败处理
- 降低 TUIC 协议在休眠时对电量的消耗
- 请求日志系统时间统计精度提高,现在可精确到 µs 级(1s=1000ms,1ms=1000µs)
已知的 Bug
新版本的时间统计中,显示的 µs 值有误,实际应为显示值 x1000。如 0.7µs 为 700µs。
Surge Mac 更新日志
大幅优化大型域名规则集中的索引算法,测试环境下,对包含 310000 条规则的规则集进行测试(50% hit rate)
旧版本:2.167 ms
新版本:0.058 ms
Surge iOS & Mac 更新日志
- 规则系统整体性能优化
- µs 时间改为 ms 的小数方式表示
- iOS 版本同步 Mac 版本的新巨型规则集索引系统,由于建立索引的内存开销较大,现在 RULE-SET 和 DOMAIN-SET 必须由主程序进行更新(主程序同样会自动执行更新)
- 修正规则集内的逻辑规则的子规则无法被规则集的 no-resolve 和 extended-matching 参数覆盖的问题
Surge iOS 5.11.0 & Mac 5.70 更新日志 (Preview)

### Smart Group

这是一种全新的策略组类型,由我们精心设计的算法引擎所驱动,可以自动从该策略组的子策略中选择合适的策略。Smart 策略组的目标是取代原有的自动测试组(url/load-balance/fallback),大幅优化体验的同时,尽可能减少用户需要手动干预策略组的情况,用户只需将可用策略放入该组即可。

详情请见:https://kb.nssurge.com/surge-knowledge-base/v/zh/guidelines/smart-group

### 规则系统
- 规则系统整体性能优化。
- 大幅优化大型域名规则集中的索引算法,对于十万条以上的规则集,检索效率提高了十倍以上。
- 修正规则集内的逻辑规则的子规则无法被规则集的 no-resolve 和 extended-matching 参数覆盖的问题
- 新增规则类型 DOMAIN-WILDCARD,支持 ? 与 * 匹配域名
- DOMAIN-SET 与 RULE-SET 改为强校验,当文件中包含无效行时将导致整个规则集无效,以避免误用产生问题

### IPv6
- ipv6-vif 参数行为修改,当设置为 always 时,即使未设置 ipv6=true,也会开启 IPv6 功能。
- 为 ipv6-vif=always 参数增加了警告
- 调整了自动重试机制,在非 IPv6 网络下访问 IPv6 地址不再会进入重试流程,请求会立刻失败(以此解决在非 IPv6 环境下开启 IPv6 VIF 造成部分应用卡顿的问题,如微信和淘宝,但是应用仍然会持续发出 IPv6 请求)

### 其他优化
- $notification.post 增强,新增媒体资源支持、声音提示和自动消除。
- 优化 WireGuard 失败处理
- 降低 TUIC 协议在休眠时对电量的消耗
- 请求日志系统时间统计精度提高,现在可精确到 µs 级
- 优化各种异常的重试机制,避免在出现一些特定问题时持续重试导致高资源占用。对于需要持续重试的操作(如 WireGuard 重连、Ponte 服务端上报 iCloud),现在 Surge 会在出错后的 0.1s, 0.5s, 1s, 5s, 10s, 30s 后重试。
- 优化外部资源的缓存系统
- 新增配置文件行命令 #!REQUIREMENT
- [iOS] 在发现当前网络由 Surge Mac Gateway 所接管时,现在将自动暂停 Surge iOS。(可通过 auto-suspend 选项调整行为,默认开启)
- [iOS] 优化 TUN 接管和特定 app 的性能兼容性问题
- [iOS] 优化了内存占用,不常用和巨大的脚本现在将不会被缓存至内存
- [iOS] 网络诊断页新增 SSID/BSSID,增加复制功能
- [iOS] 现在在日志界面执行日志上传时,将自动为当前运行的引擎生成最近的 verbose 日志(新版本在内存缓存了 256KB 的日志),这样在汇报问题时,直接执行上传即可,无需再使用 verbose 模式复现。
- [iOS] 对于策略组与脚本类型的外部资源,现在限制最大大小为 2MB,避免当错误配置时,导致的内存超限。

### 细节调整
- [iOS] 提高内存警告的阈值到 45MB,原为 40MB。
- 限制了脚本在 debug 模式下,可以往请求 notes 中写入的日志的长度
- 默认 UDP 测试目标改为 1.0.0.1
- 在脚本中使用 API 时如果传入了错误类型的字段,将产生脚本异常
- 当脚本已完成或超时后,未完成的 $httpClient 不再会调用回调函数

### 问题修正
- [Mac] 修正 Dashboard 查看远端设备时,无法读取截取的 HTTP Body 的问题
- [iOS] 修正在 Surge iOS 主程序和引擎都开启时,iCloud 内容发生变化可能无法被主程序所检测的问题
- 修正 Header Rewrite 规则无法根据 Host 字段进行 URL 匹配的问题
- 修正了在测试代理时,ip-version 和 tos 参数无法生效的问题
- 修正通过 HTTP-API 执行脚本时,若果错误的传入 null 会导致崩溃的问题
Surge iOS & Mac 更新日志
- 优化小型规则集的匹配性能(1000 条规则以下为小型,优化前单次匹配耗时约为 0.025 ms,优化后 0.001 ms)
- 修正本地脚本文件被编辑后无法被自动重载的问题
- 优化索引系统,对于需要打开主程序进行索引的规则集,现在在进行重索引前,将沿用已存在的索引(旧版本也有这样的设计,但仅限远程资源,且重启后会失效)
Surge iOS & Mac 更新日志
- 崩溃修正
- 修正本地大型规则集被更新后,需要冷启动主程序才能触发重索引的问题
- 修正应用临时规则后,如果产生了策略变化,不会打断原有连接的问题
Smart Group 补充 FAQ:

Q: 为什么对于同一个域名,Smart Group 依然会尝试不同的策略连接
A: 当通过一个代理访问某个网站时,如果该网站的响应速度远低于该代理访问其他网站的速度,则推测该代理对此目标网站不友好,所以在后续连接中会尝试其他线路,在一段时间的数据收集后,最终会收敛稳定到一个策略上。

Q: 为什么某个代理明明已经故障了,但是界面上还是标记为最常使用
A: Smart Group 界面上显示的“最常使用”,指的是最近一段时间内最常被使用的策略,当某个策略突然故障后,虽然他已经不再是首选策略,他可能依然是最近一段时间最常被使用的策略。
Surge iOS 5.11.1 & Mac 5.7.1 更新日志 (Preview)

- 优化小型规则集的匹配性能,在旧型号 CPU 上效果尤为明显
- 外置资源更新页面可以显示规则集处理产生的错误信息
- 自动忽略规则集中的无效空行
- 修正应用临时规则后,如果产生了策略变化,不会打断原有连接的问题
- 修正在 Smart 组内使用 Ponte 策略时,如果目标设备是自身,未能自动转换为 DIRECT 策略的问题
- 修正 Ponte 设备请求在请求日志中显示的时间错误的问题
- 修正在外部策略组内容发生变化时,有低概率出现的崩溃
- 在 Smart 组初始化阶段,不再显示最常使用标签,以避免产生误解
- 修正配置升级功能未能对托管配置和企业配置正确生效的问题
- [iOS] 修正本地脚本文件被编辑后无法被自动重载的问题
- [iOS] 优化大型规则集的索引流程
- [Mac] 修正在建立策略组时,如果勾选了外部策略但是没有填写 URL,会导致崩溃的问题
- [Mac] 修正密钥库管理页面,进行移动操作后的项目未能正确显示存储位置的问题
- [Mac][tvOS] 修正使用 Smart 组作为 Ponte 策略时,任何参数调整都会导致 Ponte 服务重启的问题
Surge iOS & Mac 更新日志
- 优化脚本执行 WebView 引擎管理流程
- 不再复用出现异常的引擎,以避免有问题的脚本导致后续脚本也出现问题。
- 加快了引擎回收的速度,以避免造成不必要的内存开销。(该内存占用并不计算在 Surge 引擎内,但是会占用系统空余内存)
- 修正 Smart 组在初始化阶段,使用频率标签未能全部屏蔽的问题
- 修正 Subnet 策略组在网络切换前未能正确选择策略的问题
- [Mac] 修正永久在 Dock 隐藏图标选项未能正确工作的问题
- [Mac] 修正在未开启折叠策略组选项时,菜单中 Smart 组标签显示位置可能不正确的问题
- [Mac] 修正每次进入配置升级页面,Smart 组的开关都处于开启状态的问题
- [iOS] 修正脚本编辑器保存时,如果配置中不存在任何本地脚本,会导致崩溃的问题
Surge iOS TestFlight 更新日志
- 新的订阅功能:规则分析,目前包含两个子功能:
1. 规则使用计数,会记录规则的匹配次数。(只统计主规则集中的条目,各类规则集和逻辑规则的子规则不会被统计,统计时会忽略规则参数)
2. 当前规则集性能测试
以上功能可在规则配置页面找到
Surge iOS TestFlight 更新日志
- 优化规则集索引,现在规则集中的 IP-ASN 规则也可以被索引优化,测试中约 5000 条 ASN 规则的规则集,在旧版中需耗时 2ms,新版只需要 0.001ms
- 修正不正确的 cron 表达式会导致脚本被持续触发的问题
Surge Beta 更新日志
- 新增规则类型 HOSTNAME-TYPE,用于判断请求的主机名的类型,可选值有:IPv4, IPv6, DOMAIN, SIMPLE。(SIMPLE 指的是不包含 . 的主机名,如 localhost)
- [iOS] 修正规则集索引建立过程可能是会阻塞 UI 的问题
- [tvOS] 修正大型规则集索引可能无法被建立的问题
HTML Embed Code:
2024/05/14 11:14:02
Back to Top