Surge 新的订阅版本 v6.8.0 发布了

发布于

你准备续订么,这次功能量看起来非常大。

# Surge 版本 6.8.0 发布说明

- **版本**: 6.8.0
- **构建**: 11990
- **发布日期**: 2026 年 8 月 6 日
- **许可证**: 需续订

---

## 新特性

### macOS 27
- 开始适配 Surge 界面以支持 macOS 27。
- 增加了 macOS 系统错误的解决方案,以避免在以下情况下造成崩溃:
- 打开远程连接时。
- 系统文本完成接口处于活动状态时,显示模态窗口。

---

### Snell v6 服务器
增加了对内置 Snell 代理服务器的 Snell v6 支持。
要启用,请在 `[Snell Server]` 部分使用以下配置:
```ini
version=6
```
现有配置仍默认使用 Snell v1。
新功能包括:
- 支持 `default`、`unshaped` 和 `unsafe-raw` 模式,通过 `mode` 参数。
- 支持可重用的加密 TCP 传输。
- 支持 UDP 隧道传输。
- 改进:
- Snell 握手验证。
- 连接生命周期管理。
- EOF 处理。
- 处理格式错误的 UDP 数据包。

---

### DHCP
- 静态分配的 IP 地址现在会自动排除在动态地址池外,避免重复分配。
- ISC DHCP 服务器已升级到 **版本 4.4.3-P1**。

---

### TLS
- 增加了 `server-cert-verify-name`,可独立指定用于代理服务器证书验证的主机名,而不会更改 SNI。
- 此参数适用于所有基于 TLS 和 QUIC 的代理协议。

---

### ECN
- 重新设计了 ECN 配置和数据包处理,包括:
- QUIC 及 WireGuard、Tailscale、Ponte、嵌套 UDP 隧道。
- 变化包括:
- 正确保留 IPv4 和 IPv6 封装及解封装的 ECN 和 DSCP/TOS 元数据。
- 对于基于 QUIC 的代理协议:
- 启用时,自动检测异常。
- 当必要时,Surge 将回退到非 ECN 处理。
- 对于支持的系统,QUIC 基于的代理协议默认启用 ECN。
- WireGuard 和 Tailscale 默认保持禁用状态。
- 使用以下参数可以显式更改默认设置:
```ini
ecn=false
```
或:
```ini
ecn=true
```
- Surge Ponte 现在也默认启用 ECN。
- 已删除 `client-use-ecn` 参数。

---

### DNS
#### 改进 `prefer-v4` / `prefer-v6`
- 优化 TCP 连接建立以便使用 `prefer-v4` 和 `prefer-v6`。
- 以前,这些参数决定了在域名同时具有 A 和 AAAA 记录时使用哪个记录。
- 如今:
1. 在 TCP 握手期间优先使用 A 或 AAAA 记录。
2. 如果握手无法在 **3 秒** 内完成,则开始尝试其他可用记录。

#### DNS-over-TCP
- 增加对 DNS-over-TCP 的支持。
- DNS 服务器设置现在接受:
```text
tcp://hostname[:port]
```

---

### Tailscale
#### 互动登录
- 增加了 iOS 和 macOS 的互动 Tailscale 登录。
- 解决了某些企业用户无法获得认证密钥的问题。

#### 自动路由
- 新增自动 Tailscale 路由功能。
- Surge 现在可以发现:
- tailnet 的 MagicDNS 后缀。
- 对等者的 IPv4 地址。
- 对等者的 IPv6 地址。
- 然后自动通过相应的 Tailscale 策略路由匹配的域和对等 IP 流量。
- 自动路由默认启用。
- 要禁用它:
```ini
auto-add-magic-dns-rule = false
```

