【发布时间】:2015-12-01 13:51:58
【问题描述】:
我的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 runrails 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。
我尝试过停止/启动虚拟机、重新加载它等。我是否遗漏了一些明显的东西?
提前谢谢你
【问题讨论】:
-
你能检查一下你的主机在 8080 端口上是否没有运行任何东西吗?很可能一个进程已经绑定了端口,因此它不能被 vagrant 使用。我不知道在这种情况下 vagrant up 是否会报错
-
@FrédéricHenri 我已将端口 (8080) 更改为许多其他值,并且行为是相同的。主机上没有任何东西在使用我尝试过的端口。
-
@RobertJoseph 在来宾 VM 中运行
curl -I http://localhost:3000/时的输出是什么? -
@FrédéricHenri 正是我所期望的:goo.gl/Cnpcij(要点)
-
您的访客可能有防火墙规则阻止从外部访问端口 3000
标签: ruby-on-rails vagrant ubuntu-14.04 portforwarding