Linux firewall-cmd命令的用法(附带实例)
Linux 中 firewall-cmd 命令的功能是管理防火墙策略,是 firewalld 服务的配置工具。使用 firewall-cmd 命令修改的防火墙策略会立即生效,但重启后失效,因此在使用时推荐加上 permanent 参数。
firewall-cmd 命令的语法格式如下:
【实例 1】查看当前防火墙状态:
【实例 2】查看防火墙当前放行端口号列表:
【实例 3】重新加载防火墙策略,立即生效:
【实例 4】查看当前防火墙默认使用的区域名称:
【实例 5】设置当前防火墙默认使用的区域名称:
【实例 6】开启紧急模式,随后关闭:
【实例 7】设置 8080-8081 为防火墙允许放行的端口号:
【实例 8】查看防火墙当前放行端口号列表:
【实例 9】查询指定服务的流量是否被防火墙允许放行:
firewall-cmd 命令的语法格式如下:
firewall-cmd 参数 对象常用参数见下表:
选项 | 描述 | 选项 | 描述 |
---|---|---|---|
--add-interface | 将指定网卡的所有流量都导向某区域 | --list-ports | 显示所有正在运行的端口 |
--add-port | 设置允许的端口 | --panic-off | 关闭紧急模式 |
--add-service | 设置允许的服务 | --panic-on | 开启紧急模式 |
--add-source | 将指定 IP 地址的所有流量都导向某区域 | --permanent | 将策略写入永久生效表 |
--change-interface | 设置网卡与区域进行关联 | --query-panic | 显示是否被拒绝 |
--get-active-zones | 显示当前正在使用的区域与网卡名称 | --reload | 立即加载永久生效策略,不重启服务 |
--get-default-zone | 显示默认的区域名称 | --remove-port | 设置默认区域不再允许指定端口的流量 |
--get-services | 显示预先定义的服务 | --remove-source | 不要将指定 IP 地址的所有流量导向某区域 |
--get-zones | 显示可用的区域列表 | --remove-service | 设置默认区域不再允许指定服务的流量 |
--list-all | 显示当前区域的网卡配置参数、资源、端口及服务 | --set-default-zone | 设置默认的区域 |
--list-all-zones | 显示区域信息情况 | --state | 显示当前服务运行状态 |
【实例 1】查看当前防火墙状态:
[root@clinux ~]# firewall-cmd --state running
【实例 2】查看防火墙当前放行端口号列表:
[root@clinux ~]# firewall-cmd --zone=public --list-ports
【实例 3】重新加载防火墙策略,立即生效:
[root@clinux ~]# firewall-cmd --reload success
【实例 4】查看当前防火墙默认使用的区域名称:
[root@clinux ~]# firewall-cmd --get-default-zone public
【实例 5】设置当前防火墙默认使用的区域名称:
[root@clinux ~]# firewall-cmd --set-default-zone=dmz success
【实例 6】开启紧急模式,随后关闭:
[root@clinux ~]# firewall-cmd --panic-on success [root@clinux ~]# firewall-cmd --panic-off success
【实例 7】设置 8080-8081 为防火墙允许放行的端口号:
[root@clinux ~]# firewall-cmd --zone=public --add-port=8080-8081/tcp
【实例 8】查看防火墙当前放行端口号列表:
[root@clinux ~]# firewall-cmd --zone=public --list-ports 8080-8081/tcp
【实例 9】查询指定服务的流量是否被防火墙允许放行:
[root@clinux ~]# firewall-cmd --zone=public --query-service=ssh yes [root@clinux ~]# firewall-cmd --zone=public --query-service=https no