AWS部署SpringBoot API后端点无法连接,请求协助排查
排查AWS上SpringBoot API无法连接的关键步骤
刚上手AWS踩这种连接坑太正常了!我帮你梳理几个最容易遗漏的配置,按顺序排查应该就能解决:
1. 检查EC2实例的安全组(Security Group)配置
这是90%的新手都会漏掉的核心点!AWS的安全组相当于实例的「虚拟防火墙」,默认会拒绝所有外部入站请求。你需要:
- 登录EC2控制台,找到你的Linux实例,在「描述」标签里找到关联的安全组,点击进入配置页面
- 编辑「入站规则」,添加一条规则:
- 类型:自定义TCP规则
- 端口范围:填你的SpringBoot API使用的端口(默认是8080,如果改了就填自定义的端口)
- 来源:可以暂时选
0.0.0.0/0(允许所有IP访问,测试完成后建议改成你自己的公网IP,提升安全性)
- 保存规则后,再尝试连接端点
2. 检查Linux实例本地的防火墙设置
AWS安全组放行了,但实例本身的系统防火墙可能还在拦截请求:
- 如果是Ubuntu/Debian系统,用
ufw命令操作:# 查看当前防火墙状态 sudo ufw status # 放行目标端口 sudo ufw allow 8080/tcp # 重启防火墙生效 sudo ufw reload - 如果是CentOS/RHEL系统,用
firewalld命令操作:# 放行目标端口(永久生效) sudo firewall-cmd --add-port=8080/tcp --permanent # 重启防火墙生效 sudo firewall-cmd --reload
3. 确认SpringBoot的监听地址
有时候SpringBoot会被配置成只监听本地回环地址(127.0.0.1),这样只能在实例内部访问,外部完全连不上:
- 检查你的SpringBoot项目的
application.properties或application.yml文件:- 如果有
server.address=127.0.0.1,把它改成server.address=0.0.0.0(允许监听所有网卡),或者直接删掉这行(默认就是监听0.0.0.0)
- 如果有
- 重新打包上传jar包,重启SpringBoot服务
4. 验证SpringBoot服务的运行状态和端口监听
先确认服务真的在正常运行,并且监听了正确的端口:
- 登录实例,用命令查看Java进程:
能看到你的jar包进程就说明服务在运行ps aux | grep java - 再检查端口监听情况:
输出里如果显示netstat -tulpn | grep 8080 # 或者用更现代的ss命令 ss -tulpn | grep 80800.0.0.0:8080就说明监听了所有网卡,没问题;如果是127.0.0.1:8080,就得回到步骤3修改配置
5. 确认你使用的是正确的公网IP
别搞错地址!要访问实例的公网IPv4地址,而不是私有IP(私有IP只能在AWS内网访问)。另外,按需实例重启后公网IP会自动变化,如果你用的是之前记录的旧IP,肯定连不上——去EC2控制台实例详情里看最新的公网IP再试。
按这个顺序排查,基本就能找到问题啦!
内容的提问来源于stack exchange,提问作者Erent
相关产品推荐
相关产品推荐

