Linux下Tomcat启动正常,但浏览器无法访问Tomcat 8080端口

问题:
虚拟机上安装centOS7,配置Tomcat并成功启动。但是在浏览器里却无法访问Tomcat 8080端口。
tomcat的配置,请参考文章:Linux-CentOS7 配置 Tomcat
原因:
因为CentOS 7或RHEL 7或Fedora,默认防火墙是由firewalld来管理,而firewalld没有对8080端口开放,所以进行8080端口开放配置。
CentOs 7 之前的版本,由iptables控制Linuxs的端口。
CentOS升级到7之后,无法使用iptables控制Linuxs的端口,因为是Centos 7使用firewalld代 替了原来的iptables。

以下提供两种方式解决该问题。

解决方案一,还原传统的iptables管理方式。

1、执行命令设置firewalld
systemctl stop firewalld
systemctl mask firewalld

image.png

2、安装iptables-services
执行命令:yum install iptables-services


Linux下Tomcat启动正常,但浏览器无法访问Tomcat 8080端口_第1张图片
image.png

如果不安装,直接执行iptables相关命令会报错:
Failed to stop iptables.service: Unit iptables.service not loaded.

3、关闭防火墙
执行命令:systemctl stop iptables

4、编辑 vi /etc/sysconfig/iptables
添加以下内容并保存退出:

#允许8080端口通过防火墙
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
#允许3306端口通过防火墙
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
#允许9904端口通过防火墙
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9904 -j ACCEPT
Linux下Tomcat启动正常,但浏览器无法访问Tomcat 8080端口_第2张图片
image.png

5、重启防火墙
执行命令:systemctl restart iptables

6、打开外部浏览器,输入http://centOS IP:8080
即可看到Tomcat欢迎界面!

Linux下Tomcat启动正常,但浏览器无法访问Tomcat 8080端口_第3张图片
image.png

解决方案二,firewalld 进行8080端口开放配置

1、在firewalld 上开放8080端口
输入命令:
firewall-cmd --zone=public --add-port=8080/tcp --permanent

命令解析:
--zone #作用域
--add-port=8080/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数设置,重启后会失效。

2、重启防火墙
输入命令:firewall-cmd --reload


image.png

3、打开外部浏览器,输入http://centOS IP:8080,即可看到Tomcat欢迎界面!

你可能感兴趣的:(Linux下Tomcat启动正常,但浏览器无法访问Tomcat 8080端口)