Centos7使用FireWall开放8888端口

2018-07-23 小惟 35

在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

2. 通过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是不建议关闭防火墙的。

命令汇总

1、firewalld的基本使用
启动: systemctl start firewalld
查看状态: systemctl status firewalld
停止: systemctl disable firewalld
禁用:systemctl stop firewalld

2.systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。
启动一个服务:systemctl start firewalld.service
关闭一个服务:systemctl stop firewalld.service
重启一个服务:systemctl restart firewalld.service
显示一个服务的状态:systemctl status firewalld.service
在开机时启用一个服务:systemctl enable firewalld.service
在开机时禁用一个服务:systemctl disable firewalld.service
查看服务是否开机启动:systemctl is-enabled firewalld.service
查看已启动的服务列表:systemctl list-unit-files|grep enabled
查看启动失败的服务列表:systemctl --failed

3.配置firewalld-cmd
查看版本: firewall-cmd --version
查看帮助: firewall-cmd --help
显示状态: firewall-cmd --state
查看所有打开的端口: firewall-cmd --zone=public --list-ports
更新防火墙规则: firewall-cmd --reload
查看区域信息: firewall-cmd --get-active-zones
查看指定接口所属区域:firewall-cmd --get-zone-of-interface=eth0

拒绝所有包:firewall-cmd --panic-on
取消拒绝状态: firewall-cmd --panic-off
查看是否拒绝:firewall-cmd --query-panic

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

重新载入:firewall-cmd --reload

查看:firewall-cmd --zone= public --query-port=80/tcp

删除:firewall-cmd --zone= public --remove-port=80/tcp --permanent