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 也取消了
|