设置全流量入站规则后仍无法访问AWS EC2实例,求解决方法
解决AWS EC2实例无法访问的问题
1. 确认实例内部目标端口的服务是否运行
连接拒绝(ERR_CONNECTION_REFUSED)的核心原因通常是目标端口没有服务在监听。你可以通过以下方式检查:
- 若能通过SSH或AWS Systems Manager Session Manager登录实例,执行命令查看端口监听状态:
- 访问80端口(HTTP):
sudo netstat -tulpn | grep :80或ss -tulpn | grep :80 - 访问443端口(HTTPS):
sudo netstat -tulpn | grep :443 - 自定义端口请替换为对应数值
- 访问80端口(HTTP):
- 如果命令无输出,说明该端口没有服务运行,需要启动对应Web服务(如Apache、Nginx)或检查服务配置是否正确。
2. 检查实例内部防火墙规则
即使安全组允许所有入站流量,实例自身的防火墙可能拦截请求:
- Ubuntu/Debian系统:检查ufw状态
sudo ufw status,若启用则允许目标端口:sudo ufw allow 80/tcp - RHEL/CentOS系统:检查firewalld规则
sudo firewall-cmd --list-all,添加端口规则sudo firewall-cmd --add-port=80/tcp --permanent,重载生效sudo firewall-cmd --reload - 用iptables的系统:查看规则
sudo iptables -L -n,确保存在允许对应端口入站的规则。
3. 验证访问的IP地址正确性
确认你访问的X.XX.XXX.XX是实例当前的公有IP或已绑定的弹性IP:
- 可在AWS控制台EC2实例详情页查看当前IP,若实例重启过,公有IP可能会变更,弹性IP则保持固定。
4. 检查子网的网络ACL配置
网络ACL是子网级的防火墙,需同时确认入站和出站规则:
- 入站规则:允许目标端口的流量(如80、443)
- 出站规则:允许实例返回的响应流量(通常建议允许所有出站,或至少开放对应端口的回包流量)
5. 确认实例状态检查结果
在AWS控制台查看实例的系统状态检查和实例状态检查,如果检查失败,尝试重启实例或排查系统内部故障。
内容的提问来源于stack exchange,提问作者user308827
相关产品推荐
相关产品推荐

