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

AWS EC2 Linux实例无法通过公网IPv4 DNS访问Spring Boot项目

解决AWS EC2上Docker部署Spring Boot项目连接拒绝问题

以下是逐步排查和解决的具体步骤:

1. 验证Spring Boot服务监听地址

Spring Boot默认仅监听localhost,会导致Docker端口映射后外部无法访问:

  • 进入容器检查端口监听情况:
    docker exec final-app ss -tulpn | grep 8081
    
    输出需包含0.0.0.0:8081,而非仅127.0.0.1:8081。
  • 调整Spring Boot配置:在application.properties或application.yml中添加/修改:
    server.address=0.0.0.0
    server.port=8081
    
    重新构建镜像并运行容器。

2. 检查容器运行状态与服务日志

确认服务是否正常启动:

  • 查看容器运行状态:
    docker ps
    
    确保final-app和docker-mysql容器状态均为Up。
  • 查看服务启动日志,排查启动失败或数据库连接异常:
    docker logs final-app
    

3. 测试EC2实例内部访问

在EC2控制台执行命令,验证服务在实例内部是否可达:

curl http://localhost:8081
# 或使用实例私有IP测试
curl http://<EC2私有IP>:8081

如果内部访问失败,说明问题出在服务本身或容器配置,与安全组无关。

4. 关闭EC2实例内部防火墙

部分Linux发行版默认开启防火墙,可能拦截端口:

  • 对于CentOS/RHEL系统:
    sudo systemctl stop firewalld
    sudo systemctl disable firewalld
    
  • 对于Ubuntu/Debian系统:
    sudo ufw disable
    
    关闭后再次测试外部访问。

5. 确认安全组与实例关联

  • 进入AWS EC2控制台,检查当前实例的安全组,确认已配置的TCP 8081端口入站规则(允许0.0.0.0/0和::/0)确实关联到该实例。
  • 检查网络ACL:若使用自定义ACL,需确保入站规则允许TCP 8081流量,出站规则允许所有响应流量。

6. 确认访问地址格式

访问时必须指定端口:

http://<EC2公网IPv4 DNS>:8081

不要省略端口号,避免误用默认80端口。


内容的提问来源于stack exchange,提问作者Salahuddin Shayan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 08:59:15