tomcat - 无法从本地网络访问Tomcat服务器

标签 tomcat virtualbox

我有一个在 CentOS6 VM 上运行的 Tomcat 7 服务器(桥接网络模式,我们会说 IP 是 1.2.3.4)并且正在尝试(但无法)从主机访问它机器。我可以使用

从 VM 访问资源 test(一个包含“Hello, world!”的文件)
# wget 1.2.3.4:8080/test/

...结果很好。如果我从主机尝试相同的命令,要么它失败(连接被拒绝),要么它连接然后吐出一个

Read error (Connection reset by peer) in headers.
Retrying.

它会再尝试一次或两次,最后一次是“连接被拒绝”。

当连接被拒绝时,访问日志中不会显示任何内容。当我收到读取错误时,请求会显示在访问日志中,响应代码为 200。我收到的响应会间歇性地来回切换。

这是 server.xml 中 8080 的连接器:

<Connector port="8080" protocol="HTTP/1.1"
    connectionTimeout="20000"
    redirectPort="8443" />

Tomcat 看到来自主机的任何请求这一事实让我非常确定它不是防火墙,但这是 VM 的 iptables 文件:

# Generated by iptables-save v1.4.7 on Wed May  7 10:27:30 2014
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT 
-A INPUT -s 1.2.3.0/24 -p tcp -m tcp --dport 8080 -j ACCEPT 
-A INPUT -i lo -j ACCEPT 
-A INPUT -p icmp -j ACCEPT 
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
COMMIT
# Completed on Wed May  7 10:27:30 2014

我是否缺少服务器配置,或者可能导致响应不一致的原因?

最佳答案

...and it comes down fine. If I try the same command from the host, either it fails 
(connection refused), or it connects and then spits out a ...

它看起来像防火墙,iptables 有这样的东西:允许很少的数据包通过,即使它们被禁用(应该被过滤掉)

我建议在VM中使用tcpdump观看,真正的源IP是用于请求的 像 tcpdump -n -i br0 端口 8080

您的主机 iptable 规则或路由表可能会影响您的请求

关于tomcat - 无法从本地网络访问Tomcat服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23524480/

相关文章:

java - 文件仅部分上传到服务器

windows - VBoxManage 仅在不存在时添加共享文件夹?

hash - 从任何虚拟机(例如 virtualbox)通过其接口(interface)启动 vagrant box

java - 如何找到虚拟框运行的机器详细信息

apache - jenkins 安装是否需要 Apache Web 服务器

java - log4j-over-slf4j.jar 和 slf4j-log4j12.jar 冲突...但我没有 log4j-over-slf4j

eclipse - maven tomcat7部署

jsp - 在即时 JSP 编译中导入失败

linux - 重新启动后不再安装共享文件夹(Virtualbox -- Windows7)

linux - 将端口 80 上的所有数据包从虚拟机内部路由到另一个虚拟机上的 kali linux