#### 会话和恢复改进
- 改进 Tailscale 会话的预热和恢复。
- 会话现在在:
- 启动失败时。
- 网络变化时。
之后重试 MagicDNS 发现。
- 匹配的流量不再需要首先到达以触发重试。
- Tailscale 会话默认保持活跃。
- 以下值可以使会话始终保持活跃:
- 省略 `idle-keepalive`。
- `idle-keepalive = 0`。
- `idle-keepalive = -1`。
- 设置正值可启用闲置管理。
- Tailscale 现在可以在收到有效的网络地图后开始处理流量,而无需等待家庭 DERP 连接建立。
- 改进网络变化和控制服务器重连之后的恢复,具体做法包括:
- 保留最后已知的家庭 DERP 区域。
- 在适当时间重试对等握手。

---

### Surge 作为 MTProto 服务器
- Surge 现在可以作为 Telegram 的传入 **MTProto 代理服务器** 进行操作。
- 配置细节请参阅 Surge 手册:
```text
https://manual.nssurge.com/
```

---

### CLI & AI 能力
- Surge CLI 已大幅扩展,成为一个全面的命令行管理和诊断接口。
- 新命令及细节:
```text
https://nssurge.com/blog/surge-cli-updates/
```

---

### 核心版本对齐
- 从以下版本开始:
- **Surge Mac 6.8.0**
- **Surge iOS 5.21.0**
- **核心版本** 直接来源于相应的 Surge Mac 版本。
- 不再需要维护单独的核心版本号。
- 详细信息请参阅手册:
```text
https://manual.nssurge.com/
```

---

### 代码库重构
- 在十多年的开发后,Surge 代码库已经发展成为一个庞大且复杂的项目。
- 为了提高可靠性,Surge 引入了 **AI 辅助代码审查**。
- 每次代码更改都会由以下人员独立审查:
1. **Fable 5**
2. **GPT-5.6 Sol**
3. **一名开发人员**
- 然后才会合并。
- 目标是识别:
- 潜在的安全问题。
- 稀有崩溃场景。
- 细微的正确性问题。

---

# 改进与修复

## DHCP
- 改进了 DHCP 服务器和 IPv6 路由广告检测,包括:
- 接口绑定。
- 数据包验证。
- 超时处理。
- 过滤无效响应。

---

## TLS
- 修复潜在的崩溃,原因是当挂起的 BIO 数据正在刷新时发生了 TLS 清理,特别是在嵌套 TLS 连接中。
- 改进了在非常规端口上对 TLS 和 QUIC 流量的 MITM 主机名匹配,同时继续遵循排除规则。
- 改进了 MITM 证书和密钥库验证及生命周期可靠性。
- 修复了一种可能导致 macOS 崩溃的问题,即在 TLS 或 SSH 连接读取时编辑密钥库条目。

---

## DNS
- 本地 DNS 映射现在可以使用逗号分隔的列表指定多个上游 DNS 服务器。
- 这还修复了之前实现未能正确生效的问题。

---

## SSH
### 密钥支持与验证
- 增加了对导入 SSH P-521 密钥的支持。
- 改进了对不受支持的椭圆曲线的错误报告。
- 加强了在配置了 `server-fingerprint` 时的服务器主机密钥验证。
- 连接时没有配置指纹现在会发出一次性安全警告。

### 协议兼容性
- 修复了与以下内容的兼容性:
- 分段识别标识。
- 拉标识行。
- 小通道窗口。
- 非 ASCII 凭证。
- 现代 RSA/SHA-2 验证。

### 重钥与验证
- 增加了完整的双向重钥支持。
- 更正:
- 密钥切换。
- 延迟通道操作。
- 重钥期间的连接清理。
- 增加了严格的验证和大小限制,适用于:
- 传输数据包。
- 密钥交换字段。
- 签名。
- 通道参数。
- 加密值。

### 可靠性
- 修复:
- 通道读写超时。
- 完成报告。
- 格式错误的密钥处理。
- 几个内存和资源泄漏。

---

