Firewalld防火墙的规则无法控制Docker端口的问题

在 Ubuntu 系统中使用 firewalld 时,默认情况下,firewalld 不会对 Docker 容器的网络流量生效。这是因为 Docker 在启动时会自动创建自己的 iptables 规则来管理网络,绕过了 firewalld 的规则。这种行为可以确保 Docker 容器的网络功能正常,但也会导致 firewalld 的规则无法控制 Docker 端口。 具体原因有以下几点: 1. Docker 使用 iptables Docker 默认会直接操作 iptables 来管理网络连接,而不是通过 firewalld。因此,firewalld 中的规则不会影响 Docker 创建的容器的网络流量。 2. Docker 配置覆盖 firewalld Docker 会修改 iptables 规则,以确保容器能够进行网络连接和端口转发。这些规则可能与 firewalld 的设置发生冲突,导致 firewalld 对 Docker 的流量无效。 解决方案 如果你希望 firewalld 可以控制 Docker 容器的网络流量,可以尝试以下几种方法。 方法 1: 配置 Docker 使用 firewalld 管理规则 可以通过修改 Docker 的配置,禁用 Docker 自己管理 iptables,让 firewalld 接管。 打开 Docker 配置文件(如果文件不存在,可以新建一个): sudo nano /etc/docker/daemon.json 添加以下配置,禁用 Docker 自动修改 iptables: { "iptables": false } 重启 Docker 服务: sudo systemctl restart docker ...

2024年10月10日 · 1 分钟 · 153 字 · R0n9