Linux系统firewalld无法拦截docker映射端口

【问题描述】

在服务器上设置了防火墙规则,旨在限制只有特定的两个IP地址能够访问2181、6379、9200端口。但在测试时发现:

2181端口(直接监听在宿主机上)被拒绝访问,符合预期。

9200和6379端口(docker容器映射的端口)可以正常访问,与预期不符。

 

【问题分析】

排查思路如下:

1、检查firewalld的状态,发现存在警告信息。

 

2、考虑到docker容器在启动时会自动配置iptables规则以允许容器端口的访问。推测firewalld可能在启动时或规则重载时删除了docker自动添加的iptables规则。

原因说明如下:

firewalld在启动时或规则重载时,会清除iptables中的部分或全部规则,这会影响到docker容器通过iptables映射的端口。docker在默认情况下会使用iptables来管理容器的网络流量,包括端口映射。因此,当firewalld与docker同时运行时,如果firewalld的配置或启动顺序不当,可能会导致docker容器的端口映射失效。

【问题解决方法】

通过修改docker服务配置,禁用docker对iptables的自动管理解决。详细步骤操作如下:

vim /etc/systemd/system/docker.service

在在[Service]部分下,找到ExecStart=行,并在其后面添加--iptables=false参数。

 

systemctl daemon-reload

systemctl restart docker

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术瘾君子1573

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值