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

时间:2014-05-07 17:35:52

标签: tomcat virtualbox

我在CentOS6虚拟机上运行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

是否存在我缺少的服务器配置,或可能导致响应不一致的内容?

2 个答案:

答案 0 :(得分:0)

...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 port 8080

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

答案 1 :(得分:0)

我无法找到问题的真正原因 - 我关闭了我的VM和主机,重新启动了两台,重新启动了Tomcat,然后能够从主机到达1.2.3.4:8080/test/。 / p>

我确实将问题缩小到主机(我认为):我尝试启动一个不同的VM,并尝试从主机上尝试访问Tomcat服务器时的相同行为。但是,我的主机iptable规则似乎在重启后似乎没有改变。

更新:问题中描述的相同行为在第二天返回。我使用桥接网络适配器切换到eth0上的NAT和使用静态IP的eth1上的仅主机网络。一切都在顺利进行(没有进一步改变iptables)。

相关问题