我在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说“没有收到数据。”
故障排除信息:
netstat -ntlp | grep 8080
表示服务器正在侦听8080 auto_correct: true
,以防有冲突(没有)我知道我可以建立一个专用网络,但我想了解为什么这不起作用以及如何排除故障。
还有其他想法吗?
答案 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)
的帮助下如果出现问题,可能会收到以下错误:
答案 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设置并重新启动它;)