详尽的使用方法请使用:

firewall-cmd --help
  • 状态(status)选项
--state  #查看运行状态
--reload #重新加载防火墙

运行实例

firewall-cmd --state
running
firewall-cmd --reload
success
  • 常驻(permanent)选项
--permanent #使防火墙相关更改永久生效

这个选项和其他选项配合使用,如果想防火墙永久失效,必须用上它。

运行实例

firewall-cmd --permanent --add-service=ssh

在默认域中添加ssh服务,如果要添加到默认域以外的域(如external),则要指定域:

firewall-cmd --permanent --zone=external --add-service=ssh
  • 域(zone)选项
--get-default-zone #显示默认域
--set-default-zone=<zone> #设置默认域
--get-active-zones #显示活动域
--get-zones #显示所有域
--get-services #显示所有支持的服务
--get-zone-of-interface=<interface> #显示指定接口所在的域
--list-all-zones #列出所有域并显示相关信息
--new-zone=<zone> #添加新的域
--delete-zone=<zone> #删除指定域
--zone=<zone> #指定域,这选项不单独使用
--info-zone=<zone> #列出指定域的详细信息

运行实例

$firewall-cmd --info-zone=external
external (active)
  target: default
  icmp-block-inversion: no
  interfaces: eno1 ppp0
  sources:
  services: http https smtp ssh
  ports: 993/tcp
  protocols:
  masquerade: yes
  forward-ports:
  sourceports:
  icmp-blocks:
  rich rules:
  • 服务(service)选项
--new-service=<service> #添加一个新服务
--delete-service=<service> #删除一个服务
--info-service=<service> #显示服务的具体信息

运行实例

firewall-cmd --info-service=ssh
ssh
  ports: 22/tcp
  protocols:
  source-ports:
  modules:
  destination:
  • Options to Handle Bindings of Interfaces
--list-interfaces #列出指定域的所有接口
--add-interface=<interface> #向指定域中添加接口
--remove-interface=<interface #从指定域中删除接口

运行实例

将接口ppp0添加到external域中,并永久生效

firewall-cmd --permanent --zone=external --add-interface=ppp0
  • Options to Adapt and Query Zones
--list-all #列出指定域的具体信息
--list-service #只列出指定域的服务
--add-service=<service> #添加服务到指定域
--remove-service=<service> #删除指定域中的指定服务
--add-prot=<portid>/<protocol> #添加端口及协议到指定域
--remove-port=<portid>/<protocol> #从指定域中删除端口及协议
--add-masquerade #激活IPv4伪装
--remove-masquerade #删除IPv4伪装

如果要启用系统路由功能,masquerade激活是必须的。

运行实例

添加端口到指定域,并永久生效

firewall-cmd --permanent --zone=internal --add-port={8080,80}

激活IP伪装

firewall-cmd --permanent --add-masquerade

添加多个服务到指定域,永久生效,并重新加载防火墙

firewall-cmd --permanent --zone=internal --add-service={dhcp,ssh,https,http}
firewall-cmd --reload

添加多个端口到指定域,永久生效,并重新加载防火墙

firewall-cmd --permanent --zone=internal --add-port={993,465}
firewall-cmd --reload