温馨提示×

centos ssh断开如何排查

小樊
53
2026-09-11 15:34:00
栏目: 智能运维

在 CentOS 上遇到 SSH 连接断开(掉线、被动断开、连不上),可以按下面思路系统排查。


一、先确认现象

先搞清楚是哪种“断开”:

  1. 连不上(Connection refused / timeout)
  2. 连上后很快断开(broken pipe / connection closed)
  3. 空闲一段时间自动断开
  4. 传输数据时断开

二、基础网络排查

1. 网络是否通

ping <服务器IP>
  • 不通:网络 / 防火墙 / 路由问题
  • 通但 SSH 不行:继续往下

2. 端口是否开放

telnet <IP> 22
# 或
nc -vz <IP> 22
  • 不通:sshd 未启动或被防火墙拦截

三、SSH 服务状态

1. 查看 sshd 是否运行

systemctl status sshd

启动 / 重启:

systemctl start sshd
systemctl restart sshd

2. 查看监听端口

ss -lntp | grep ssh
# 或
netstat -lntp | grep ssh

四、防火墙 & SELinux

1. firewalld

firewall-cmd --list-all
firewall-cmd --add-service=ssh --permanent
firewall-cmd --reload

2. iptables(若使用)

iptables -L -n

3. SELinux

getenforce

如果是 Enforcing,可临时测试:

setenforce 0

五、SSH 自身配置问题

1. 查看 sshd 配置

vim /etc/ssh/sshd_config

重点参数:

ClientAliveInterval 60
ClientAliveCountMax 3

修改后重启:

systemctl restart sshd

2. 空闲断开常见原因

  • 没有心跳包
  • NAT / 防火墙超时

客户端解决(推荐)

# ~/.ssh/config
Host *
    ServerAliveInterval 60
    ServerAliveCountMax 3

六、查看日志(非常重要)

1. 服务端日志

journalctl -u sshd -f
# 或
tail -f /var/log/secure

常见错误:

  • Connection closed by remote
  • Failed password
  • error: maximum authentication attempts

七、资源 & 系统问题

1. 文件描述符 / 连接数

ulimit -n

2. 内存 / CPU

free -m
top

3. 被 OOM 杀掉

dmesg | grep ssh

八、中间设备问题

以下也会导致 SSH 断开:

  • 公司防火墙
  • 云厂商安全组
  • 路由器 NAT 超时
  • 代理 / 跳板机

九、快速排查清单(总结)

✅ 网络通不通
✅ 22 端口开没开
✅ sshd 起没起
✅ 防火墙放没放
✅ 日志有没有报错
✅ 是否空闲超时
✅ 是否被中间设备掐断


如果你愿意,可以贴一下:

  • 报错信息(客户端 + /var/log/secure)
  • CentOS 版本
  • 是否云服务器

我可以帮你精准定位。

0 踩