无法连接AWS EC2实例求助:SSH及网站访问均失败
AWS EC2实例连接失败及网站无法访问排查方案
一、实例基础状态检查
- 登录AWS控制台,确认EC2实例处于运行中状态,且系统状态检查、实例状态检查均显示
通过 - 若状态检查失败,根据控制台提示的具体错误修复(如存储故障、内核异常等)
二、网络配置验证
1. 安全组规则
- 入站规则:
- 确保允许SSH(22端口)流量来源(公网连接需放开你的公网IP或限定范围,生产环境避免全开放)
- 确保允许网站服务端口(如80/443)的流量来源(公网访问需对应放开)
- 出站规则:
- 确认未限制实例向外发起请求(默认安全组允许全量出站,自定义规则需验证)
2. 网络ACL配置
- 检查子网关联的网络ACL:
- 入站规则需放行22、80/443端口流量(ACL优先级高于安全组,无拒绝规则)
- 出站规则需允许实例返回响应流量(如放行所有出站或对应端口的返回包)
3. 公网访问能力
- 验证实例是否绑定正常状态的弹性公网IP(EIP)
- 确认子网路由表包含指向互联网网关(IGW)的路由条目,确保实例能访问公网
三、EC2 Instance Connect专项排查
- 确认实例已预装EC2 Instance Connect工具(Amazon Linux 2默认自带,其他系统需手动安装)
- 检查实例关联的IAM角色是否具备
EC2InstanceConnect权限(若用IAM授权连接) - 验证实例系统用户(如ec2-user、ubuntu)未被锁定,密钥/密码配置正常
四、SSH连接深层诊断
- 通过AWS控制台查看系统日志或实例屏幕截图,排查启动时的异常(如SSH服务未启动、密钥权限错误)
- 尝试用AWS Systems Manager Session Manager连接(需实例已配置SSM代理及对应权限),绕过公网SSH直接验证实例内部状态
五、网站服务可用性检查
- 若能进入实例,执行以下操作:
- 用
systemctl status [服务名](如nginx、httpd)查看网站服务运行状态 - 检查服务日志(如
/var/log/nginx/error.log)定位启动失败原因 - 执行
curl localhost:80验证实例内部能否正常访问网站服务
- 用
内容的提问来源于stack exchange,提问作者Meerkat
相关产品推荐
相关产品推荐

