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

PCF部署的Spring服务调用RestTemplate遇Connection refused,需防火墙配置指导

解决PCF平台Spring服务RestTemplate调用连接拒绝的防火墙配置调整方案

我之前在PCF上部署Spring服务时也碰到过一模一样的问题,既然你已经精准定位是防火墙导致的java.net.ConnectException: Connection refused,那咱们直接针对PCF的核心网络控制组件——安全组(Security Groups)来调整就行,以下是实操指南:

一、先确认当前安全组规则

首先得搞清楚你的应用现在受哪些安全组约束:

  • 用CF CLI执行命令查看所有安全组:cf security-groups
  • 找到你的应用所在空间绑定的安全组,查看具体规则:cf security-group <安全组名称>
  • 重点检查出站规则里有没有允许目标服务的IP/端口组合,如果完全没有相关条目,那就是问题根源了。

二、创建允许目标服务通信的安全组规则

  1. 新建一个JSON配置文件(比如命名为allow-target-service.json),内容示例如下:
[
  {
    "destination": "目标服务的IP段(如192.168.1.0/24)或具体IP/32",
    "protocol": "tcp",
    "ports": "目标服务的端口(如8080)",
    "description": "允许出站访问目标Spring服务"
  }
]

小贴士:如果目标服务也是PCF上部署的应用,建议用该应用的内部IP段,或者直接通过PCF的内部服务发现机制(不过先解决防火墙问题优先)。

  1. 通过CF CLI上传这个安全组:
    cf create-security-group allow-target-service allow-target-service.json

三、绑定安全组到你的应用/空间

根据你的需求选择绑定范围:

  • 绑定到整个空间(该空间下所有应用都生效):
    cf bind-security-group allow-target-service <你的组织名称> <你的空间名称>
  • 仅绑定到当前出问题的应用:
    cf bind-security-group allow-target-service <你的组织名称> <你的空间名称> --app <你的应用名称>

四、验证配置生效

  • 重启你的Spring应用让新规则生效:cf restart <你的应用名称>
  • 再次测试RestTemplate的调用,应该就能正常建立连接了。

额外注意事项

  • 如果目标服务是外部公网服务,还要确认企业的边界出口防火墙是否也允许PCF集群访问该服务,有时候PCF内部安全组开了,但外部防火墙还会拦截。
  • 若你使用了PCF的Service Mesh(如Istio),还需要检查Sidecar的网络规则,但优先从安全组排查更高效。
  • 可以通过cf ssh <你的应用名称>进入应用容器,用curl <目标服务地址>测试连通性,进一步确认问题是否解决。

内容的提问来源于stack exchange,提问作者Nikhil Pareek

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:45:48