安装:
代码语言:javascript复制apt-get install firewalld
基本操作:
代码语言:javascript复制# 启动服务
systemctl start firewalld.service
# 关闭服务
systemctl stop firewalld.service
# 重启服务
systemctl restart firewalld.service
# 显示状态
systemctl status firewalld.service
# 开机自启
systemctl enable firewalld.service
# 禁用开机自启
systemctl disable firewalld.service
firewall-cmd常用命令:
区域管理:
代码语言:javascript复制# 显示默认区域
firewall-cmd --get-default-zone
# 显示默认区域的规则
firewall-cmd --list-all
# 显示当前正在使用的区域及其对应的网卡接口
firewall-cmd --get-active-zones
# 设置默认区域
firewall-cmd --set-default-zone=home
服务管理:
代码语言:javascript复制# 查看默认区域内允许访问的所有服务
firewall-cmd --list-service
# 添加http服务到public区域
firewall-cmd --add-service=http --zone=public
# 查看public区域已配置规则
firewall-cmd --list-all --zone=public
# 删除public区域的http服务
firewall-cmd --remove-service=http --zone=public
端口管理:
代码语言:javascript复制# 允许TCP的443端口到internal区域
firewall-cmd --zone=internal --add-port=443/tcp
# 从internal区域将TCP的443端口移除
firewall-cmd --zone=internal --remove-port=443/tcp
# 允许UDP的2048-2050端口到默认区域
firewall-cmd --add-port=2048-2050/udp
# 查询端口是否开放
firewall-cmd --zone=public --query-port=80/tcp
# 查看所有开放端口
firewall-cmd --zone=public --list-ports
其他命令:
代码语言:javascript复制# 永久生效:--permanent参数
firewall-cmd --zone=internal --add-port=443/tcp --permanent
# 版本
firewall-cmd --version
# 帮助
firewall-cmd --help
# 状态
firewall-cmd --state
# 更新防火墙规则(每次改变都要更新才能生效)
firewall-cmd --reload
常见错误:
ERROR: '/usr/sbin/iptables-restore -w -n' failed: iptables-restore v1.8.2 (nf_tables)
解决方法:
代码语言:javascript复制# IndividualCalls=no,把no改为yes
vim /etc/firewalld/firewalld.conf
# 重启服务
systemctl restart firewalld.service