
centos8 主机一个,firewalld 正常运行,使用 firewall-cmd list 查看,端口 32768 并不在列表内,使用 docker 起的一个应用占用了 32768 端口.
按照一般情况,32768 端口不在 firewall-cmd list 的列表内,所以应该是端口关闭了,但是现象是通过浏览器访问这个端口的服务仍然正常
重启了 firewalld 重启了 docker 无法解决
各位有没有遇到这种情况,怎么解决
附录:
root@vultrguest ~]# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2020-07-06 01:35:35 UTC; 17min ago Docs: man:firewalld(1) Main PID: 34371 (firewalld) Tasks: 2 (limit: 5048) Memory: 26.5M CGroup: /system.slice/firewalld.service └─34371 /usr/libexec/platform-python -s /usr/sbin/firewalld --nofork --nopid Jul 06 01:41:39 vultrguest firewalld[34371]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w10 -t nat -D OUTPUT' failed: iptables: Bad rule (does a matching rule exist in that chain?). Jul 06 01:41:39 vultrguest firewalld[34371]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w10 -t filter -X DOCKER' failed: iptables v1.8.4 (nf_tables): CHAIN_USER_DEL failed (Device or r> Jul 06 01:41:39 vultrguest firewalld[34371]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w10 -t filter -X DOCKER-ISOLATION-STAGE-1' failed: iptables v1.8.4 (nf_tables): CHAIN_USER_DEL f> Jul 06 01:41:39 vultrguest firewalld[34371]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w10 -t filter -F DOCKER-ISOLATION' failed: iptables: No chain/target/match by that name. Jul 06 01:41:40 vultrguest firewalld[34371]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w10 -t filter -X DOCKER-ISOLATION' failed: iptables: No chain/target/match by that name. Jul 06 01:41:40 vultrguest firewalld[34371]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w10 -D FORWARD -i docker_gwbridge -o docker_gwbridge -j ACCEPT' failed: iptables: Bad rule (does > Jul 06 01:41:40 vultrguest firewalld[34371]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w10 -D FORWARD -i br-3f83ec033cb1 -o br-3f83ec033cb1 -j DROP' failed: iptables: Bad rule (does a > Jul 06 01:41:40 vultrguest firewalld[34371]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w10 -D FORWARD -i docker0 -o docker0 -j DROP' failed: iptables: Bad rule (does a matching rule ex> Jul 06 01:41:41 vultrguest firewalld[34371]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w10 -D FORWARD -i docker0 -o docker0 -j DROP' failed: iptables: Bad rule (does a matching rule ex> Jul 06 01:41:43 vultrguest firewalld[34371]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w10 -t filter -nL DOCKER-INGRESS' failed: iptables: No chain/target/match by that name. lines 1-20/20 (END) [root@vultrguest ~]# firewall-cmd --list-ports [root@vultrguest ~]# firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: ens3 sources: services: cockpit dhcpv6-client ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: [root@vultrguest ~]# 1 xyjincan 2020-07-06 10:05:45 +08:00 好像是 docker 自动添加防火墙策略了 |
2 LokiSharp 2020-07-06 10:06:47 +08:00 via iPhone docker 是绕过防火墙的 |
3 Yut 2020-07-06 10:09:44 +08:00 看看 docker 的 mapping? |
4 wooyuntest 2020-07-06 10:10:42 08:00 docker 直接更新了 iptables firewalld 的本质也是在 iptables 上面封装了一层,所以 firewall-cmd list 是看不到 docker 占用的端口的 |
5 amrom OP @wooyuntest 我百度到也是这样说的,这个怎么处理,重启 docker 也不行吗? |
6 zpf124 2020-07-06 10:31:26 +08:00 |
7 qwerthhusn 2020-07-06 10:36:58 +08:00 dockers 容器启动的时候会自己向 iptables 添加规则 但是之前经常会出现添加 iptables 失败的情况,导致容器起不来 |
8 haozxuan001 2020-07-06 16:18:14 +08:00 简单来说,是因为 docker 隔离网络资源造成的; 处理方式: 1 、先确定 docker 启动的 container 的启动模式(有无指定 network 参数),默认 bridge 时是会进行网络隔离的,这时候要想防火墙规则生效,只能在 forward 链中操作(优雅的方式是自己建立一个 DOCKER-USER 链,如果你的 docker 版本够高默认是有的,将规则写在此链中,并应用在 FORWARD 链即可) 2 、如果是 host 模式(宿主机模式)即不进行网络隔离,直接使用宿主机网络的,添加规则和虚机无异 |
9 tomychen 2020-07-06 19:09:38 +08:00 nat 的问题把 nat 也取消了 |