1、查看firewall服务状态

systemctl status firewalld

2、查看firewall的状态

firewall-cmd --state

3、开启、重启、关闭、firewalld.service服务

开启
service firewalld start
重启
service firewalld restart
关闭
service firewalld stop

4、查看防火墙规则

查看防火墙规则
firewall-cmd --list-all
查看所有的防火墙策略(即显示/etc/firewalld/zones/下的所有策略
firewall-cmd --list-all-zones

5、查询、开放、关闭端口

查看所有打开的端口
firewall-cmd --zone=public --list-ports
查询端口是否开放
firewall-cmd --query-port=8080/tcp
开放80端口
firewall-cmd --permanent --add-port=80/tcp
移除端口
firewall-cmd --permanent --remove-port=8080/tcp
重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload

6、限制ip访问

#禁止一个IP段,比如禁止168.228.*.*
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address="168.228.0.0/16" drop'
#删除禁止ip,--zone=public参数可选
firewall-cmd --zone=public --permanent --remove-rich-rule='rule family=ipv4 source address="168.228.0.0/16" drop'

如果装有docker并且无法限制docker端口时,可以创建/etc/docker/daemon.json文件

{
        "iptables": false
}


然后重启docker

7、只允许指定ip访问

允许特定的端口或服务通过防火墙,例如允许SSH(端口22),http(端口80):
firewall-cmd --zone=drop --add-service=ssh
firewall-cmd --zone=drop --add-service=http
firewall-cmd --zone=public --permanent --add-service=ssh
firewall-cmd --zone=public --permanent --add-service=http
允许当前ip访问(添加到trusted区的所有ip能访问所有端口需谨慎使用,例如添加cloudflare的ip段或者指定ip):
firewall-cmd --permanent --zone=trusted --add-source=14.145.0.0/16
删除允许的规则:
firewall-cmd --permanent --zone=trusted --remove-source=14.145.0.0/16
允许192.168.*.*访问本机8080-8090端口:
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.0.0/16" port protocol="tcp" port="8080-8090" accept'
允许192.168.*.*访问本机80端口:
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.0.0/16" port protocol="tcp" port="80" accept'
设置默认防火墙策略为拒绝(DROP):
firewall-cmd --set-default-zone=drop
再将默认网卡 eth0 分配给 drop 区域:
firewall-cmd --permanent --zone=drop --change-interface=eth0
重启生效:
firewall-cmd --reload

8、其他命令

查看区域信息:firewall-cmd --get-active-zones
区域网卡相关:
firewall-cmd [--permanent] [--zone=zone] --list-interfaces
firewall-cmd [--permanent] [--zone=zone] --add-interface=interface
firewall-cmd [--zone=zone] --change-interface=interface
firewall-cmd [--permanent] [--zone=zone] --query-interface=interface
firewall-cmd [--permanent] [--zone=zone] --remove-interface=interface

参数解释 1、firwall-cmd:是Linux提供的操作firewall的一个工具; 2、--permanent:表示设置为持久; 3、--add-port:标识添加的端口;