相比于传统的 iptables 防火墙,firewalld 有以下优点:
- 支持动态更新,不用重启服务。
- 引入了 zone 概念,可以更加方便地管理防火墙规则。
- 可以动态修改单条规则,而不需要像 iptables 那样,在修改了规则后必须得全部刷新才可以生效。
- 使用上比 iptables 更加人性化。
常用的 firewall-cmd 命令包括:
- 开启防火墙:systemctl start firewalld
- 关闭防火墙:systemctl stop firewalld
- 重启防火墙:systemctl restart firewalld
- 查看所有开启的端口:firewall-cmd --list-ports
- 开启端口访问:firewall-cmd --zonepublic --add-port <端口>
- 关闭端口访问:firewall-cmd --zonepublic --remove-port <端口>
- 查看防火墙规则:firewall-cmd --query
- 添加防火墙规则:firewall-cmd --add-rule <规则>
- 删除防火墙规则:firewall-cmd --remove-rule <规则>
- 查看防火墙的 zone 信息:firewall-cmd --zone-info
- 修改防火墙的 zone 信息:firewall-cmd --zone-change <zone_name> <property=value>