CentOS SSH如何提高连接稳定性
导读:提升稳定性的核心配置 在服务端启用保活探测,编辑 /etc/ssh/sshd_config: 开启 TCP 层保活:TCPKeepAlive yes 开启加密通道保活:ClientAliveInterval 60(每 60 秒发送一次心...
提升稳定性的核心配置
- 在服务端启用保活探测,编辑 /etc/ssh/sshd_config:
- 开启 TCP 层保活:TCPKeepAlive yes
- 开启加密通道保活:ClientAliveInterval 60(每 60 秒发送一次心跳)
- 设置最大无响应次数:ClientAliveCountMax 3(约 180 秒无响应才断开)
- 使配置生效(无需完全重启):执行 systemctl reload sshd
- 说明:ClientAlive* 消息走加密通道,较 TCPKeepAlive 更不易被中间设备干扰;两者可同时开启以兼顾链路探测与 NAT/防火墙空闲超时场景。
客户端侧防断设置
- OpenSSH 客户端(Linux/macOS):编辑 /etc/ssh/ssh_config 或用户级 ~/.ssh/config,在 **Host *** 下添加
- ServerAliveInterval 60
- ServerAliveCountMax 3
- 命令行临时启用:
- ssh -o ServerAliveInterval=60 -o ServerAliveCountMax=3 user@host
- 图形化工具(如 SecureCRT/Xshell):开启“反空闲/Send NO-OP/Keep Alive”,建议间隔 30–60 秒。
- 说明:客户端保活可避免中间 NAT/防火墙 空闲回收导致的“Broken pipe”。
排查会话被系统自动注销
- 检查是否存在会话级超时变量 TMOUT(单位为秒):
- 查看:echo $TMOUT
- 临时关闭:export TMOUT=0
- 永久生效:在 /etc/profile 或 /etc/bashrc 中设置 export TMOUT=0(或期望的秒数),并执行 source 使其立即生效
- 注意:某些系统或运维模板会设置 TMOUT(例如 180 秒),这会让会话在无操作时自动退出,与 SSH 保活设置无关。
网络与系统层面的优化
- 链路与设备:优先使用有线以太网替代 Wi‑Fi,减少抖动;检查防火墙/NAT空闲超时策略,必要时延长或禁用相关策略。
- 服务质量与拥塞:在客户端设置 IPQoS=throughput(写入 /etc/ssh/ssh_config 的 Host * 段),可缓解某些网络对 SSH 小包的心跳抑制,降低“Broken pipe”。
- 性能与健康:定期更新系统与 SSH组件;使用 mtr/iftop 监测丢包与带宽占用,定位链路瓶颈。
快速配置示例
- 服务端(/etc/ssh/sshd_config)
- TCPKeepAlive yes
- ClientAliveInterval 60
- ClientAliveCountMax 3
- 执行:systemctl reload sshd
- 客户端(/etc/ssh/ssh_config 或 ~/.ssh/config)
- Host *
- ServerAliveInterval 60
- ServerAliveCountMax 3
- Host *
- 命令行临时使用
- ssh -o ServerAliveInterval=60 -o ServerAliveCountMax=3 user@host
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS SSH如何提高连接稳定性
本文地址: https://pptw.com/jishu/767545.html
