Linux防火墙firewalld不生效,无法拦截Docker映射端口

今天出现了一个奇怪的现象,centos服务器上的防火墙(firewall)没有开放8103端口,但是依然可以访问,服务器开放的端口如下:

1、前面用Docker安装了mysql,没有用防火墙开放3306端口,但是我们也确实可以访问数据库,原因是Docker利用了iptables管理了防火墙,而这种管理在firewalld中还看不到。

1、Dokcer禁用iptables防火墙

vi /etc/docker/daemon.json
# 如果没有这个文件则新建  格式是json的格式
# 添加如下一行
"iptables":false
禁用 docker 的 iptables 规则
配置daemon.json
"iptables": false,  #禁用iptables防火墙
开启转发
firewall-cmd --add-masquerade --permanent
firewall-cmd --reload
开启开放ip
firewall-cmd --permanent --zone=public --add-rich-rule='rule family=ipv4 source address="172.17.0.0/16" accept'
firewall-cmd --reload
重启docker
systemctl restart docker
07-08 08:13