Ubuntu云服务器SSH连接中断排查全流程指南

常见中断现象:先明确"断连特征"
SSH连接中断的表现各有不同,识别具体特征能缩小排查范围:
- 操作中突然断开:比如执行文件上传时,终端突然提示"Connection closed",重新输入账号密码无法重连;
- 空闲后自动断开:连接成功但无操作(如离开座位半小时),返回时提示"连接已超时";
- 周期性断连:每隔固定时间(如10分钟)断开一次,重连后重复此现象。
三步诊断法:从网络到配置逐一排查
第一步:确认基础网络是否通顺
网络问题占SSH断连原因的60%以上,可通过3个动作快速验证:
- 本地网络测试:打开浏览器访问百度等常用网站,若无法加载,说明Wi-Fi/宽带本身有问题(可尝试重启路由器或切换手机热点);
- 服务器连通性测试:在本地终端输入命令(Windows用cmd,Mac/Linux用终端):
ping 你的云服务器IP地址
正常会返回类似"64 bytes from xxx: icmp_seq=1 ttl=55 time=23.4ms"的响应,若显示"请求超时",可能是服务器IP被运营商拦截或云服务器网络故障;- 控制台网络检查:登录云服务器管理后台,查看"网络监控"模块,确认服务器公网IP的入/出流量是否正常(异常波动可能是攻击或带宽跑满)。
第二步:检查SSH服务运行状态
SSH服务本身异常是第二大诱因,需登录服务器(若能通过控制台VNC临时登录)执行操作:
1. 查看服务是否存活:输入命令
sudo systemctl status ssh
正常应显示"active (running)",若显示"inactive",需用sudo systemctl start ssh
启动服务;2. 检查关键配置参数:编辑SSH服务配置文件
sudo nano /etc/ssh/sshd_config
重点关注两个参数:- ClientAliveInterval:设置服务器向客户端发送心跳包的间隔(默认0表示不发送,建议设为300即5分钟);
- ClientAliveCountMax:设置允许心跳包丢失的次数(默认3,即超过15分钟无响应会断开)。修改后需执行
sudo systemctl restart ssh
生效。第三步:排查防火墙拦截
防火墙规则错误可能导致连接中途断开,需检查两端设置:
- 服务器端:云控制台的"安全组"或服务器本地防火墙(如ufw)是否开放SSH默认端口22(命令验证:
sudo ufw status
需显示"22/tcp ALLOW");- 客户端:本地电脑的防火墙(如Windows防火墙、Mac的pf)是否拦截了 outbound 22端口流量(可临时关闭防火墙测试,能连接则需添加允许规则)。
针对性修复:根据诊断结果行动
- 网络问题:本地网络故障联系运营商;服务器网络异常(如IP被封)需提交云服务商工单;
- SSH服务问题:配置错误时按前文调整参数,服务崩溃则检查/var/log/auth.log日志(
sudo tail -f /var/log/auth.log
)定位崩溃原因(如内存不足、配置文件语法错误);- 防火墙问题:服务器端安全组添加22端口白名单,本地防火墙允许SSH客户端(如Putty、Xshell)访问网络。
掌握这套流程后,90%以上的SSH断连问题都能在15分钟内解决。需要注意的是,长期运行的云服务器建议定期检查SSH配置(每季度一次),并开启日志监控(如设置警报:当/auth.log出现"disconnected"高频记录时通知),能有效预防同类故障复发。