EC2上Docker Compose部署的应用无法公网访问求助
排查要点
检查Ubuntu本地防火墙(ufw)
Ubuntu默认可能启用ufw拦截外部流量。执行ufw status查看状态,若开启需添加允许规则:ufw allow 8000/tcp ufw allow 8001/tcp ufw reload确认Docker端口绑定范围
容器日志显示监听[::]:80/443(IPv6任意地址),但公网多为IPv4访问。执行docker ps查看端口映射,确保显示为0.0.0.0:8000->80/tcp而非仅:::8000->80/tcp。若仅绑定IPv6,需在docker-compose.yml中明确指定IPv4绑定:ports: - "0.0.0.0:8000:80" - "0.0.0.0:8001:443"验证网络ACL配置
默认VPC的网络ACL是无状态的,除入站开放8000/8001端口,还需确保出站开放1024-65535端口(用于回包)。检查子网关联的网络ACL,确认入站规则允许0.0.0.0/0访问8000/tcp、8001/tcp,出站规则允许0.0.0.0/0访问1024-65535/tcp。确认EC2实例的公网可达性
确保使用实例的公网IP/弹性IP访问,而非私有IP。同时检查实例所在子网的路由表,确认存在0.0.0.0/0指向互联网网关(igw-xxx)的路由条目。验证容器内应用监听状态
进入容器确认应用确实在监听端口:docker exec <容器名称或ID> ss -tulpn | grep -E '80|443'需输出包含
LISTEN状态的条目,确保应用未异常退出或监听失败。
内容的提问来源于stack exchange,提问作者Rasik
相关产品推荐
相关产品推荐

