CentOS 防火墙阻止从我的 Java 应用程序发出的 GET 请求

CentOS 防火墙阻止从我的 Java 应用程序发出的 GET 请求

我在 CentOS 服务器上部署了一个 dockerized Java Web 应用程序。该应用程序暴露在端口 80 上,首先,服务器会阻止对该端口发出的每个请求。我设法通过启用端口 80 上的通信来解决这个问题指导。

但是,我的应用程序向其他 API 发出请求,主要是通过对这些端点的 GET 请求。在我的机器上,docker 镜像工作得很好,但我的应用程序无法从 CentOS 服务器内部与这些外部 API 进行通信。我尝试关闭防火墙,应用程序再次开始与外部 API 通信。

我尝试寻找启用这些请求的方法,但找不到任何可以使其工作的方法。我对网络和安全问题不是很有经验,所以也许我无法有效地使用搜索关键字。

如何配置防火墙以启用我的应用程序向外部 API 发出的这些请求?

编辑:我正在 CentOS 8 中使用 FirewallD。我不确定出现了什么问题。我的应用程序上的日志显示无法达到请求的目标。

答案1

您需要将 doket 接口添加到受信任的firewalld区域中:

firewall-cmd --zone=trusted --change-interface=docker0
firewall-cmd --zone=trusted --add-masquerade --permanent
firewall-cmd --reload

我还听说,如果您在 /etc/firewalld/firewalld.conf 中将防火墙后端从“nftables”切换为“iptables”,它可以开箱即用。

答案2

抱歉,我还不能添加评论,但是:

您使用什么防火墙?

当您请求其状态时,它会打印出什么?

如果您正在使用ufw尝试ufw allow out ...

相关内容