一、问题现象
CentOS7操作系统下,已经部署并启动Tomcat,Tomcat可见。但使用其他PC的浏览器访问不了Tomcat。
二、分析原因
此问题的主要原因在于CentOS操作系统有防火墙。防火墙的存在,会导致端口无法被外部访问。想要解决这一问题,就是要在防火墙上添加允许访问的端口号,使端口号对外开放。
CentOS7以下默认防火墙是iptables,CentOS7及以上版本的默认防火墙是firewalld。因此,CentOS7需要在firewalld的上添加Tomcat的端口号。
三、解决方案
1、检查防火墙状态
# firewall-cmd --state
返回值为“running”,即防火墙运行。
若无返回信息,则防火墙为关闭状态,启动防火墙的命令如下:
# systemctl start firewalld
2、检查防火墙上开启的端口信息
# firewall-cmd --permanent --zone=public --list-ports
返回信息为空,说明当前防火墙未开启任何端口。
3、开启Tomcat的端口
上一步返回信息为空,这里将Tomcat的端口添加到防火墙中。
# firewall-cmd --zone=public --add-port=8080/tcp --permanent
参数permanent,表示永久的添加此端口。若命令中未添加此参数,表示临时性添加端口,系统重启后将此设置失效。
4、重新加载防火墙设置
重新加载防火墙设置,使配置生效。这一步不做,浏览器还是访问不了Tomcat。
# firewall-cmd --reload
5、验证Tomcat配置是否生效
# firewall-cmd --zone=public --query-port=8080/tcp
返回“yes”,表示配置生效。
也可以通过下面命令验证。
# firewall-cmd --permanent --zone=public --list-ports
有对应的端口信息返回,表示配置生效。
6、浏览器访问
使用外部浏览器访问Tomcat,此时出现tomcat猫界面。