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

Spring Boot端口本地修改生效但AWS EC2上无效问题求助

解决思路

1. 确认Spring Boot应用实际监听的端口

本地配置生效不代表EC2上的应用真的绑定了8081端口,优先验证这一点:

  • 登录EC2实例,执行 netstat -tulpn | grep java 或 ss -tulpn | grep java,查看Java进程的监听端口,确认是否为8081。
  • 检查EC2上的application.properties文件,确保server.port=8081配置存在且未被注释。
  • 查看应用启动日志,搜索Tomcat started on port(s): 8081类关键词,确认启动时确实绑定了目标端口。

2. 验证EC2实例内部的可访问性

先排除外部网络干扰,在EC2内部测试端口连通性:

  • 执行 curl http://localhost:8081/login/go 或 curl http://127.0.0.1:8081/login/go,看是否能正常获取响应。
  • 如果内部访问也失败,说明是应用自身问题,可再用 lsof -i :8081 重复确认端口是否被占用。

3. 检查EC2的网络ACL配置

安全组放行端口后,AWS子网的网络ACL(NACL) 可能仍拦截流量:

  • 进入AWS控制台,找到EC2实例所属子网,查看对应NACL规则。
  • 确保入站规则允许0.0.0.0/0访问8081端口(TCP),同时出站规则允许对应响应流量(比如放行所有出站或匹配端口的回包)。

4. 检查EC2本地防火墙规则

EC2实例自身的本地防火墙(如iptables/ufw)可能拦截端口:

  • 执行 iptables -L 查看规则,确认是否存在拒绝8081端口的条目;Ubuntu系统可执行 ufw status 查看防火墙状态。
  • 若存在拦截,添加放行规则:比如 iptables -A INPUT -p tcp --dport 8081 -j ACCEPT,或 ufw allow 8081/tcp。

5. 确认应用绑定的IP地址

Spring Boot默认绑定0.0.0.0(允许所有IP访问),若配置了server.address=127.0.0.1则仅本地可访问:

  • 检查application.properties是否存在server.address配置,如有则改为0.0.0.0或直接删除该配置。
  • 查看启动日志,确认绑定地址为0.0.0.0而非仅本地回环地址。

6. 排查负载均衡/反向代理配置(若有)

如果EC2实例前部署了负载均衡或反向代理,可能是代理层未配置8081端口转发:

  • 确认负载均衡的监听规则包含8081端口,目标组已将流量转发至EC2的8081端口。

内容的提问来源于stack exchange,提问作者Yu Xing

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 17:39:57