Linux中tomcat服务成功发布但局域网浏览器无法访问

本文分享了在CentOS 7环境下配置Tomcat服务器时遇到的问题及解决办法。作者发现局域网内无法访问Tomcat服务,通过排查发现是由于Linux防火墙设置导致。文中详细记录了解决步骤,包括如何正确地关闭和禁用CentOS 7的防火墙。

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

昨天,我在搭建Linux中服务器环境时,碰见一个问题,这里和大家分享一下。

问题描述:我在Linux搭建了一个tomcat服务器,tomcat开启后,发现在局域网浏览器上无法访问该tomcat,浏览器报无法访问服务器错误,我查看了tomcat的日志,路径..../tomcat/logs/catalina.out,发现tomcat在开启过程中没有报错。我又查看了一下工程日志,也没有错误。

service iptables status   #查看防火墙状态

解决方法:上网搜索,发现很多人都遇到过这个问题,这是Linux防火墙开启导致的,网上的方法大多是通过以下的指令启停

service iptables stop   #停止
chkconfig iptables off   #禁用
但是,因为我装的Linux系统是centos 7,所以,上面这两条指令在改Linux中无法执行,报以下错误:

Redirecting to /bin/systemctl stop  iptables.service
Failed to stop iptables.service: Unit iptables.service not loaded.

在不同Linux系统中,操作指令大体上都是相同的,但是不同的系统仍会有细微的差别,我们经常使用的是red hat。对于red hat来说,上面这两条停止、禁用可用,但是对于centos 7系统来说,只有使用下面的指令,才可以对Linux防火墙进行启停。

systemctl stop firewalld.service   #停止
systemctl disable firewalld.service   #禁用

### 解决方案分析 当遇到 Tomcat 在虚拟机中启动后无法通过浏览器访问并提示“connection refused”的问题时,可能涉及多个方面的原因。以下是详细的排查和解决方案: #### 1. **确认 Tomcat 是否正常运行** 需要验证 Tomcat服务状态以及监听端口是否正确配置。如果 Tomcat 启动失败或者未绑定到正确的网络接口,则可能导致连接被拒绝。 可以通过以下命令检查 Tomcat 进程是否存在: ```bash ps aux | grep tomcat ``` 如果进程存在,进一步检查其日志文件(通常位于 `logs/catalina.out`),查看是否有异常错误信息[^3]。 #### 2. **防火墙设置** 虚拟机中的防火墙可能会阻止外部请求到达指定的端口。可以通过以下方式临时关闭防火墙测试连通性: 对于 Linux 系统: ```bash sudo systemctl stop firewalld ``` 或者允许特定端口(如默认的 8080): ```bash sudo firewall-cmd --add-port=8080/tcp --permanent sudo firewall-cmd --reload ``` 此外,还需要确保宿主机与虚拟机之间的网络通信畅通无阻[^2]。 #### 3. **Tomcat 配置文件调整** 默认情况下,Tomcat 绑定的是本地回环地址 (`localhost`),这会限制只有同一台机器上的客户端才能访问它。为了使远程设备能够访问该服务器,需修改 `server.xml` 文件中的 `<Connector>` 设置项,将其属性改为如下形式: ```xml <Connector port="8080" protocol="HTTP/1.1" address="0.0.0.0" connectionTimeout="20000" redirectPort="8443" /> ``` 上述更改使得 Tomcat 监听所有可用 IP 地址而不是仅仅局限于 localhost。 #### 4. **检查虚拟机网络模式** 虚拟机使用的网络适配器类型也会影响外界如何访问内部的服务。推荐采用桥接模式(Bridged Networking),这样可以让虚拟机像局域网内的独立计算机一样获得自己的IP地址;而 NAT 模式则需要额外配置端口转发规则来实现对外暴露服务的目的。 #### 5. **RTMP 断开重试机制** 若涉及到流媒体传输场景下的 RTMP 协议断开情况(flex_rtmp_disconnect)[^1] ,应考虑增加超时时间参数或优化握手过程逻辑减少意外中断几率。 --- ### 总结建议 综合以上各点进行全面核查之后再尝试重新部署应用环境即可有效缓解此类现象的发生概率。务必逐一排除上述提到的各种可能性直到找到根本原因所在为止。