距离文章编辑已经过去了 1430 天,实际情况可能有所变动。

运行、停止、禁用firewalld

启动

Code
systemctl start  firewalld

查看状态

Code
systemctl status firewalld 

或者

Code
firewall-cmd --state

停止

Code
systemctl disable firewalld

禁用

Code
systemctl stop firewalld

开启端口

添加

Code
firewall-cmd --zone=public --add-port=80/tcp --permanent    (--permanent永久生效,没有此参数重启后失效)

重新载入

Code
firewall-cmd --reload

查看

Code
firewall-cmd --zone= public --query-port=80/tcp

删除

Code
firewall-cmd --zone= public --remove-port=80/tcp --permanent

查看firewall是否运行,下面两个命令都可以

Code
systemctl status firewalld.service
firewall-cmd --state

查看default zone和active zone

我们还没有做任何配置,default zone和active zone都应该是public

Code
firewall-cmd --get-default-zone
firewall-cmd --get-active-zones

查看当前开了哪些端口

其实一个服务对应一个端口,每个服务对应/usr/lib/firewalld/services下面一个xml文件

Code
firewall-cmd --list-services

查看还有哪些服务可以打开

Code
firewall-cmd --get-services

查看所有打开的端口

Code
firewall-cmd --zone=public --list-ports

更新防火墙规则

Code
firewall-cmd --reload

添加一个服务到firewalld

Code
firewall-cmd --add-service=http //http换成想要开放的service

这样添加的service当前立刻生效,但系统下次启动就失效,可以测试使用。要永久开发一个service,加上 --permanent

Code
firewall-cmd --permanent --add-service=http

如果要添加的端口并没有服务对应

就要新建一个服务,在/usr/lib/firewalld/services,随便拷贝一个xml文件到一个新名字,比如myservice.xml,把里面的short改为想要名字(这个名字只是为了人来阅读,没有实际影响。重要的是修改 protocol和port。

Code
<?xml version="1.0" encoding="utf-8"?>

<service>
<short>Transmission-client</short>
<description>Transmission is a lightweight GTK+ BitTorrent client.</description>
<port protocol="tcp" port="51413"/>
</service>

修改完保存。我的经验是这是要重启firewalld服务,systemctl restart firewalld.service,否则可能提示找不到刚才新建的service。

然后把新建的service添加到firewalld

Code
firewall-cmd --permanent --add-service=myservice

重启firewalld 生效

systemctl

systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体

启动一个服务

Code
systemctl start firewalld.service

关闭一个服务

Code
systemctl stop firewalld.service

重启一个服务

Code
systemctl restart firewalld.service

显示一个服务的状态

Code
systemctl status firewalld.service

在开机时启用一个服务

Code
systemctl enable firewalld.service

在开机时禁用一个服务

Code
systemctl disable firewalld.service

查看服务是否开机启动

Code
systemctl is-enabled firewalld.service

查看已启动的服务列表

Code
systemctl list-unit-files|grep enabled

查看启动失败的服务列表

Code
systemctl --failed

转载自 北斗极星 https://www.cnblogs.com/hubing/p/6058932.html