CentOS7 防火墙 Firewalld 规则配置文件批量放行端口

Posted 闭关苦炼内功

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS7 防火墙 Firewalld 规则配置文件批量放行端口相关的知识,希望对你有一定的参考价值。

关于 centos7 防火墙 firewalld 服务开墙服务,博主之前写过手动命令添加

centos7 关于firewalld 与 iptables 防火墙的 “爱恨情仇”

Linux防火墙放行端口


今天分享通过配置文件批量添加

文章目录


1.先看效果

[root@localhost ~]# echo "配置文件开墙"
配置文件开墙
[root@localhost ~]# firewall-cmd --list-ports
10000/tcp 20000/tcp
[root@localhost ~]# cat /etc/firewalld/zones/public.xml
<?xml version="1.0" encoding="utf-8"?>
<zone>
  <short>Public</short>
  <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
  <service name="ssh"/>
  <service name="mdns"/>
  <service name="dhcpv6-client"/>
  <port port="10000" protocol="tcp"/>
  <port port="20000" protocol="tcp"/>
</zone>
[root@localhost ~]# echo "开始配置"
开始配置
[root@localhost ~]# sed -i 's#</zone>#  <port port="30000-30100" protocol="tcp"/>\\n&#' /etc/firewalld/zones/public.xml
[root@localhost ~]#
[root@localhost ~]# cat /etc/firewalld/zones/public.xml
<?xml version="1.0" encoding="utf-8"?>
<zone>
  <short>Public</short>
  <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
  <service name="ssh"/>
  <service name="mdns"/>
  <service name="dhcpv6-client"/>
  <port port="10000" protocol="tcp"/>
  <port port="20000" protocol="tcp"/>
  <port port="30000-30100" protocol="tcp"/>
</zone>
[root@localhost ~]# firewall-cmd --state
running
[root@localhost ~]#
[root@localhost ~]# firewall-cmd --reload
success
[root@localhost ~]#
[root@localhost ~]# firewall-cmd --state
running
[root@localhost ~]# firewall-cmd --list-ports
10000/tcp 20000/tcp 30000-30100/tcp
[root@localhost ~]#

2.再操作

2.0查看防火墙状态

  • 方式1(防火墙是否开启都可以查看)
    systemctl status firewalld

  • 方式2(在防火墙开着的前提下查看)
    firewall-cmd --state

2.1防火墙 禁用、启用、开启、关闭、重启

  • 禁用
    systemctl disable firewalld

  • 启用
    systemctl enable firewalld

  • 开启
    systemctl start firewalld

  • 关闭
    systemctl stop firewalld

  • 重启
    systemctl restart firewalld

2.2查看防火墙已放行的端口列表(防火墙开着的前提下)

firewall-cmd --list-ports

2.3查看 firewall 防火墙规则配置文件

cat /etc/firewalld/zones/public.xml

2.4通过 sed 写入要放行的端口到配置文件中

sed -i 's#</zone># <port port="30000-30100" protocol="tcp"/>\\n&#' /etc/firewalld/zones/public.xml

解释一下
sed -i 's#指定内容#要追加的内容\\n&#' filename

  • sed 是处理文件行的快速工具,不需要借助Vim编辑器即可完成
  • \\n 在shell中是换行符号
  • & 这个是与符号
  • 指定字符前面添加
    sed -i 's/指定的字符/需要添加的字符&/' 文件名称

  • 指定字符后面添加
    sed -i 's/指定的字符/&需要添加的字符/' 文件名称

  • 当然,通过 Vim 编辑器 编辑配置文件也可,这没什么问题

2.5再次查看一下 firewall 防火墙 规则 配置文件

cat /etc/firewalld/zones/public.xml

2.6重新加载 防火墙 firewall (或重启防火墙)

firewall-cmd --reload

2.7查看防火墙已放行的端口列表(防火墙开着的前提下)

firewall-cmd --list-ports


我们下期见,拜拜!

以上是关于CentOS7 防火墙 Firewalld 规则配置文件批量放行端口的主要内容,如果未能解决你的问题,请参考以下文章

Centos7-----firewalld详解

Firewalld 用法解析

一种处理centos7.2 的firewalld 规则的简易方法

Centos7防火墙使用命令

Centos7防火墙使用命令

CentOS7 - Firewalld 简单上手