宿主机放行docker的网卡请求起因docker里头装了个nginx，有一天因为防火墙调整了导致docker中的nginx出现No Router To Host错误步骤ifconfig查看docker的网卡名称，我这边是docker0执行以下命令对docker的网卡放行所有请求firewall-cmd --permanent --zone=trusted --change-interface=docker0重载防火墙即可firewall-cmd --reload
firewall开启和关闭端口以下都是指在public的zone下的操作，不同的Zone只要改变Zone后面的值就可以添加：firewall-cmd --zone=public --add-port=80/tcp --permanent （--permanent永久生效，没有此参数重启后失效）指定ip规则添加：firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="172.20.146.12" port protocol="tcp" port="9999" accept"重新载入：firewall-cmd --reload重启：systemctl restart firewalld.service查看：firewall-cmd --zone=public --query-port=80/tcp删除：firewall-cmd --zone=public --remove-port=80/tcp --permanent删除规则：firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="10.37.254.211" port protocol="tcp" port="9200" accept"firewalld的基本使用启动：systemctl start firewalld查看状态： systemctl status firewalld禁用，禁止开机启动：systemctl disable firewalld停止运行： systemctl stop firewalld配置firewalld-cmd查看版本： firewall-cmd --version查看帮助： firewall-cmd --help显示状态： firewall-cmd --state查看所有打开的端口： firewall-cmd --zone=public --list-ports更新防火墙规则： firewall-cmd --reload更新防火墙规则，重启服务： firewall-cmd --completely-reload查看已激活的Zone信息: firewall-cmd --get-active-zones查看指定接口所属区域： firewall-cmd --get-zone-of-interface=eth0拒绝所有包：firewall-cmd --panic-on取消拒绝状态： firewall-cmd --panic-off查看是否拒绝： firewall-cmd --query-panic信任级别，通过Zone的值指定drop: 丢弃所有进入的包，而不给出任何响应 block: 拒绝所有外部发起的连接，允许内部发起的连接 public: 允许指定的进入连接 external: 同上，对伪装的进入连接，一般用于路由转发 dmz: 允许受限制的进入连接 work: 允许受信任的计算机被限制的进入连接，类似 workgroup home: 同上，类似 homegroup internal: 同上，范围针对所有互联网用户 trusted: 信任所有连接管理服务以smtp服务为例， 添加到work zone添加：firewall-cmd --zone=work --add-service=smtp查看：firewall-cmd --zone=work --query-service=smtp删除：firewall-cmd --zone=work --remove-service=smtp配置 IP 地址伪装查看：firewall-cmd --zone=external --query-masquerade打开：firewall-cmd --zone=external --add-masquerade关闭：firewall-cmd --zone=external --remove-masquerade端口转发打开端口转发，首先需要打开IP地址伪装firewall-cmd --zone=external --add-masquerade转发 tcp 22 端口至 3753：firewall-cmd --zone=external --add-forward-port=22:porto=tcp:toport=3753转发端口数据至另一个IP的相同端口：firewall-cmd --zone=external --add-forward-port=22:porto=tcp:toaddr=192.168.1.112转发端口数据至另一个IP的 3753 端口：firewall-cmd --zone=external --add-forward-port=22:porto=tcp:：toport=3753:toaddr=192.168.1.112systemctl是CentOS7的服务管理工具中主要的工具，它融合之前service和chkconfig的功能于一体。启动一个服务：systemctl start firewalld.service关闭一个服务：systemctl stop firewalld.service重启一个服务：systemctl restart firewalld.service显示一个服务的状态：systemctl status firewalld.service在开机时启用一个服务：systemctl enable firewalld.service在开机时禁用一个服务：systemctl disable firewalld.service查看服务是否开机启动：systemctl is-enabled firewalld.service查看已启动的服务列表：systemctl list-unit-files|grep enabled查看启动失败的服务列表：systemctl --failedCentOS7 防火墙（firewall）的操作命令 - leoxuan - 博客园 (cnblogs.com)