来自服务器的空回复 - 无法连接到vagrant vm w /端口转发

时间:2014-05-24 00:33:38

标签: vagrant

我在Vagrant VM中运行werkzeug(作为Tilestache设置的一部分),运行ubuntu'精确'。

在我的Vagrantfile中,我有:

config.vm.network :forwarded_port, guest: 8080, host: 8080

当我在VM中启动服务器时,我看到:

 * Running on http://127.0.0.1:8080/

如果我curl从VM中寻址,我会得到预期的结果。当我curl来自主机时,我得到:

curl: (52) Empty reply from server

Chrome说“没有收到数据。”

故障排除信息:

  • 服务器响应来自主机的ping
  • 端口嗅探器验证端口是否已打开
  • 在vm中运行netstat -ntlp | grep 8080表示服务器正在侦听8080
  • 我的本地hosts文件没有任何奇怪的冲突
  • 我也转发22 => 2222,我可以毫不费力地进入。
  • 我在主机上禁用了防火墙,我不相信客人端有防火墙(iptables和ufw至少被禁用)
  • 我已设置auto_correct: true,以防有冲突(没有)

我知道我可以建立一个专用网络,但我想了解为什么这不起作用以及如何排除故障。

还有其他想法吗?

3 个答案:

答案 0 :(得分:69)

从VM中运行服务器时,请在 0.0.0.0 而不是 127.0.0.1 上启动服务器。

127.0.0.1只能由本地计算机访问,对于VM而言,这意味着VM无法访问它!可以从本地网络上的任何位置访问0.0.0.0,该虚拟机包含主机。

答案来自:Connection Reset when port forwarding with Vagrant

(显然从这里得到了答案:https://stackoverflow.com/a/5999945/738675

https://serverfault.com/questions/78048/whats-the-difference-between-ip-address-0-0-0-0-and-127-0-0-1

的帮助下

谷歌诱饵:

如果出现问题,可能会收到以下错误:

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

答案 1 :(得分:23)

/etc/hosts更改行中
127.0.0.1 localhost - > 0.0.0.0 localhost
然后restart server

答案 2 :(得分:1)

这也可能是流浪汉机器上的防火墙出现问题。如果你可以在流浪者盒子上卷曲地址,那么检查你的firewalld设置或关闭它:

on CENTOS:

sudo service firewalld stop

然后你应该更新你的firewalld设置并重新启动它;)