CentOS7 firewall-cmd 命令

本文将介绍 firewall-cmd 命令的基础用法。

firewall-cmd 提供了一个动态管理的防火墙,支持网络/防火墙区域来定义网络连接或接口的信任级别。它支持 IPv4、IPv6 防火墙设置和以太网网桥,并将运行时和永久配置选项分开。它还支持服务或应用程序直接添加防火墙规则的接口。

命令语法

firewall-cmd [OPTIONS...]

通用选项

  • -h, --help:显示帮助信息

  • -V, --version:显示命令的版本信息,该命令不能和其他命令一起使用

  • -q, --quiet:不打印状态信息

实例:

[root@S5 ~]# firewall-cmd -V
0.5.3

[root@S5 ~]# firewall-cmd -h

Usage: firewall-cmd [OPTIONS...]

General Options
...

状态选项

  • --state: 显示firewalld的状

  • --reload:不中断服务的重新加

  • --complete-reload:中断所有连接的重新加

  • --runtime-to-permanent:将当前防火墙的规则永久保存

  • --check-config:检查配置正确性

实例:

[root@S5 ~]# firewall-cmd --state
running

[root@S5 ~]# firewall-cmd --check-config
success

日志选项

  • --get-log-denied:获取记录被拒绝的日志

  • --set-log-denied=<value>:设置记录被拒绝的日志,只能为 'all','unicast','broadcast','multicast','off' 其中的一个

重要选项

  • --zone:作用域

  • --add-port:添加端口,格式为:端口/通讯协议,例如:8080/tcp

  • --remove-port:删除端口,格式为:端口/通讯协议,例如:8080/tcp

  • --permanent :永久生效,没有此参数重启后失效

  • --list-all:查看防火墙,添加的端口也可以看到

  • --list-services:显示当前服务

实例

(1)启动/停止 firewalld.service 服务

# 查看防火墙状态
[root@S5 ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since 六 2019-06-15 15:59:31 CST; 8 months 12 days ago
     Docs: man:firewalld(1)
 Main PID: 7599 (firewalld)
    Tasks: 2
   Memory: 24.8M
   CGroup: /system.slice/firewalld.service

# 启动防火墙
[root@S5 ~]# systemctl start firewalld.service

# 停止防火墙
[root@S5 ~]# systemctl stop firewalld.service

# 重启防火墙
[root@S5 ~]# systemctl restart firewalld.service

(2)查询 80 端口是否开启

[root@S5 ~]# firewall-cmd --query-port=80/tcp
no
[root@S5 ~]# firewall-cmd --query-port=8080/tcp
yes

上面,80端口没有开启,8080端口已经开启。

(3)添加端口到防火墙,格式:端口/通讯协议

# 添加一个端口
[root@S5 ~]# firewall-cmd --permanent --zone=public --add-port=3306/tcp
success

# 添加一个端口范围
[root@S5 ~]# firewall-cmd --permanent --zone=public --add-port=9000-9090/tcp
success

(4)移除指定端口号

# 从防火墙中移除8080端口
[root@S5 ~]# firewall-cmd --permanent --zone=public --remove-port=8080/tcp
success

(5)查看当前添加到防火墙的端口信息

[root@S5 ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens33
  sources:
  services: ssh dhcpv6-client
  ports: 8080/tcp 8081/tcp 8088/tcp 9876/tcp 10909/tcp 10911/tcp 10912/tcp 12581/tcp 3306/tcp 9000-9090/tcp
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:
人永远是要学习的。死的时候,才是毕业的时候。 —— 萧楚女
0 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
其他应用
公众号