【问题标题】:Virtual Box port forwarding misery with Ruby Sinatra:4567 / Shotgun:9292Ruby Sinatra:4567 / Shotgun:9292 的 Virtual Box 端口转发问题
【发布时间】:2017-01-30 21:47:47
【问题描述】:

出于开发目的,我在 Windows Ten 主机上安装了 VirtualBox CentOS 7.0 来宾操作系统,但端口转发根本不起作用。

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

我有

  • 在 NAT'd 适配器的 VirtualBox 中为端口 22,80,4567,9292 添加了端口转发。
  • 完全禁用CentOS 7.0 上的防火墙(并重新启动),然后排除
  • 所有端口在本地主机上都可以正常工作,即在虚拟机中localhost:4567localhost:9292 一样完美
  • 在访客上切换SELINUX(为了良好的衡量标准)
  • 每次我进行网络更改时都会系统地重新启动主机上的整个 VM->portforward 更改
  • 尝试10.0.2.15:4567 / 10.0.2.15:9292 无果而终

我一直在端口 22 和端口 80 上运行良好

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

我很想得到一些帮助。

【问题讨论】:

标签: ruby linux sinatra virtualbox shotgun


【解决方案1】:

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

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

原因:

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

解决方案:

  • RUBY 使用选项 set :bind, '0.0.0.0' 运行(也可以在 config.ru 中)

好消息是,如果你想让 localhost:4567 工作,这是你的票,添加行 set :bind, '0.0.0.0' 到你的配置,你很高兴

很烦人,如果你用猎枪,这不会被捡起来

坏消息是,如果您想让 localhost:9292 工作,shotgun 会在这里做自己的事情:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-22
    • 1970-01-01
    • 2020-03-16
    • 2017-11-02
    • 1970-01-01
    相关资源
    最近更新 更多