Surge TestFlight Feed
REJECT-NO-DROP 改进 接到部分用户回报,在用于去广告等用途时,如果 DNS 返回 NXDOMAIN/No Record 可能导致应用等待,而返回 127.0.0.1 会使得应用立刻认为请求失败。 出现该区别的原因,是因为应用开发者对于不同错误的处理逻辑不同。然而在 DNS 中返回 127.0.0.1 进行屏蔽,是一项非常不标准的行为,本质是将请求导向了回环网络 lo0,由本地系统产生一个 TCP refused 响应拒绝请求。 1. 如果本地系统上正好监听了访问的端口,会导致对应监听服务收到该请求,产生非预期结果。…
Surge Mac Beta build 2975 已实现该功能
Surge Mac & iOS Beta 更新日志
- 增加 pre-matching 标记规则的校验,在不支持的规则上配置该标记将直接产生配置错误。(请注意 PROTOCOL 语句不可用,逻辑规则的子规则也会被校验,但是 RULE-SET 的子规则若不支持仅会该子规则不生效而不会报错)
- 对 TCP RST 拒绝方式增加了全局防御,当 3 秒内触发 100 次后,将临时暂停以避免应用死循环导致 CPU 异常,同时输出日志
- pre-matching 的请求日志,由每 30 分钟一条,下调至 5 分钟
- [iOS] 为 iOS 18.1 下,Poor Network Quality 无法被从通知中心自动消除的问题加入了一个 workaround
- 增加 pre-matching 标记规则的校验,在不支持的规则上配置该标记将直接产生配置错误。(请注意 PROTOCOL 语句不可用,逻辑规则的子规则也会被校验,但是 RULE-SET 的子规则若不支持仅会该子规则不生效而不会报错)
- 对 TCP RST 拒绝方式增加了全局防御,当 3 秒内触发 100 次后,将临时暂停以避免应用死循环导致 CPU 异常,同时输出日志
- pre-matching 的请求日志,由每 30 分钟一条,下调至 5 分钟
- [iOS] 为 iOS 18.1 下,Poor Network Quality 无法被从通知中心自动消除的问题加入了一个 workaround
关于 Pre-matching REJECT 的说明已加入到手册中:https://manual.nssurge.com/policy/reject.html
Nssurge
REJECT Policy · GitBook
Surge Mac & iOS Beta 更新日志
- 新的订阅功能
Body Rewrite 支持使用 JQ 表达式对 JSON 进行操作
JQ 表达式说明详见:https://jqlang.github.io/jq/
- 新的订阅功能
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 版本中移除了该优化,请有遇到这类问题的用户测试确认问题是否改善。
最新 TF 版本中移除了该优化,请有遇到这类问题的用户测试确认问题是否改善。
Surge Mac 更新日志
- UDP 整体架构进行重构,UDP 相关功能可能出现问题,如有遇到请回报。
- shadowsocks 协议支持配置 udp-port 参数,用于单独指定 UDP 模式的服务端端口号,可在使用 ShadowTLS 时使用原端口号。
- UDP 整体架构进行重构,UDP 相关功能可能出现问题,如有遇到请回报。
- shadowsocks 协议支持配置 udp-port 参数,用于单独指定 UDP 模式的服务端端口号,可在使用 ShadowTLS 时使用原端口号。
Surge Mac & iOS Beta 更新日志
- 修改 HTTP 脚本的终止逻辑,如果需要打断请求,应使用 $done({abort: true}),除此之外的失败将对请求不做修改而不会终止
- 修正 Body Rewrite 规则的处理逻辑,如果遇到非 UTF-8/非 JSON 请求,行为修改为不做修改而非失败
- 优化 QUIC 流控,降低在上传测速时出现的内存占用
- 修改 HTTP 脚本的终止逻辑,如果需要打断请求,应使用 $done({abort: true}),除此之外的失败将对请求不做修改而不会终止
- 修正 Body Rewrite 规则的处理逻辑,如果遇到非 UTF-8/非 JSON 请求,行为修改为不做修改而非失败
- 优化 QUIC 流控,降低在上传测速时出现的内存占用
Surge Mac 5.9.0 与 iOS 5.14.0 已进入 RC 阶段,iOS 版本由于审核的一些离谱原因,默认图标更换为了 5.0 图标,如果想使用经典图标请手动修改。
Surge iOS Beta 更新日志
- 脚本编辑页面支持传入 $argument
- 在脚本列表页面执行脚本也会传入 $argument 的内容了
- 脚本的 $trigger 参数新增 "editor" 和 "http-api" 两个来源
- 修正 iOS 16 下 WireGuard 可能无法使用的问题
- 修正部分代理协议的流量统计中,未计算上传的 UDP 流量的问题
- 脚本编辑页面支持传入 $argument
- 在脚本列表页面执行脚本也会传入 $argument 的内容了
- 脚本的 $trigger 参数新增 "editor" 和 "http-api" 两个来源
- 修正 iOS 16 下 WireGuard 可能无法使用的问题
- 修正部分代理协议的流量统计中,未计算上传的 UDP 流量的问题
提示
我们的客服邮箱 support@nssurge.com 向 @icloud.com 域所回复的邮件,最近几日经常被拒绝,原因不明,如需联系请换用其他邮箱,请见谅。
我们的客服邮箱 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
- 修正部分提示无法被转为横幅显示的问题
- 其他细节修正
- 调整了 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 模式),不再支持空字符串密码,请注意。
接到部分用户反馈关于在代理协议中使用空密码的问询,为此对该问题进行一定说明:
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%,几乎属于测量误差范围。
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%,几乎属于测量误差范围。