温馨提示×

CentOS SSH如何提高连接稳定性

小樊
41
2025-12-09 11:07:18
栏目: 智能运维

提升稳定性的核心配置

  • 在服务端启用保活探测,编辑 /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
  • 命令行临时使用
    • ssh -o ServerAliveInterval=60 -o ServerAliveCountMax=3 user@host

0