Ruby Sinatra:4567 / Shotgun:9292 的 Virtual Box 端口转发苦难

Virtual Box port forwarding misery with Ruby Sinatra:4567 / Shotgun:9292

出于开发目的,我在 Windows Ten 主机上安装了一个 VirtualBox CentOS 7.0 Guest OS,但端口转发根本不起作用。

我有一个 NAT'd 网络适配器(我不能在此网络上使用桥接适配器),公平地说,我更喜欢桥接适配器。但是其他一切都可以顺利进行。除了4567和9292端口不会转发,而22和80端口可以正常工作。

我有

我一直在端口 22 上 ssh,端口 80 工作正常

这是流量问题还是防火墙问题,VirtualBox 界面上是否有某种对我隐藏的网络过滤?

我需要一些帮助。

注意:原因是SHOTGUN/RUBY不是VirtualBox、防火墙或端口转发

@Matt 修复了这个问题...他的 link in the comments 是正确的,对此的修复是两件事之一:(实际上是 shotgun 运行ning ruby在导致它的开发模式中)

原因:

  • RUBY 运行ning 默认 set :bind, 'localhost' 开发模式。 (link)

解决方案:

  • RUBY 运行s with options set :bind, '0.0.0.0' (也可以在config.ru)

好消息是,如果您想让 localhost:4567 工作,这就是您的选择,将行 set :bind, '0.0.0.0' 添加到您的配置中,您就可以开始了

如果你 运行 霰弹枪这不会被捡起来就很烦人了

坏消息是如果你想localhost:9292工作霰弹枪在这里做它自己的事情:

  • 实际上 shotgun 不会查看那些 ruby 配置,它会采用自己的启动策略,所以你必须在 [=15= 中制作 shotgun 运行 ] 模式:EG:
  • # shotgun --server=thin --port=9292 --host=0.0.0.0 config.ru