You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Amazon EC2运行实例无法SSH及80端口访问求助

Hey there, let's work through this EC2 connectivity issue step by step—since you could access it before, we can narrow down the most likely culprits.

排查EC2实例SSH与HTTP访问故障的分步指南

1. 先确认实例基础状态与网络标识

  • 检查EC2实例的系统状态检查和实例状态检查:在EC2控制台的实例详情页「状态检查」标签下,确保两项均显示「正常」。若有失败,优先尝试软重启实例,无效再进行硬重启操作。
  • 核实实例公网IP是否变更:如果实例未绑定弹性IP,重启后普通公网IP可能会改变,确认你当前使用的IP与实例面板显示的公网IP一致。

2. 重新核验安全组与网络ACL配置

虽然你提到安全组已启用SSH入站规则,还是建议再仔细核对:

  • SSH规则的源地址:确认规则中的源IP是你当前的本地公网IP(若更换了网络环境,本地IP可能已变化)。排查阶段可临时添加0.0.0.0/0作为源地址测试(测试完成后务必删除,避免安全风险)。
  • HTTP(80端口)入站规则:检查安全组是否存在允许0.0.0.0/0或你的本地IP访问80端口的规则。
  • 子网网络ACL:网络ACL是子网层面的防火墙,默认允许所有出入站流量,但如果被修改过,可能会阻断22/80端口。确保入站规则允许22、80端口,出站规则允许1024-65535端口的响应流量。

3. 排查实例内部的服务与防火墙状态

因为之前能正常访问,大概率是实例内部配置出现了变化:

  • 若实例已启用串行控制台,可通过EC2控制台直接登录,检查以下内容:
    • SSH服务状态:运行systemctl status sshd(systemd系统)或service ssh status(SysVinit系统),确认服务是否正常运行、有无报错日志。
    • 本地防火墙设置:执行ufw status(Ubuntu)或firewall-cmd --list-all(CentOS/RHEL),核实是否存在阻断22/80端口的规则。
    • HTTP服务状态:运行systemctl status nginx或systemctl status httpd,查看服务是否正常启动、是否绑定了80端口。
  • 若串行控制台无法登录,可创建实例卷的快照,将快照挂载到另一台正常运行的EC2实例上,检查系统日志(如/var/log/auth.log、/var/log/syslog),查找SSH或网络相关的错误信息。

4. 利用ssh -vvvv输出精准定位问题

你提到的ssh -vvvv输出是关键排查依据,不同阶段的报错对应不同问题:

  • 若输出停在connect to host X.X.X.X port 22: Connection timed out:基本可判定是网络层面的阻断(安全组、网络ACL或路由问题)。
  • 若停在Permission denied (publickey):大概率是密钥权限或~/.ssh/authorized_keys文件被修改(比如权限设置错误、密钥被移除)。
  • 若停在Host key verification failed:可能是实例主机密钥发生变化(如系统重装),可删除本地~/.ssh/known_hosts中对应IP的条目后重试。

如果能提供ssh -vvvv的完整输出,就能更快锁定问题根源啦!


内容的提问来源于stack exchange,提问作者Prabhat Subedi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:21:57