Repository navigation
v1.0.35
v1.0.35 发布说明
2026-09-29,修复半关闭连接未设超时导致孤儿套接字堆积的问题(客户端关闭后节点不回 FIN 时,连接停留在 FIN_WAIT_2 直至扩展重启)。
修复
- 半关闭客户端连接回收(
Core/Enginerelay):- 1.0.32 为保住空闲 Keep-Alive 连接去掉了全部转发超时,半关闭超时也随之消失;
- 客户端关闭后,引擎关闭发往节点的一侧并等待节点回 FIN;若节点确认却从不回 FIN,转发任务与套接字一直停留在
FIN_WAIT_2,直到扩展重启; - 实测在 Mac mini 上使用 VLESS 节点时,249 条此类连接全部超过内核 60 秒孤儿回收时限仍未释放,每分钟约增加 15 条;
- 修复:任一方向结束后,另一方向连续 60 秒无数据即结束连接;计时随每个字节重置,客户端 FIN 之后仍在传输的响应不会被切断,双向均保持打开的空闲连接仍不设超时。
验证结论
- 引擎:345 个单元测试通过,其中新增的 2 个 relay 测试在修复前失败(未响应的半关闭连接在 60 秒后回收;客户端 FIN 后 150 秒仍有下行流量的连接不被切断)。
- 本地回归:
test_network_switch_gate.py、Tests/EngineReconnect/run.sh、Tests/RuntimeEnvironment/run.sh、./scripts/test.sh全部通过。 - Tart 虚拟机矩阵(
macos27):6 个组合全部通过,含大请求上传、空闲 Keep-Alive 复用与透明代理 SNI 恢复检查;测试后已清理虚拟机临时文件。 - 物理真机(Apple Silicon Mac mini):使用公证候选包实测——TUN 模式与透明代理模式下大请求上传、空闲 Keep-Alive 复用均通过;远程回归门禁
test_remote_arm64.sh fast通过。
正式发布规范执行核验
- 采用标准生产核心(Normal Core Variant),不含 QA 自动化标记;
- 主程序与两个网络扩展均为 Developer ID 签名与 Hardened Runtime;
- 经 Apple 公证并完成票据装订(App + DMG);
- Sparkle 更新清单使用 Ed25519 密钥签名并通过验签;
- 磁盘镜像不含测试说明文件,卷标为
AetherRoute 1.0.35。