先说一下本人的使用背景,前两天完成一个java项目部署到阿里云服务器(tomocat端口是默认的8080),在阿里云中配置了本身的安全组策略,以下图显示.可是在本地访问项目地址显示访问超时,琢磨了好久才发现阿里云的防火墙阻止了外网对8080端口的访问(以前作PHP项目直接在安全组开个端口就OK了)。一开始的临时解决方案是关闭防火墙,后来研究了一下阿里云centos7的防火墙,写下这篇随笔做为总结。java
一:访问项目首先要将打包好的war包放到tomcat的webapp目录下(war包的打包流程往后总结),而后就是启动tomcat服务(到bin目录下使用:sh startup.sh 命令启动,关闭使用 sh shutdown.sh 命令,这里注意:关闭后要把对应的进程杀掉,否则为再次启动后原来的进程还会在,形成内存的大量消耗),到这里为止是阿里云java项目的正常部署就结束了,若是项目能经过外网正常访问那么部署结束!若是不能则进行第二步操做。web
二:阿里云防火墙之firewalld,阿里云centos7防火墙服务默认是firewalld来管理的,而firewalld没有对8080端口开放,因此咱们要进行firewalld的开放。centos
(一)、第一部是登陆阿里云服务器,使用firewall-cmd --list-ports命令来查看firewalld已开放的端口(这里看到8080端口已经开放)浏览器
(二)、若是没有开放,使用firewall-cmd --zone=public --add-port=8080/tcp --permanent开放8080端口,其中--permanent的做用是使设置永久生效,不加的话机器重启以后失效。tomcat
(三)、重启防火墙安全
(四)、打开外部浏览器,输入对应连接便可显示tomcat页面,到这里全部操做就已经所有结束服务器
三:阿里云防火墙之iptables,centos7以前都是iptables来管理防火墙的,这里若是不必再去下载安装,直接使用firewalld便可,写到这里,着重说一下本身当时遇到的一些问题,若是启动了iptables(systemctl restart iptables),app
则firewalld防火墙会被锁定,这时是经过(systemctl start firewalld)命令启fireworlld会报unit is masked的错误,webapp
须要先使用(systemctl unmask firewalld)解锁,tcp
解锁完了就能够正常使用firewalld了。这里我猜想一下,一个系统只能由一个服务来作防火墙,若是启动了一个,另一个就会被锁定。