无法使用Vagrant转发端口访问主机上的Sinatra应用程序

mhe*_*nry 8 ruby ubuntu http sinatra vagrant

用两者启动我的Sinatra应用程序后ruby app.rb,foreman start我无法使用localhost和主机上的相应端口访问我的应用程序.我也可以curl从来宾机器的shell中的应用程序,而在主机上curl请求失败.据我所知,客户机上不应该有防火墙,因为我正在使用Vagrant Ubuntu映像.

我的Vagrantfile如下:

Vagrant.configure('2') do |config|
  config.vm.box = 'precise32'
  config.vm.box_url = 'http://files.vagrantup.com/precise32.box'
  config.vm.network :forwarded_port, guest: 4567, host: 4567
end
Run Code Online (Sandbox Code Playgroud)

mat*_*att 16

默认情况下,在开发模式下运行时,Sinatra仅侦听localhost,而不是0.0.0.0(由于安全考虑而进行此更改).

要允许来自任何界面的请求,请添加set :bind, '0.0.0.0'到您的应用文件,或者使用该-o选项启动您的应用,例如ruby myapp.rb -o 0.0.0.0.

您可以将其设置为分配给访客的实际地址,但我不知道它是否值得.