我在Vagrant VM中运行werkzeug(作为Tilestache设置的一部分),运行ubuntu'精确'.
在我的Vagrantfile中,我有:
config.vm.network :forwarded_port, guest: 8080, host: 8080
Run Code Online (Sandbox Code Playgroud)
当我在VM中启动服务器时,我看到:
* Running on http://127.0.0.1:8080/
Run Code Online (Sandbox Code Playgroud)
如果我curl从VM中寻址,我会得到预期的结果.当我curl来自主机时,我得到:
curl: (52) Empty reply from server
Run Code Online (Sandbox Code Playgroud)
Chrome表示"没有收到数据."
故障排除信息
netstat -ntlp | grep 8080在vm中运行表明服务器正在侦听8080auto_correct: true以防有冲突(没有)我知道我可以建立一个专用网络,但我想了解为什么这不起作用以及如何排除故障.
还有其他想法吗?
mee*_*tar 69
从VM中运行服务器时,请在0.0.0.0而不是127.0.0.1上启动服务器.
127.0.0.1只能由本地计算机访问,对于VM而言,VM意味着VM无法访问它!可以从本地网络上的任何位置访问0.0.0.0 ,其中VM包括主机.
答案来自此处:使用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
如果这是问题,您可能会收到以下错误:
小智 23
在/etc/hosts更改行
127.0.0.1 localhost - > 0.0.0.0 localhost
然后restart server