## HTTP & HTTP/3
### HTTP 解析与框架
- 增加了与在 HTTP CONNECT 请求中发送无括号 IPv6 地址的客户端的兼容性。
- 增加了对以下内容的严格和一致的解析:
- 请求头。
- 响应头。
- `Content-Length`。
- `Transfer-Encoding`。
- 分块编码。
- 尾部。
- 请求目标。
- 状态特定的主体语义。
- 对于模棱两可或格式错误的框架现在一致拒绝。
- 这包括相互矛盾的 `Content-Length` 和 `Transfer-Encoding` 值。
- 修复 HTTP/1.1 管道边界,以便请求主体严格根据其声明的长度进行转发。

### HTTP/1 & HTTP/2
- 改进了对以下内容的响应处理:
- 临时响应。
- 小写的 `HEAD` 请求。
- 同时的 `GOAWAY` 关闭。
- 改进 HTTP/2 的请求和响应重写,包括:
- 正确处理空头值。
- 正确的 UTF-8 头长度。
- 删除被禁止的连接特定字段。
- 通过脚本正确处理解码的主体。

### 资源限制
- 对以下内容增加输入和缓冲限制:
- 协议检测。
- HTTP 控制器。
- JSVM 服务器端点。
- 脚本主体处理。
- 代理响应。
- HTTP/3 全响应任务,如 DoH3。

### HTTP/3 可靠性
- 改进:
- 流重置。
- 连接关闭。
- 回调完成。
- 关闭行为。
- 这减少了停滞请求和重入拆卸问题。

### 响应语义
- 改进处理以下内容:
- `HEAD`
- `204`
- `205`
- `304`
- 脚本/重写头变更现在是事务性的,以防止不一致的线框。

---

## 策略选择
### 智能组
- 增加了 UDP 感知的智能组评分。
- Surge 现在从以下方面学习:
- UDP 响应延迟。
- 无声中继故障。
- 这改善了 UDP 流量的策略选择。
- 收到没有响应数据的智能组连接将被标记为失败,从而更快地回退到另一策略。

### 并发与配置重新加载
- 修复:
- 当策略查找与配置重新加载并发发生时可能会崩溃。
- 在配置重新加载期间不一致的路由决策。
- 在配置更新期间可能丢失站点历史或运行时数据。
- 在较长的闲置期间,`"most used"` 策略得分变得不正确。

### 规则评估
- 修复了可能:
- 无限期停滞。
- 重用已取消的评估。
- 从过时的配置中生成结果。
- 其他更改:
- 增加了对意外策略组引用循环的保护。
- 修复了 URL 测试组忽略明确配置的:
```ini
tolerance=0
```

---

## Surge Ponte
### 安全与验证
- 增加了对设备 PSK 和加密载荷的严格验证。
- 防止无效或损坏的 iCloud 设备记录导致崩溃。
- 将 Ponte 确认链接限制在有效的 iCloud CloudKit 分享 URL。

### 双栈可靠性
- 修复在 IPv4 和 IPv6 设置操作同步完成时,Ponte 连接进入不正确状态。
- 改进双栈处理:
- 如果一个 IPv4 或 IPv6 连接器在设置过程中失败,Ponte 可以继续使用剩余的连接器。
- 修复 IPv6 服务器通道未能在之前未可用网络接口变为可用时自动恢复。
- 失败的通道不再向其他设备发布过时的外部地址。

### CloudKit 同步
- 序列化 CloudKit 设备记录更新以防止:
- duplicated updates。
- lost updates。
- conflicting updates。
- 改进 CloudKit 选择性信息的同步:
- Ponte 信息。
- 远程设备信息。

---

## 其他改进

### TCP 连接建立
- 修复了无法到达的缓存“之前成功”的地址,从而防止在网络更改后回退到其他可用地址。
- 改进了连接尝试错误处理,使每次尝试都达到明确的成功状态或失败状态。
- 更正未完成建立的套接字上 TCP 连接统计数据收集。

---

原文链接:[点击查看](https://www.v2ex.com/t/1233204)

评论

暂无评论。

0.054919s