防火墙问题

防火墙问题

我刚刚遇到这个问题,现在已经很晚了,所以我现在真的无法再正常思考了。但这仍然是一个相当简单的事情,所以我真的不知道我错过了什么,只是在这里发疯:

我正在设置一个仅用于运行 Docker 容器的服务器。我从一个 MariaDB 容器开始,这里一切正常,我决定连接到它,以确保一切正常。

所以现在我想连接到运行 MariaDB 的服务器,由于我位于 Firewalld 后面,我首先通过向 Firewall-cmd 添加新区域来配置它,添加服务和源:

firewall-cmd --permanent --new-zone=test-from-home
firewall-cmd --reload
firewall-cmd --permanent --zone=test-from-home --add-service=mysql
firewall-cmd --permanent --zone=test-from-home --add-source=XX.XX.XX.XX/32
firewall-cmd --reload

而且我使用mysql -u root -p -h host All great!完美连接!

跑步firewall-cmd --get-active-zones回报:

[root@nd01 latest]# firewall-cmd --get-active-zones
test-from-home
  sources: XX.XX.XX.XX/32
public
  interfaces: eth0

所以只是因为有时我记得进行这些测试以确保一切正常,我连接到另一台机器并从另一个 IP 成功连接。

firewall-cmd --zone=test-from-home --list-all
test-from-home (active)
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: XX.XX.XX.XX/32
  services: mysql
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
firewall-cmd --zone=public --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources: 
  services: ssh dhcpv6-client
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules:

为什么我可以从随机机器连接?我错过了什么?谢谢

答案1

好吧,今天我找到了答案,

FirewallD 与 Docker 不兼容(反之亦然)

同时,我发现 FirewallD 和 Docker 不能协同工作。根据 Docker 文档,解决这个问题的方法是禁用 IPTables:-Docker 和 iptables

正如它从第一个立场所说的那样:

在 Linux 上,Docker 操纵iptables规则来提供网络隔离。这是一个实现细节,您不应修改 Docker 插入到您的iptables策略中的规则。

由于有人建议不要这么做,因此这不会是我的第一选择。

所以我做了更多的挖掘,我找到了一个可以给我答案的页面,任何遇到这个问题的人都可以从中得到一些想法,这是一个很好的方法,通过向 DOCKER-USER 链添加配置。

Docker 遇到防火墙——最终答案

相关内容