AWS Ubuntu实例SSH突然断开后无法通过PuTTY重连问题咨询
故障可能原因
- 实例资源耗尽:Ubuntu micro实例配置极低,部署Nginx等服务后若有突发访问流量、后台异常进程占用资源,很容易出现CPU、内存或磁盘使用率100%的情况,触发系统OOM(内存溢出)杀掉sshd进程,或导致内核无响应无法处理网络请求。
- SSH服务或防火墙配置异常:部署服务过程中可能误修改sshd配置、UFW/iptables规则,封禁了22端口;若安装了fail2ban等防护工具,多次输错登录密码会导致本地IP被临时封禁;sshd服务也可能因配置错误、依赖包更新异常退出。
- 网络层面限制:云服务商安全组规则被误修改,删除了22端口的入站许可;实例公网IP因DDoS攻击、内容违规被云服务商黑洞封禁;本地网络出口IP动态变化,若sshd配置了IP白名单就会无法登录;若使用动态公网IP,实例重启后IP变化也会导致用旧IP连接超时。
- 系统或安全问题:系统自动更新内核、sshd包后未正确重启服务导致异常;SSH端口被恶意爆破攻击导致服务崩溃;系统被入侵后攻击者修改了SSH配置或防火墙规则,主动封禁了你的登录IP。
排查定位步骤
第一步:云服务商控制台排查(无需登录实例)
- 查看实例监控面板,确认CPU、内存、磁盘使用率是否存在持续100%的情况,优先排除资源耗尽问题。
- 核对实例当前公网IP是否和PuTTY中填写的IP一致,若使用动态公网IP,实例重建、重启后IP会发生变化。
- 检查实例绑定的安全组、网络ACL规则,确认入站方向已开放22端口(或自定义SSH端口),且允许你本地IP的访问请求。
- 使用云服务商提供的网页VNC远程控制台直接登录实例,该方式不走公网SSH链路,只要实例运行正常即可登录,后续内部排查都在VNC登录后操作。
第二步:实例内部排查
- 检查SSH服务运行状态:执行命令
systemctl status sshd,若服务未正常运行,查看日志中的报错信息修复问题后,执行systemctl restart sshd重启服务。 - 核对防火墙规则:执行
ufw status查看UFW防火墙是否开放22端口;执行iptables -L -n检查iptables规则是否封禁了SSH端口或本地IP;若安装了fail2ban,执行fail2ban-client status sshd确认本地IP是否被封禁。 - 检查SSH配置:查看
/etc/ssh/sshd_config文件,确认Port、AllowUsers、PermitRootLogin等配置符合你的登录需求,修改配置后需重启sshd服务生效。 - 排查系统日志:执行
journalctl -u sshd --since "2 hours ago"查看SSH服务近期日志,执行dmesg查看内核是否有OOM、硬件异常报错,执行last核对近期登录记录是否有异常。 - 核对资源使用:执行
free -h查看内存使用率,执行df -h确认磁盘是否已满,执行top查看CPU占用最高的进程,清理异常占用的资源。
第三步:网络链路排查
- 本地执行
ping 实例公网IP测试网络连通性,执行nc -zv 实例公网IP 22测试22端口是否可访问,若两者都失败,优先排查安全组、公网IP封禁问题。 - 关闭本地代理、VPN后重试,或切换手机热点等其他网络环境测试,排除本地网络故障导致的连接超时。
- 查看云服务商站内信、告警通知,确认实例是否因DDoS攻击、违规行为被封禁公网访问。
内容的提问来源于stack exchange,提问作者Primico
相关产品推荐
相关产品推荐

