Surge TestFlight Feed
7.84K subscribers
12 photos
1 video
1 file
34 links
该频道用于提供关于 Surge iOS/Mac/tvOS 的最新 beta 版本信息
Download Telegram
关于 Pre-matching REJECT 的说明已加入到手册中:https://manual.nssurge.com/policy/reject.html
Surge Mac & iOS Beta 更新日志
- 新的订阅功能
Body Rewrite 支持使用 JQ 表达式对 JSON 进行操作

http-response-jq ^http://httpbingo.org/anything '.headers |= with_entries(select(.key | test("^X-") | not))'

JQ 表达式说明详见:https://jqlang.github.io/jq/
根据一些用户的回报,我们发现在支持 hysteria2 的端口跳跃时,对 QUIC 在网络切换时进行的优化,可能会在网络切换时触发系统 Bug,导致 Surge iOS 有概率在切网后所有的连接均超时。(系统路由表紊乱)
最新 TF 版本中移除了该优化,请有遇到这类问题的用户测试确认问题是否改善。
Surge Mac 更新日志
- UDP 整体架构进行重构,UDP 相关功能可能出现问题,如有遇到请回报。
- shadowsocks 协议支持配置 udp-port 参数,用于单独指定 UDP 模式的服务端端口号,可在使用 ShadowTLS 时使用原端口号。
Surge Mac & iOS Beta 更新日志
- 修改 HTTP 脚本的终止逻辑,如果需要打断请求,应使用 $done({abort: true}),除此之外的失败将对请求不做修改而不会终止
- 修正 Body Rewrite 规则的处理逻辑,如果遇到非 UTF-8/非 JSON 请求,行为修改为不做修改而非失败
- 优化 QUIC 流控,降低在上传测速时出现的内存占用
Surge Mac 5.9.0 与 iOS 5.14.0 已进入 RC 阶段,iOS 版本由于审核的一些离谱原因,默认图标更换为了 5.0 图标,如果想使用经典图标请手动修改。
Surge Mac 5.9.0 版本已正式发布,iOS 与 tvOS 5.14.0 版本已在 App Store 正式发布。
Surge iOS Beta 更新日志
- 脚本编辑页面支持传入 $argument
- 在脚本列表页面执行脚本也会传入 $argument 的内容了
- 脚本的 $trigger 参数新增 "editor" 和 "http-api" 两个来源
- 修正 iOS 16 下 WireGuard 可能无法使用的问题
- 修正部分代理协议的流量统计中,未计算上传的 UDP 流量的问题
提示
我们的客服邮箱 support@nssurge.com 向 @icloud.com 域所回复的邮件,最近几日经常被拒绝,原因不明,如需联系请换用其他邮箱,请见谅。
Screenshot 2024-11-08 at 2.56.38 PM.png
15.1 KB
Surge Mac Beta 最新版本在状态栏图标加入了出站模式指示,如果不需要可在外观设置中关闭
Surge iOS Beta 更新日志
- 调整了 UI 编辑规则和代理策略的逻辑,现在即使是 UI 上不存在的配置参数,在编辑后如果类型不变,也可以保持了
- 调整了 FSI 错误的处理,增加 workaround,不再直接终止
- 对于不存在 Virtual IP 的 TCP 连接,现在在握手阶段就会直接阻断,不用再等到握手完毕。ICMP ping 也会响应 host unreachable
- 修正部分提示无法被转为横幅显示的问题
- 其他细节修正
关于空密码的提示
接到部分用户反馈关于在代理协议中使用空密码的问询,为此对该问题进行一定说明:
1. “空密码”可以指代密码不存在(即为 null),或者是一个空字符串(即 '/0')。目前对应的 Surge 配置语法为,不配置 password 字段,或者 password=""。
2. 除了少数特例,绝大多数加密协议都不支持 null 密码,但是几乎所有协议都支持空字符串密码(因为密钥派生允许空字符串输入)。但是即使使用空字符串密码,也不会略过加密流程,性能与使用其他密码一致,等同于一个弱安全性密码。
3. 大部分协议都没有对这种情况进行特别注明。且在 UI 进行编辑时,并没有办法区分这两种情况。

因此,Surge 将在后续版本中统一关于空密码的处理行为,仅在部分明确不使用加密的协议中支持 null 密码(如 SS 的 none 模式),不再支持空字符串密码,请注意。
我们依然经常会收到关于 Surge iOS 电耗问题的问询,再次解释一下该问题

1. 除非频繁触发脚本,否则 Surge 不会对电量消耗产生明显的影响。
2. 系统的电耗统计,对于 NE 类程序是不准确的,不应该以此作为参考。
3. 除开不准确,部分用户会因为电耗统计中 Surge 所占用百分比很高而认为 Surge 非常耗电。请注意该统计中的百分比,指的是这段时间内的电量消耗中 Surge 的占比,而非表示 Surge 消耗了如此多的电量。由于 Surge NE 常驻后台,如果这段时间内没有几乎没有使用过设备,那即使 Surge 只消耗了极少的电量,也会被统计为 100%。

我们也会定期测试最新版本 Surge 是否存在电量异常的情况,使用 5.14.1 版本在 iPhone 12 mini 上反复进行测试(仅 Wi-Fi),从剩余电量 100% 开始 24 小时后,无论 Surge 是否开启,剩余电量均为 72-74%,几乎属于测量误差范围。
最近的版本中我们暂停了新功能的开发,着重于处理一些遗留的低概率崩溃和内存泄露问题。目前最新的版本中相关问题都已得到了修正,是目前最稳健的一个版本,将于近日发布正式版本。

什么是内存泄露

简单说就是应用因为任何原因,向系统申请了一段内存后未正确释放,导致应用所使用的内存越来越高。

对于 Surge iOS,如果出现持续的泄露,内存占用会不断逼近系统限制,导致被终止重启。对于 Surge Mac,可以观察到内存占用不断提高。

内存泄露问题在计算机科学上一直是一个难题,即使是 iOS/macOS 的系统程序和内置应用,也经常会出现内存泄露的现象。这次修正的数个内存泄露问题也都十分隐蔽,比如当脚本使用 $httpClient 请求数据时,如果 H2 服务端在发送了部分数据后主动中断了该 stream,那可能会导致缓存的部分数据未能被正确释放,这种问题几乎只会在请求特定服务器时才会发生,所以难以被发现。

为此我们重新设计了新的内存泄露检测系统,用于分析这些低概率泄露问题,目前的表现相当良好,崩溃报告系统的数据显示,自 Mac 5.9.2 版本开始已经没有任何用户再遇到过可观测的内存泄露。
Surge iOS & Mac Beta 更新日志
优化了使用 Smart Group 作为 underlying-proxy (代理链)的表现,在先前的版本中由于架构问题,使用 Smart Group 作为一个代理策略的 underlying-proxy 时,Smart Group 无法发挥全部特性(如动态备用策略切换)。新版本中已经完全解决了这些问题。

注:部分用户询问 Snell 的 reuse 机制在 Smart Group 组中无法使用的问题,请注意这是特意进行的限制,因为 reuse 机制启动的情况下,Smart Group 无法准确评估该代理的表现,同时会导致备用策略切换无法正常运作。