来自服务器的空回复-can';t连接到带有端口转发的vagrant vm

来自服务器的空回复-can';t连接到带有端口转发的vagrant vm,vagrant,Vagrant,我在一个流浪的虚拟机中运行werkzeug(作为Tilestache设置的一部分),运行UbuntuPrecise 在我的档案中,我有: config.vm.network :forwarded_port, guest: 8080, host: 8080 在VM中启动服务器时,我看到: * Running on http://127.0.0.1:8080/ 如果我curl从VM中找到该地址,我将得到预期的结果。当我从主机curlit时,我得到: curl: (52) Empty reply

我在一个流浪的虚拟机中运行werkzeug(作为Tilestache设置的一部分),运行UbuntuPrecise

在我的档案中,我有:

config.vm.network :forwarded_port, guest: 8080, host: 8080
在VM中启动服务器时,我看到:

 * Running on http://127.0.0.1:8080/
如果我
curl
从VM中找到该地址,我将得到预期的结果。当我从主机
curl
it时,我得到:

curl: (52) Empty reply from server
Chrome说“没有收到任何数据。”

故障排除信息:

  • 服务器响应来自主机的ping
  • 端口嗅探器验证端口是否打开
  • 在虚拟机中运行netstat-ntlp | grep8080表明服务器正在侦听8080
  • 我的本地主机文件没有任何奇怪的冲突
  • 我也在转发22=>2222,我可以轻松地通过ssh登录
  • 我已经在主机上禁用了防火墙,但我认为来宾上没有防火墙(至少禁用了iptables和ufw)
  • 我已经设置了
    auto\u correct:true
    ,以防发生冲突(没有冲突)
我知道我可以设置一个专用网络,但我想了解为什么这不起作用,以及如何排除故障


还有其他想法吗?

从虚拟机中运行服务器时,请在0.0.0而不是127.0.0.1上启动服务器

127.0.0.1只能由本地计算机访问,这对于VM来说意味着VM之外的任何东西都无法访问它!0.0.0.0可以从本地网络上的任何位置访问,包括主机在内的VM也可以访问本地网络

答案来自这里:

(这显然是从这里得到的答案:)

在以下人员的帮助下:

谷歌诱饵: 如果出现问题,您可能会收到以下错误:

  • Chrome:“未收到任何数据”
  • Firefox:“连接被重置-页面加载时与服务器的连接被重置。”
  • Safari:“Safari无法打开页面[URL],因为服务器意外断开了连接”
  • curl:“来自服务器的空回复”

在虚拟机内部的
/etc/hosts
中,更改行
127.0.0.1本地主机->0.0.0.0本地主机

然后
重新启动服务器

这也可能是流浪者机器上防火墙的问题。如果可以在“漫游”框上卷曲地址,请检查防火墙设置或将其关闭:

在CENTOS:

sudo service firewalld stop

然后您应该更新firewalld设置并重新启动;)

这很有效。请注意,此设置是在vagrant guest上设置的,而不是在主机系统上设置的。很明显,但当你在谷歌随机搜索“快速修复”时,情况就不那么明显了。哎哟!请不要这样做。这不是正确的答案。即使是虚拟机。这是一个糟糕的建议。@JeffMcCune你想详细说明一下吗?在做了
vagrant reload
之后,它对我很有效。。ThanxDid似乎对我不起作用(使用张阮概述的方法)。同样的错误,“没有收到数据”,但使用转发端口和本地主机,即“localhost:8080”可以正常工作。你是这个站点上最聪明的人。