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

本文介绍如何在CentOS上为Tomcat打开8080等端口,包括关闭和重启防火墙、编辑iptables配置文件的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

虚拟机上安装centOS Tomcat后本地可以正常访问,可是这时Tomcat还不能被外界浏览器访问,需要在centOS默认防护墙上打开8080端口;

关闭防火墙:service iptables stop,打开vi /etc/sysconfig/iptables

[root@localhost ~]#service iptables stop

[root@localhost ~]# vi /etc/sysconfig/iptables



-A INPUT -j REJECT --reject-with icmp-host-prohibited

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

这句上面添加


-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9904 -j ACCEPT

-A INPUT -j REJECT --reject-with icmp-host-prohibited

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

#(之前我添加在下面,浏览器也是不能访问的,必须放在上面!)

#允许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

输入esc,输入:wq保存退出;


重启防火墙:service iptables restart


打开外部浏览器,输入http://centOS IP:8080

即可看到Tomcat欢迎界面!


查看tomcat运行日志

tail -f catalina.out


如果这样还没有解决请点击这个链接:

 

centos7 关闭firewall安装iptables并配置:http://blog.youkuaiyun.com/qq_37771131/article/details/74171058



### TomcatLinux环境下启动成功但无法通过浏览器访问的原因及解决方法 #### 一、防火墙配置问题 如果Tomcat服务已经正常运行,但在浏览器中仍然无法访问,默认可能是由于服务器上的防火墙阻止了外部请求。可以通过以下方式解决问题: 1. **临时停止防火墙** 使用命令 `systemctl stop firewalld` 来临时禁用防火墙[^1]。 2. **永久开放指定端口** 如果不希望完全关闭防火墙,可以仅允许特定端口(如8080)的流量。执行如下命令来永久开放该端口: ```bash firewall-cmd --permanent --zone=public --add-port=8080/tcp firewall-cmd --reload ``` #### 二、SELinux策略限制 有时即使防火墙已正确配置,SELinux的安全策略仍可能阻止Tomcat的服务被访问。以下是解决方案: 1. **检查SELinux状态** 执行 `getenforce` 查看当前SELinux的状态。如果是Enforcing模式,则需要调整其设置。 2. **修改SELinux配置文件** 编辑 `/etc/selinux/config` 文件,将 `SELINUX=enforcing` 修改为 `SELINUX=permissive` 或者 `SELINUX=disabled` 并重启系统生效。 3. **动态更改SELinux模式** 不想重启的情况下可使用命令 `setenforce 0` 将SELinux切换到Permissive模式[^5]。 #### 三、网络连接与IP绑定问题 确认Tomcat监听的是正确的地址和端口号非常重要。 1. **查看Tomcat监听地址** 默认情况下,Tomcat会绑定到本地回环地址 (localhost),这使得它只接受来自本机的请求。需编辑 `$TOMCAT_HOME/conf/server.xml` 中 `<Connector>` 的部分,将其属性改为 `address="0.0.0.0"` 或移除此参数以使Tomcat监听所有网卡接口。 2. **验证端口占用情况** 使用 `netstat -tulnp | grep java` 检查Java进程是否正在监听预期的端口(通常是8080)[^3]。 #### 四、其他潜在原因及其处理措施 除了上述常见因素外,还有以下几个方面需要注意: 1. **代理或NAT环境中的映射错误** 若服务器位于内网并通过路由器对外提供服务,则应确保端口转发规则已被正确定义并启用。 2. **DNS解析失败** 当尝试通过域名而非IP地址访问时可能会发生此类状况。此时建议先测试直接利用IP加端口号的方式能否顺利打开网页;若能则表明存在DNS相关的问题待修正。 ```python import socket def check_port(ip, port): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) result = sock.connect_ex((ip, int(port))) if result == 0: print(f"Port {port} is open on IP {ip}.") else: print(f"Port {port} seems to be closed or unreachable.") check_port('127.0.0.1', '8080') ``` 以上脚本可以帮助快速判断目标机器上的某个具体端口是否处于开启状态。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值