从Macos到Ubuntu的Vagrant端口转发不起作用

时间:2015-02-24 12:21:42

标签: ruby-on-rails vagrant virtualbox

我在Macos 10.10.2上使用Ubuntu 14.04服务器作为访客运行Vagrant。在ubuntu系统上,我安装了rails 4.2.0(ruby 2.1.5)。

问题是我无法从主机访问rails Web服务器。 vagrant box设置有端口转发,如下所示:

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

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

但是,似乎没有HTTP请求到达它。当卷曲到它(通过端口转发)时,我得到以下结果,并且Web服务器的日志不报告任何请求:

$ curl localhost:8080
curl: (52) Empty reply from server

在ubuntu框本身上进行本地卷曲会产生网页。

在我看来,Mac上或Ubuntu服务器上的防火墙阻止了呼叫。运行nmap时,它只发现端口22和111打开: $ curl localhost:8080 curl: (52) Empty reply from server

但是,Mac和ubuntu服务器上都没有运行防火墙;在后者上,甚至没有安装iptables。

我已经看过关于这个主题的其他几个问题,包括以下内容,但它们似乎都与我的情况无关。 Vagrant Port Forwarding not working Vagrant's port forwarding not working Vagrant port forwarding not working on Mavericks

我还能尝试什么?

1 个答案:

答案 0 :(得分:1)

我遇到了与django服务器相同的问题,并在您的类似链接问题的一条评论中看到,如果您启动服务器绑定到127.0.0.1那么它只在虚拟主机的环回接口上,但是如果你启动它到0.0.0.0然后它将接受该端口上的所有传入连接。

您还可以查看此问题以获取有关指定rails ip address binding的详细信息: How to change the default binding ip of Rails 4.2 development server?