Skip to content

v1.0.35

Choose a tag to compare

@bcblr1993 bcblr1993 released this 29 Sep 10:31
· 254 commits to main since this release

v1.0.35 发布说明

2026-09-29,修复半关闭连接未设超时导致孤儿套接字堆积的问题(客户端关闭后节点不回 FIN 时,连接停留在 FIN_WAIT_2 直至扩展重启)。

修复

  1. 半关闭客户端连接回收(Core/Engine relay):
    • 1.0.32 为保住空闲 Keep-Alive 连接去掉了全部转发超时,半关闭超时也随之消失;
    • 客户端关闭后,引擎关闭发往节点的一侧并等待节点回 FIN;若节点确认却从不回 FIN,转发任务与套接字一直停留在 FIN_WAIT_2,直到扩展重启;
    • 实测在 Mac mini 上使用 VLESS 节点时,249 条此类连接全部超过内核 60 秒孤儿回收时限仍未释放,每分钟约增加 15 条;
    • 修复:任一方向结束后,另一方向连续 60 秒无数据即结束连接;计时随每个字节重置,客户端 FIN 之后仍在传输的响应不会被切断,双向均保持打开的空闲连接仍不设超时。

验证结论

  1. 引擎:345 个单元测试通过,其中新增的 2 个 relay 测试在修复前失败(未响应的半关闭连接在 60 秒后回收;客户端 FIN 后 150 秒仍有下行流量的连接不被切断)。
  2. 本地回归:test_network_switch_gate.py、Tests/EngineReconnect/run.sh、Tests/RuntimeEnvironment/run.sh、./scripts/test.sh 全部通过。
  3. Tart 虚拟机矩阵(macos27):6 个组合全部通过,含大请求上传、空闲 Keep-Alive 复用与透明代理 SNI 恢复检查;测试后已清理虚拟机临时文件。
  4. 物理真机(Apple Silicon Mac mini):使用公证候选包实测——TUN 模式与透明代理模式下大请求上传、空闲 Keep-Alive 复用均通过;远程回归门禁 test_remote_arm64.sh fast 通过。

正式发布规范执行核验

  1. 采用标准生产核心(Normal Core Variant),不含 QA 自动化标记;
  2. 主程序与两个网络扩展均为 Developer ID 签名与 Hardened Runtime;
  3. 经 Apple 公证并完成票据装订(App + DMG);
  4. Sparkle 更新清单使用 Ed25519 密钥签名并通过验签;
  5. 磁盘镜像不含测试说明文件,卷标为 AetherRoute 1.0.35。