centos(13)-firewall防火墙管理

在window中可以ping通虚拟机ip,但是通过ip:8080却无法访问虚拟机中已启动的tomcat首页,因为有防火墙。

firewalld

看到结尾的d就可以猜到它是一个开机自启的服务,那么就可以用systemctl命令来控制它,如对此不了解可参考上一篇内容。

systemctl start firewalld:立即启动防火墙。
systemctl stop firewalld:立即停止防火墙
systemctl restart firewalld:立即重启防火墙
systemctl enable firewalld:以后开机时启动防火墙
systemctl disable firewalld:以后开机时不启动防火墙

systemctl statusfirewalld:查看防火墙状态。

红框显示系统中默认会开启防火墙,防火墙是centos的重要安全措施,肯定不建议为了tomcat而关闭整个防火墙。有些代理服务器如nginx,可以通过80端口代理N个不同的端口,这是线上服务器的作法。而在平时开发测试时,也经常会需要访问tomcat后台,则可以使用firewall-cmd命令单独开放8080端口不被防火墙拦截。

端口管理

firewall-cmd --add-port=8080/tcp:开放8080端口,tcp是协议。

firewall-cmd --remove-port=8080/tcp:关闭8080端口,就是把上面的add换成remove。

firewall-cmd --list-ports:查看已经开放的端口,现在有了8080/tcp,此时已经可以从window访问虚拟机中的tomcat首页。


为什么只有8080端口?我在第3篇中讲过,ssh的22端口默认就是开放的,为什么这里不显示?

服务管理

firewall-cmd --list-service:查看已经开放的服务。


可以发现ssh服务是默认开放的,对于系统预置的ssh服务,可以通过开放服务的方式开放。非系统预置的服务,如tomcat,只能通过端口开启。

firewall-cmd --add-service=ssh:开放ssh服务。

firewall-cmd --remove-service=ssh:关闭ssh服务。

firewall-cmd --get-services:查看系统预置的服务。

持久配置

以上命令默认只是在当前环境中开放,当你重启以后,又会还原。在命令中加--permanent选项可以使其在重启后仍然有效。

我首先删除了上面开放的8080。然后使用--permanent来开放8080,查询时用--permanent可以查到。然而不加--permanent却无法查到。

--permanent:只有在重启或重载防火墙时才会生效。所以此时8080并没有立即开放。

firewall-cmd --reload:重载一下,现在就有了。

猜你喜欢

转载自blog.csdn.net/wangb_java/article/details/78558389