详尽的使用方法请使用:
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