使用Ruby Sinatra:4567/Shotgun:9292的虚拟盒端口转发

使用Ruby Sinatra:4567/Shotgun:9292的虚拟盒端口转发,ruby,linux,sinatra,virtualbox,shotgun,Ruby,Linux,Sinatra,Virtualbox,Shotgun,为了便于开发,我在windowsten主机上安装了一个VirtualBoxCentOS 7.0Guest操作系统,端口转发根本不起作用 我有一个NAT'd网络适配器(我不能在这个网络上使用桥接适配器),公平地说,我更喜欢使用桥接适配器。但其他一切都很顺利。除了端口4567和9292不会向前,而端口22和端口80工作正常 我有 在客户端上为NAT适配器上VirtualBox中的端口22、80、4567、9292添加了端口转发 在CentOS 7.0上完全禁用防火墙D(并重新启动),然后排除了这种

为了便于开发,我在
windowsten
主机上安装了一个VirtualBox
CentOS 7.0
Guest操作系统,端口转发根本不起作用

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

我有

  • 在客户端上为NAT适配器上VirtualBox中的端口
    22
    80
    4567
    9292
    添加了端口转发
  • CentOS 7.0
    上完全禁用防火墙D(并重新启动),然后排除了这种情况
  • 所有端口在本地主机上都可以正常工作,即在vm中
    localhost:4567
    localhost:9292
  • 在guest上切换
    SELINUX
    (为方便起见)
  • 每次我进行网络->端口转发更改时,系统地重新启动主机上的整个VM
  • 尝试
    10.0.2.15:4567
    /
    10.0.2.15:9292
    ,徒劳地试图购买
我一直在ssh中使用端口
22
和端口
80
工作正常

这是流量问题还是防火墙问题,VirtualBox接口上是否存在某种对我隐藏的网络过滤


我想得到一些帮助。

注意:原因是猎枪/RUBY,而不是VirtualBox、防火墙或端口转发

@马特修好了这个。。。他的观点是正确的,解决这个问题的方法是两件事之一:(实际上是
shotgun
在开发模式下运行ruby导致的)

原因:

  • RUBY在默认的
    set:bind,'localhost'
    开发模式下运行
解决方案:

  • RUBY使用选项
    set:bind,'0.0.0.0'
    运行(也可以在config.ru中)
好消息是,如果您想让localhost:4567正常工作,这是您的问题,请将行
set:bind,'0.0.0'
添加到您的配置中,您就可以开始了

令人恼火的是,如果你使用猎枪,它将不会被拾取

坏消息是,如果你想让localhost:9292工作,猎枪在这里做自己的事情:

  • 事实上,
    shotgun
    不会考虑那些ruby配置,它将采用自己的引导策略,因此您必须使shotgun在
    --host=0.0.0
    模式下运行:例如:
  • #散弹枪--server=thin--port=9292--host=0.0.0.0 config.ru

这看起来和Thank@matt you's right的问题一样,这是一个散弹枪问题,我将发布answerStack Overflow是一个用于编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参见帮助中心中的。也许或者会是一个更好的提问的地方。另请参见感谢您的勤奋+jww,但这肯定是一个发展问题,最明显的是,因为链接的答案已发布在上,所以,感谢您在这件事上的勤奋,也许我下次会建议您多考虑一点?