温馨提示×

centos ssh连接断怎办

小樊
33
2026-10-11 14:38:04
栏目: 智能运维

在 CentOS 上遇到 SSH 连接经常断开,一般可以从服务器端、客户端、网络三方面排查和处理。下面按常见原因给你一套实用方案。


一、最常见原因:空闲超时断开

1️⃣ 服务器端设置(推荐改这里)

编辑 SSH 服务端配置:

vi /etc/ssh/sshd_config

添加或修改:

ClientAliveInterval 60
ClientAliveCountMax 3

含义:

  • 每 60 秒检测一次客户端是否存活
  • 连续 3 次无响应才断开

修改后重启 SSH:

systemctl restart sshd

2️⃣ 客户端设置(临时或本机生效)

编辑客户端配置(你连接的机器):

vi ~/.ssh/config

添加:

Host *
    ServerAliveInterval 60
    ServerAliveCountMax 3

或命令行临时使用:

ssh -o ServerAliveInterval=60 user@host

二、网络不稳定导致断线

现象

  • 卡一下就断
  • 丢包、延迟高

排查

ping ip
mtr ip

解决

  • 换网络(有线 > WiFi)
  • 云服务器检查安全组 / 防火墙
  • 使用 autossh 自动重连
autossh -M 0 -o "ServerAliveInterval=60" user@host

三、NAT / 防火墙断连接(家里路由器常见)

很多路由器会清掉“长时间无数据”的 SSH 连接。

✅ 解决方案:

  • 开启心跳(上面已说)
  • 使用 tmux / screen 防中断任务
yum install tmux -y
tmux

断线后重连:

tmux attach

四、SSH 被暴力破解防护断连(fail2ban)

如果频繁登录失败:

systemctl status fail2ban

被封 IP 会直接断:

fail2ban-client status sshd

五、系统资源问题

查看

top
free -h
df -h
  • 内存爆了 → OOM 杀进程
  • 磁盘满 → sshd 异常

六、快速自检清单 ✅

✅ 改 sshd_config
✅ 开 ServerAliveInterval
✅ 用 tmux
✅ 检查网络
✅ 看日志

tail -f /var/log/secure

如果你愿意,可以告诉我:

  • 是 云服务器还是内网
  • 断开是 很快还是空闲一段时间
  • 有没有报错提示

我可以给你更精准的配置。

0 踩