tomcat报Network is unreachable

本文介绍了一次在RedHat 5.5上安装JDK和Tomcat遇到的问题及解决方案。当尝试运行Tomcat时出现了“Network is unreachable”的错误提示,最终发现是因为防火墙未关闭导致。文中给出了在Linux下关闭防火墙的具体命令。

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

今天在虚拟机中新装了个RedHat5.5版的,装好JDK和tomcat,但是在运行tomcat的时候却报了:

SEVERE: Protocol handler pause failed
java.net.SocketException: Network is unreachable
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
        at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
        at java.net.Socket.connect(Socket.java:529)
        at java.net.Socket.connect(Socket.java:478)
        at java.net.Socket.<init>(Socket.java:375)
        at java.net.Socket.<init>(Socket.java:218)
        at org.apache.jk.common.ChannelSocket.unLockSocket(ChannelSocket.java:486)
        at org.apache.jk.common.ChannelSocket.pause(ChannelSocket.java:283)
        at org.apache.jk.server.JkMain.pause(JkMain.java:681)
        at org.apache.jk.server.JkCoyoteHandler.pause(JkCoyoteHandler.java:153)
        at org.apache.catalina.connector.Connector.pause(Connector.java:1073)
        at org.apache.catalina.core.StandardService.stop(StandardService.java:563)
        at org.apache.catalina.core.StandardServer.stop(StandardServer.java:744)
        at org.apache.catalina.startup.Catalina.stop(Catalina.java:628)
        at org.apache.catalina.startup.Catalina$CatalinaShutdownHook.run(Catalina.java:671)
Sep 18, 2011 2:37:56 AM org.apache.catalina.core.StandardService stop

 由于是linux新手,开始没有查出是什么原因,以为是tomcat没有配置好;但是看到java.net.SocketException: Network is unreachable才知道原来是防火墙没有关,随后关掉防火墙之后,在windows下通过http://192.168.56.128:8080/访问linux中的tomcat正常。

下面贴出linux下关闭防火墙的命令:

1) 重启后生效

开启: chkconfig iptables on

关闭: chkconfig iptables off
2) 即时生效,重启后失效
开启: service iptables start
关闭: service iptables stop

### 开发板网络不可达问题解决方案 当遇到 `SIOCADDRT: Network is unreachable` 或者 `ping: sendto: Network is unreachable` 的错误提示时,这通常是由于缺少默认网关配置或者是网络接口未正确初始化所引起的[^1]。 对于刚刷新完固件的开发板来说,如果设置了静态 IP 地址但是仍然无法访问外部网络,则可能是因为没有指定通往外界的路径即缺省路由。可以通过向系统添加一条指向路由器的默认路由来解决问题: ```bash route add default gw 192.168.1.1 eth0 ``` 这里假设网关地址为 `192.168.1.1` 并且使用的网络接口名为 `eth0`,实际环境中应当替换为具体的网关和接口名称[^2]。 另外一种情况是在使用 VMware 虚拟化环境下的 Ubuntu 主机与物理开发板之间的通信出现问题。此时可以尝试调整 VMware 中的虚拟网络设置以确保两者处于相同子网内,并重启 Ubuntu 上的网络服务使更改生效: #### 修改 VMware 网络配置 - 打开 VMware -> 编辑 -> 虚拟网络编辑器; - 配置适用于当前场景的适配器选项; #### 重载 Ubuntu 网络管理器 ```bash sudo service network-manager restart ``` 完成上述操作之后再次测试连通性应该能够得到改善[^3]。 值得注意的是,除了以上提到的原因之外,还有可能是 DNS 设置不正确导致域名解析失败进而表现为 "network is unreachable" 错误消息。因此建议也检查 `/etc/resolv.conf` 文件中的 nameserver 记录是否指向有效的公共DNS服务器如 Google 提供的服务 (8.8.8.8)[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值