linux 防火墙不起作用,Linux系统安装docker后,firewall规则无效不起作用

## 失效原因

默认情况下, docker启动后参数中如果加了端口映射, 就会自动将端口开放给所有网络设备访问,

并且这种情况下即使在本机的系统防火墙中加规则也无效, 因为docker会自动添加一个优先级最高的针对这个映射端口全开放规则,

这样就需要在docker启动时添加参数来禁止docker对本机防火墙的操作.

## 服务器环境

| 对象 | 版本 |

| --- | --- |

| CentOS | 7.6.1810 |

| Docker-CE | 17.12.1-ce |

## 添加对应服务和端口的允许访问规则

~~~

firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source ipset=whitelist-app service name="http" accept'

firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source ipset=whitelist-app service name="https" accept'

firewall-cmd --permanent --add-rich-rule='rule source ipset=whitelist-app port port=2266 protocol=tcp accept'

firewall-cmd --permanent --add-rich-rule='rule source ipset=whitelist-app port port=3888-4500 protocol=tcp accept'

~~~

> 注意添加`--permanent`否则重启防火墙后规则失效

## (重点)禁止docker去操作防火墙

~~~

# 给docker的启动服务添加"--iptables=false"参数, 禁止docker去操作防火墙

sed -i 's:^ExecStart=/usr/bin/dockerd.*:ExecStart=/usr/bin/dockerd --iptables=false:g' /lib/systemd/system/docker.service

systemctl daemon-reload

systemctl restart docker

~~~

> 注意:重启docker后需要重启容器镜像

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值