如何解决EC2实例Public IP无法正常工作的问题
EC2实例公网IP无法访问的排查步骤
检查实例的网络ACL:网络ACL是子网级别的防火墙,默认允许所有入站出站,但如果被修改过,可能会阻断HTTP/HTTPS流量。确认入站规则允许
0.0.0.0/0的80(HTTP)、443(HTTPS)端口,出站规则允许所有返回流量(比如1024-65535端口的响应)。验证实例内部的防火墙设置:虽然能SSH登录,但实例本身的操作系统防火墙可能阻断了HTTP/HTTPS端口:
- Linux系统:执行
sudo iptables -L查看规则,确保80/443端口允许访问;如果用ufw,执行sudo ufw status检查是否开放了对应端口。 - Windows系统:打开防火墙高级设置,确认入站规则允许HTTP(80)和HTTPS(443)流量。
- Linux系统:执行
确认实例上的服务是否正常运行:要确保HTTP服务(比如Apache、Nginx)已经启动并在监听80端口。执行
netstat -tulpn | grep :80(Linux)或netstat -ano | findstr ":80"(Windows),查看是否有进程在监听对应端口。如果服务没启动,启动服务(比如sudo systemctl start nginx)。检查公网IP的类型:如果是弹性公网IP(EIP),确认已经正确关联到EC2实例;如果是实例默认的公网IP,重启实例后IP会变化,要确认你用的是最新的公网IP。
验证路由表设置:确认实例所在子网的路由表有指向互联网网关(IGW)的路由条目(目标
0.0.0.0/0,下一跳为IGW)。如果没有这条路由,实例无法访问公网,外部也无法通过公网IP访问实例。
内容的提问来源于stack exchange,提问作者jagroop
相关产品推荐
相关产品推荐

