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