Oracle Cloud实例中Java应用API访问被拒问题求助
连接拒绝问题的排查解决思路
检查Java应用的监听地址
确认应用绑定的是0.0.0.0而非127.0.0.1(后者仅允许本地访问)。执行命令netstat -tulpn | grep [port]或ss -tulpn | grep [port]查看监听地址,确保输出显示0.0.0.0:[port]或实例内网IP。验证实例本地防火墙规则
Oracle Cloud实例默认可能开启firewalld或iptables,即使VCN安全列表放行,本地防火墙仍可能拦截端口:- 临时关闭防火墙测试:执行
systemctl stop firewalld或service iptables stop,之后重新用curl请求API。 - 若关闭后可访问,添加永久放行规则:例如
firewall-cmd --add-port=[port]/tcp --permanent,再执行firewall-cmd --reload生效。
- 临时关闭防火墙测试:执行
确认端口与应用可用性
- 核对Java应用配置(如Spring Boot的
server.port),确保curl使用的端口与应用监听端口一致。 - 在实例内部执行
curl http://localhost:[port]/example/api/...,验证应用本身是否正常响应,排除应用启动失败或接口路径错误的问题。
- 核对Java应用配置(如Spring Boot的
检查实例网络配置细节
- 确认实例所在子网的路由表包含
0.0.0.0/0指向Internet网关(IGW)的路由规则(虽然ping和SSH正常,但仍需排查路由是否完整)。 - 确认子网关联的安全列表是你配置的允许入站规则的列表,避免其他安全列表覆盖设置。
- 确认实例所在子网的路由表包含
排查Java应用运行状态
- 查看应用日志(如
tail -f /path/to/app.log),确认应用已成功启动,无端口占用、启动报错等信息,日志中应有监听端口成功的输出。 - 执行
ps aux | grep java确认应用进程是否正常运行。
- 查看应用日志(如
检查网络安全组(NSG)规则
如果实例关联了网络安全组,需确认NSG的入站规则也允许目标端口的TCP访问——NSG的优先级高于安全列表,若NSG未放行,会导致连接被拒。
内容的提问来源于stack exchange,提问作者Marcus23
相关产品推荐
相关产品推荐

