Vagrant:无法通过localhost:8080访问Rails服务器

时间:2015-12-01 13:51:59

标签: ruby-on-rails vagrant ubuntu-14.04 portforwarding

我的Vagrantfile包含:

config.vm.box = "ubuntu/trusty64"
config.vm.network "forwarded_port", guest: 3000, host: 8080

vagrant up报告:

Bringing machine 'default' up with 'virtualbox' provider...
==> default: Forwarding ports...
    default: 3000 => 8080 (adapter 1)
...

使用非特权用户(deploy') I run rails server`报告您期望的内容:

Booting WEBrick => Rails 4.2.5 application starting in development on http://localhost:3000
[2015-12-01 13:34:41] INFO  WEBrick::HTTPServer#start: pid=1638 port=3000

在vagrant vm $ netstat -ntlp内部报告:

tcp        0      0 127.0.0.1:3000          0.0.0.0:*               LISTEN      1638/ruby

所以我知道Rails服务器肯定在侦听端口3000

当我浏览主机(OS X)上的http://localhost:8080时,我得到ERR_EMPTY_RESPONSE

我试过停止/启动虚拟机,重新加载它等等。我错过了一些明显的东西吗?

提前谢谢

2 个答案:

答案 0 :(得分:3)

尝试使用rails server -b 0.0.0.0

启动导轨

答案 1 :(得分:1)

/etc/hosts中,将0.0.0.0与localhost关联。当服务正在侦听0.0.0.0时,这意味着服务正在侦听所有已配置的网络接口,当侦听127.0.0.1时,该服务仅绑定到环回接口(仅在本地计算机上可用)。

在来宾计算机上的/etc/hosts中,将127.0.0.1 localhost替换为0.0.0.0 localhost

然后重启rails服务器。