You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在远程CentOS 7.5虚拟机上正常运行Tomcat 7?

排查CentOS 7.5上Tomcat启动正常但访问Connection refused的问题

我之前在CentOS虚拟机部署WAR包时也碰到过完全一样的状况,给你梳理几个关键排查步骤,大概率能解决问题:

1. 检查防火墙(firewalld)和SELinux

CentOS 7.5默认开启firewalld,即使Tomcat监听了正确端口,防火墙也可能拦截外部请求:

  • 先查看firewalld状态:systemctl status firewalld
  • 如果处于运行状态,添加Tomcat端口(以8080为例)并永久生效:
    firewall-cmd --add-port=8080/tcp --permanent
    firewall-cmd --reload
    
  • 另外排查SELinux:临时关闭测试setenforce 0,如果此时能正常访问,说明SELinux限制了端口,需要配置允许:
    semanage port -a -t http_port_t -p tcp 8080
    

2. 确认Tomcat的绑定地址

很多时候Tomcat默认只绑定127.0.0.1(仅本地可访问),需要修改为允许外部访问的地址:

  • 打开Tomcat配置文件conf/server.xml,找到Connector标签,检查address属性:
    <!-- 确保address是0.0.0.0,允许所有IP访问 -->
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"
               address="0.0.0.0"/>
    
  • 修改后重启Tomcat:bin/shutdown.sh && bin/startup.sh

3. 验证Tomcat实际监听的端口和地址

用命令确认Tomcat是否真的在监听指定端口,且监听的是外部可访问的地址:

# 用netstat或ss命令查看
netstat -tulpn | grep java
# 或者
ss -tulpn | grep java

如果输出显示127.0.0.1:8080,说明还是绑定地址的问题,回到第二步修改;如果是0.0.0.0:8080或虚拟机的公网/内网IP:8080,那监听是正常的。

4. 测试虚拟机内部和外部的网络连通性

  • 先在虚拟机本地测试:wget localhost:8080,如果能获取到页面内容,说明Tomcat本地服务正常
  • 再从外部(比如你的电脑)测试:用telnet 虚拟机IP 8080或者curl 虚拟机IP:8080,如果还是连接拒绝,要检查虚拟机的网络模式(比如VMware的NAT是否配置了端口转发,VirtualBox的网络设置是否允许外部访问)

5. 排查WAR包部署是否正常

虽然你说Tomcat启动正常,但也有可能WAR包部署失败导致路径无法访问:

  • 查看Tomcat的webapps目录,看WAR包是否已经解压成对应的文件夹
  • 查看logs/catalina.log或logs/localhost.log,有没有部署相关的错误日志(比如依赖缺失、权限问题)

内容的提问来源于stack exchange,提问作者RabbitBones22

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:21:44