docker防火墙使用的是底层iptables,封装后的firewalld默认不生效

如果想要使用firewalld,需要做以下调整:

让firewalld移除DOCKER-USER并新建一个

# Removing DOCKER-USER CHAIN (it won't exist at first)
firewall-cmd --permanent --direct --remove-chain ipv4 filter DOCKER-USER # Flush rules from DOCKER-USER chain (again, these won't exist at first; firewalld seems to remember these even if the chain is gone)
firewall-cmd --permanent --direct --remove-rules ipv4 filter DOCKER-USER # Add the DOCKER-USER chain to firewalld
firewall-cmd --permanent --direct --add-chain ipv4 filter DOCKER-USER

加上你想要的规则,注意reject放在最后

firewall-cmd --permanent --direct --add-rule ipv4 filter DOCKER-USER 0 -i docker0 -j ACCEPT -m comment --comment "allows incoming from docker"
firewall-cmd --permanent --direct --add-rule ipv4 filter DOCKER-USER 0 -i docker0 -o eth0 -j ACCEPT -m comment --comment "allows docker to eth0"
firewall-cmd --permanent --direct --add-rule ipv4 filter DOCKER-USER 0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -m comment --comment "allows docker containers to connect to the outside world"
firewall-cmd --permanent --direct --add-rule ipv4 filter DOCKER-USER 0 -j RETURN -s 172.17.0.0/16 -m comment --comment "allow internal docker communication" ## 你可以直接允許來自特定 IP 的所有流量
firewall-cmd --permanent --direct --add-rule ipv4 filter DOCKER-USER 0 -s 61.222.3.133/32 -j ACCEPT
firewall-cmd --permanent --direct --add-rule ipv4 filter DOCKER-USER 0 -j REJECT --reject-with icmp-host-unreachable -m comment --comment "reject all other traffic"

最后reload,并通过iptables -L确认是否正确生效

firewall-cmd --reload

参考链接:

https://holywhite.com/archives/489

centos7 docker配置防火墙firewalld的更多相关文章

  1. CentOS7下配置防火墙放过Keepalived

    Keepalived是一个轻量级的HA集群解决方案,但开启防火墙后各节点无法感知其它节点的状态,各自都绑定了虚拟IP.网上很多文章讲要配置防火墙放过tcp/112,在CentOS7下是无效的,正确的做 ...

  2. Centos7 Docker配置TLS认证的远程端口的证书生成教程(shell脚本一键生成)

    通过 TLS来进行远程访问 百度百科 - TLS.我们需要在远程 docker 服务器(运行 docker 守护进程的服务器)生成 CA 证书,服务器证书,服务器密钥,然后自签名,再颁发给需要连接远程 ...

  3. centOS7.0配置防火墙

    之前用的iptables来管理的防火墙,后来发现centOS7.0中已经用firewalld取代iptables了,于是与时俱进,停用了iptables. systemctl stop iptable ...

  4. Centos7 systemctl和防火墙firewalld命令(参考https://www.cnblogs.com/marso/archive/2018/01/06/8214927.html)

    一.防火墙的开启.关闭.禁用命令 (1)设置开机启用防火墙:systemctl enable firewalld.service (2)设置开机禁用防火墙:systemctl disable fire ...

  5. 新装Centos7.2 配置防火墙

    1.安装 yum -y install firewalld2.开机启动 systemctl enable firewalld3.设置防火墙规则 systemctl restart firewalld ...

  6. Ubuntu下使用UFW,以及CentOS7的默认防火墙firewalld

    UFW是一个简化版的iptables,基于iptables,配置比iptables简单 默认UFW是关闭状态,即Ubuntu默认打开所有端口,比较危险. 检测状态 ufw status 设置默认状态, ...

  7. Linux centos7.0 配置防火墙及开放端口

    现在防火墙有两种服务1.service firewalld 2.service iptables 一.就firewalld来说查看开放的端口  netstat  -anp 查询防火墙状态  servi ...

  8. CentOS7.3防火墙firewalld简单配置

    今天安装了centos7.3, 想用iptables的save功能保存规则的时候发现跟rhel不一样了,  后来度娘说centos用的是firewalld而不是iptables了, 平时工作都是用re ...

  9. Linux防火墙配置(iptables, firewalld)

    netfilter和底层实现 iptables firealld Linux中的防火墙 RHEL中有几种防火墙共存: iptables firewalld ip6tables ebtables 这些软 ...

  10. CentOS7下Firewall防火墙配置用法详解

    官方文档地址: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide ...

随机推荐

  1. SpringBoot使用Environment对象封装全部配置信息

    在组件中注入Environment @Autowired private Environment env; // 直接根据key获取值 String tempDir = env.getProperty ...

  2. yarn的常用命令

    yarn 安装 npm install -g yarn 查看版本 yarn -v 开始一个新工程 yarn init 与 npm init 一样通过交互式会话创建一个 package.json yar ...

  3. 最后一次迭代——城院GO导航

    1. 程序运行截图展示: 2. 程序开发分工详情 葛方杰:负责地点汇总界面的前端基本界面设计以及上导航栏和侧导航栏的布局以及简单的数据绑定,以及做了自定义组件卡,用瀑布流的形式封装自定义组件卡来展现地 ...

  4. 数字孪生系统为何需要将GIS系统进行融合?

    数字孪生是一种通过数字模型实时仿真现实世界的技术,而GIS(地理信息系统)则是用于收集.存储.处理和展示地理数据的工具.将数字孪生系统与GIS系统进行融合,可以为各行业带来诸多优势和创新.那么数字孪生 ...

  5. 开源数据血缘和元数据管理框架DataHub的血缘摄取 V0.12.1版本

    DataHUb的安装很简单:你有绿色上网就soeasy 前置条件,你已经运行好DataHub整个Docker-Compse服务 打开地址:http://host:9002/ 输入账号DataHub 密 ...

  6. ElasticSearch之cat plugins API

    命令样例如下: curl -X GET "https://localhost:9200/_cat/plugins?v=true&pretty" --cacert $ES_H ...

  7. vulnhub - tornado - wp

    coverY: 0 tornado 信息收集 目标开放了80,22端口. 访问80网页,是默认页面: 目录枚举 用dirsearch没有什么发现,换gobuster发现了一个bluesky目录.访问如 ...

  8. Kotlin委托属性(1)

    在Kotlin中,委托属性(Delegated Properties)是一种强大的语言特性,允许你将属性的 getter 和 setter 方法的实现委托给其他对象.这使得你能够通过委托来重用代码.将 ...

  9. Spring Cloud(一)Eureka

    单体应用存在的问题 在传统应用程序中,一般都会将整个的应用程序作为一个单独的可执行文件部署到相应的服务器上执行.一般的应用程序结构可能如下图所示: 这种方式的优点很明显,比如:架构简单,服务之间调用逻 ...

  10. flutter杂知识点

    child和children用于在一个容器小部件(如Container.Column.Row等)中放置一个或多个子小部件 1.child属性用于容器只包含一个子小部件的情况: 2.children属性 ...