CentOS 7.x 防火墙开放端口相关用法记录

前言

防火墙对服务器起到一定的保护作用,所以了解一些相关的操作是很有必要的。

在CentOS 7.x中,有了一种新的防火墙策略,FireWall , 还记得在6.x中用的还是iptables。

这几天一直在自己的服务器上瞎搞,由于关于这个防火墙的命令还没有烂熟于心,每次都需要google一下,所以就自己动手整理了一下,方便今后的使用也同时加强记忆。

基本命令

在CentOS 7.x中,防火墙的基本命令是 firewall-cmd

先通过man firewall-cmd 来简单看看它的帮助文档。

具体的使用方法可以用 firewall-cmd -h来进行查询。

状态查询

要用防火墙,自然是需要知道防火墙有没有启动。

可以通过查询防火墙的当前状态来确定服务器是否开启了防火墙

firewall-cmd --state

如果终端输出running就表示防火墙已经开启了,反之就没有。

也可以使用下面的命令来查询

systemctl status firewalld

输出的信息中,会告诉你是否处于活动状态

启动防火墙

当得知防火墙没有被开启时,就需要手动将其开启。

systemctl start firewalld

执行上述命令后,是没有任何输出信息的。没有提示信息对我们来说就是个好消息,说明我们的防火墙起来了。

这个时候在通过查询防火墙状态的命令就能看到它已经跑起来了。

查看已经开放的端口

许多情况下是需要查看服务器是否开启了端口的。比如我添加了一个站点,用的端口是8080,在服务器能正常访问,但是外面却访问不了,这个时候的第一反应应该就是防火墙的8080端口还没有对外开放。

firewall-cmd --list-ports

执行上面的命令后,就可以查看所有开放的端口了。

由于Catcher还开放了除80以外的其他端口,所以对其他端口打了码。

添加新端口

这一步的操作就好比在Windows上的防火墙中新建一个入站规则。

只添加一个单独的端口(示例为81)

firewall-cmd --zone=public --add-port=81/tcp --permanent

添加一组连续的端口(示例为82到85)

firewall-cmd --zone=public --add-port=82-85/tcp --permanent

当添加成功之后,发现并没有看到刚才添加的端口。

此时我们应该要重新启动防火墙,让其生效。

重启防火墙

firewall-cmd --reload

执行这条命令后,会输出success的字样表示已经重启成功了。

此时在去查看端口的情况就可以发现81端口已经成功添加进去了。

其他查看端口开放的方法

  1. 查询指定的端口是否已经开放
firewall-cmd --zone=public --query-port=81/tcp

执行上面的命令后,如果指定的端口已经开放就会输出yes,反之就输出no

  1. 通过zones下面的xml文件来查看

/etc/firewall/zones 目录下面有一个名为public.xml的文件。这里存放着这个zone相关的信息,不只是端口!

cat /etc/firewall/zones/public.xml

关闭端口

firewall-cmd --zone=public --remove-port=81/tcp --permanent

同样的,关闭端口之后也是要重启才能生效。

关闭防火墙

systemctl stop firewalld.service

当然,Catcher是不建议关闭防火墙的。

总结

这几个命令还是比较简单的,希望这篇小小的总结能给你带来小小的帮助。

posted @ 2017-06-03 20:32 Catcher8 阅读(...) 评论(...) 编辑 收藏