我正在一个Tilestache的设置中运行werkzeug,并在Vagrant虚拟机中运行Ubuntu 'precise'。
在我的Vagrantfile文件中,我有以下配置:
config.vm.network :forwarded_port, guest: 8080, host: 8080
当我在虚拟机中启动服务器时,我看到:
* Running on http://127.0.0.1:8080/
如果我从虚拟机内使用curl
请求该地址,我会得到预期结果。但当我从宿主机上使用curl
请求时,我会得到以下错误:
curl: (52) Empty reply from server
谷歌浏览器显示“未接收到数据”错误。
故障排除信息:
- 服务器能够响应主机的ping请求
- 端口扫描器验证了该端口是开放的
- 在虚拟机中运行
netstat -ntlp | grep 8080
显示服务器正在监听8080端口 - 我的本地hosts文件没有任何奇怪的冲突
- 我还将22端口转发到2222端口,可以无障碍地进行ssh连接
- 我已经在主机上禁用防火墙,并且我不认为客户机上有防火墙(iptables和ufw至少已经关闭)
- 如果有冲突,我已经设置
auto_correct: true
(但实际上没有),
我知道我可以设置一个私有网络,但我想了解为什么这不起作用以及如何进行故障排除。是否还有其他的想法?