【问题现象】
1、执行防火墙开启时,显示出错:
![](https://img-blog.csdnimg.cn/img_convert/575f94df9c8aad9dd8fc9f09a9bea5c8.png)
2、执行开启命令时,开启异常:
Redirecting to /bin/systemctl start firewalld.service
Failed to start firewalld.service: Unit is masked.
![](https://img-blog.csdnimg.cn/img_convert/1ce7b50733848eea56e89dae0dfc85a7.png)
【解决方案】
执行命令【systemctl unmask firewalld】: 清除原来的firewalld残留文件
![](https://img-blog.csdnimg.cn/img_convert/695dc9a21c21a5485257f8115c415545.png)
重新进行启动命令: systemctl start firewalld
验证状态:systemctl status firewalld 或者firewall-cmd --state
【开启端口】
1、指定端口开启:firewall-cmd --zone=public --permanent --add-port=8080/tcp
2、端口开放之后,需重新加载刷新,执行命令: firewall-cmd --reload
3、验证端口是否开启:firewall-cmd --list-all
说明防火墙已经将8080端口开放了
![](https://img-blog.csdnimg.cn/img_convert/fcf30da2e60739eb43d02ff83fac6848.png)
附录:
关闭防火墙:systemctl stop firewalld
【说明】(1)上述命令执行之后没有报错,那防火墙就关闭了,可以用查看命令查看【firewall-cmd --state】验证是否running;
(2)但上述方式只是暂时关闭,重启后防火墙会再开启,永久关闭命令:
systemctl disable firewalld(重启生效)。
2、FirewallD常用命令参考:
firewall-cmd --state ##查看防火墙状态,是否是running
systemctl status firewalld.service ##查看防火墙状态
systemctl start firewalld.service ##启动防火墙
systemctl stop firewalld.service ##临时关闭防火墙
systemctl enable firewalld.service ##设置开机启动防火墙
systemctl disable firewalld.service ##设置禁止开机启动防火墙
firewall-cmd --permanent --query-port=80/tcp ##查看80端口有没开放
firewall-cmd --reload ##重新载入配置,比如添加规则之后,需要执行此命令
firewall-cmd --get-zones ##列出支持的zone
firewall-cmd --get-services ##列出预定义的服务
firewall-cmd --query-service ftp ##查看ftp服务是否放行,返回yes或者no
firewall-cmd --add-service=ftp ##临时开放ftp服务
firewall-cmd --add-service=ftp --permanent ##永久开放ftp服务
firewall-cmd --remove-service=ftp --permanent ##永久移除ftp服务
firewall-cmd --add-port=80/tcp --permanent ##永久添加80端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent ##移除80端口
iptables -L -n ##查看规则,这个命令是和iptables的相同的
man firewall-cmd ##查看帮助
参数含义:
--zone #作用域
--permanent #永久生效,没有此参数重启后失效