tsshd v0.1.9 已经发布,低延迟的 ssh

发布于

tsshd v0.1.9 已经发布,低延迟的 ssh

此版本更新内容包括:

此版本引入了重大改进,包括备受期待的会话分离(detach)和附加(attach)功能,以及对 `ProxyCommand` 的支持。同时带来了显著的稳定性提升,解决了高负载下的内存驻留(memory retention)、操作阻塞和连接超时问题。

## 新特性

- **会话管理与附加 (#35)**:实现了健壮的会话管理功能。现在你可以分离会话而不终止它们,并在重新附加时安全地丢弃先前的终端输出 (#39)。
- **ProxyCommand 支持**:新增了对 `ProxyCommand` 的支持,即支持 TCP 代理模式以实现更灵活的路由配置。
- **网络诊断**:为心跳确认(heartbeat acknowledgements)添加了 RTT 回调,以便在客户端更好地监控连接延迟。

## Bug 修复

- **Windows 11 ARM64 显示问题**:通过在创建 ConPTY 时提供精确的终端尺寸(移除了之前列宽 `-1` 的偏移量),修复了 Windows 11 ARM64 上 Neovim (0.12.3) 显示错位的问题。
- **挂起的 Accept 连接 (#36)**:修复了闲置的本地连接(例如来自 `ssh-add` 或 `git` 提交签名的连接)如果在客户端未被认领会导致无限挂起的问题。现在这些连接会在超时后被正确回收。
- **阻塞操作与内存泄漏 (#37)**:解决了在连接断开、流替换(stream replacement)和重复的附加循环期间发生的严重操作阻塞、goroutine 泄漏和内存驻留问题。流写入现在是可中断的。
- **客户端并发**:修复了由命名返回值(named return values)引起的潜在 defer 和 goroutine bug,并确保在客户端初始化之前正确设置活动检查器(active checker)。

## 传输与恢复机制改进

- **简化传输层恢复**:在重连时,使用 PTO (QUIC) 和 RTO (KCP) 重置取代了代理数据包重放机制。当后端不可用时,现在会直接丢弃数据包,依赖原生传输层机制来恢复丢失的流量。
- **加密委托**:移除了不可附加的 KCP 连接中不必要的代理加密委托。

## CI 与文档

- **CI/CD 自动化 (#38)**:新增了通过 GitHub Workflows 自动部署预发布版(pre-release)的功能,并修复了 GoReleaser SemVer 解析错误。
- **文档更新**:更新了 UDP 重连和超时配置的文档,并添加了展示自动重连和 `tsshd` 附加会话的新截图。

**完整的更新日志**: [https://gitee.com/trzsz/tsshd/compare/v0.1.8...v0.1.9](https://gitee.com/trzsz/tsshd/compare/v0.1.8...v0.1.9)

详情查看:[https://gitee.com/trzsz/tsshd/releases/v0.1.9](https://gitee.com/trzsz/tsshd/releases/v0.1.9)

---

原文链接:[点击查看](https://www.oschina.net/news/473613)

评论

暂无评论。