保持 SSH 连接与隧道
避免空闲连接被中间设备断开
语法
ssh -o ServerAliveInterval=30 -o ServerAliveCountMax=3 -N -L 本地端口:目标:端口 主机说明
适用于长时间运行的隧道或运维会话被静默断开的情况。通过 ServerAliveInterval 与 ServerAliveCountMax 让客户端定期发送保活探测,连续多次无响应则主动断开以便及时发现故障。也可用 autossh 等工具在有线网络抖动时自动重建隧道。
参数
ServerAliveInterval客户端发送保活探测的间隔秒数
ServerAliveCountMax允许连续丢失的探测次数
TCPKeepAlive是否使用 TCP 层保活,默认开启
示例
带保活的端口转发
让隧道在空闲时也不会被断开。
ssh -o ServerAliveInterval=30 -o ServerAliveCountMax=3 -N -L 127.0.0.1:13306:127.0.0.1:3306 deploy@example.com注意事项:保活探测会增加少量流量,30 秒是较常见的取值。断线后需要重新执行命令,长期运行建议改用 systemd 或 autossh 托管。
写入全局配置
对所有主机生效。
Host *
ServerAliveInterval 30
ServerAliveCountMax 3注意事项:这是 ~/.ssh/config 片段。参数写法是键值对加缩进,不是 shell 命令;修改后对新发起的连接生效。