Centos 防火墙Firewall 对docer容器内的端口不起作用

不知道大家有没有遇到过我下面描述这样的问题。

     以前我用的阿里云和腾讯云都有安全组管理。可以直接对端口管理开放还是拒绝。可是这几天我换成百度智能云轻量服务器后发现一个问题。就是没有安全组管理。默认全开放。这也没什么,可以用centos自带的Firewall对端口进行管理。把简单的命令列一下

启动防火墙命令:

 systemctl start firewalld

 关闭防火墙命令:

systemctl stop firewalld

重启防火墙命令:

systemctl restart firewalld

设置防火墙开机启动:

systemctl enable firewalld

设置防火墙开机不启动:

systemctl disable firewalld

查看防火墙状态命令:

systemctl status firewalld

开放端口:

firewall-cmd --zone=public --add-port=22/tcp --permanent

  其中:【22/tcp】  为  端口号/协议;

  最后的【--permanent】标识永久生效。如果不加,则重启后失效。

关闭端口:

firewall-cmd --zone=public --remove-port=6379/tcp

查询有哪些端口是开启的:

firewall-cmd --list-port

加载配置文件:

firewall-cmd --reload

重新加载后不是永久生效的将不再生效。

本来这些基本命令就可以控制外网端口的开放、阻止。

主要是不想elecv2P暴露在公网

用后发现问题了,当docker容器只有elecv2p的时候完全没问题,命令都能控制。陆续添加青龙容器后发现,防火墙命令不能控制端口了。对docker容器内端口完全失效。

原来docker绕过Firewall防火墙,直接对iptables这个下手了

下面是解决方案

修改/usr/lib/systemd/system/docker.service配置

vi /usr/lib/systemd/system/docker.service

#找到 ExecStart=/usr/bin/dockerd -H tcp://127.0.0.1:2375 -H unix://var/run/docker.sock

在中间添加 --iptables=false 看好添加的位置
修改之后 :

ExecStart=/usr/bin/dockerd --iptables=false -H tcp://127.0.0.1:2375 -H unix://var/run/docker.sock

$:wq 保存退

systemctl daemon-reload
systemctl restart docker

把docker网卡加入trust区域

firewall-cmd --permanent --zone=trusted --change-interface=docker0

问题解决了,可以用Firewall命令完美控制端口了。

-> 加入科技玩家交流群组:点击加入 注意:
1.文中二维码和链接可能带有邀请性质,请各位玩家自行抉择。
2.请勿通过链接填写qq号与密码、银行卡号与密码等个人隐私信息。
3.禁止纯拉人头,拉app注册等信息,发现必小黑屋。
4.同一种信息仅发一次,多发会被删除。
5.文章中源码或APP等,无法保证其绝对安全,需自行辨别。
6.文章关联方不想展示也可以微信站长“socutesheep”删除。
本文由 @莪菛鈎菈 发布。如若转载,请注明出处: 科技玩家 » Centos 防火墙Firewall 对docer容器内的端口不起作用

给TA买糖
共{{data.count}}人
人已买糖
教程玩家投稿精选文章

code.sh、task_before.sh、config_sample.sh、jdCookie.js以及禁止Cookie、重组Cookie功能详解

2021-12-15 14:39:20

教程玩家投稿

捷径制作自动签到脚本并定时运行

2021-12-15 21:34:55

22 条回复 A文章作者 M管理员
贴心提醒
请认真对待作者付出,勿发表无意义言论,触发过滤规则的评论将无法提交,包含敏感词的评论会自动变成待审核状态哦。
  1. slimei

    前来顶贴!

  2. slimei

    真棒,感谢分享!

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索