保活与连接稳定性
📅 2026-8-8
为什么需要保活
SSH 连接经过 NAT、防火墙、负载均衡时,长时间无数据流会被中间设备静默断开(典型空闲超时 5-10 分钟)。表现为:终端突然卡住、输入无响应,但程序并不知道连接已断。
xxssh 的保活机制专门解决这个问题。
工作方式
会话空闲时,xxssh 每 20 秒发送一个 keepalive@openssh.com 心跳包:
- 保持连接有数据流,中间设备不会因空闲而掐断
- 每次心跳等待服务端响应;连续 3 次无响应才判定连接已死
也就是说,即使单次心跳丢包,连接也不会被误杀 —— 兼顾了稳定性与真实断线检测。
实测
官方 E2E 测试在测试服务器上空闲 70 秒(期间发送 3 次以上心跳),连接保持存活、可正常接收后续输出。
其他稳定性特性
- 窗口尺寸同步:终端大小变化自动发送
window-change,远程全屏程序(vim/htop)自适应重绘 ~.强制断开:万一连接真的卡死,行首输入~.可强制回到服务器列表,无需关闭整个程序- EOF / exit-status 处理:正确处理 EOF 先于 exit-status 到达的边界情况,不丢失退出码