1

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

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

我有

  • 在 NAT'd 适配器上的 VirtualBox 中为端口22、、、、在客户端上添加了端口转发。8045679292
  • 完全禁用防火墙CentOS 7.0(并重新启动)然后排除
  • 所有端口在本地主机上都可以正常工作,即在 vmlocalhost:4567中是完美的localhost:9292
  • 开启SELINUX客人(为了很好的衡量标准)
  • 每次我进行网络-> 端口更改时,系统地重新启动主机上的整个虚拟机
  • 尝试10.0.2.15:4567/10.0.2.15:9292徒劳地尝试购买

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

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

我很想得到一些帮助。

4

1 回答 1

1

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

@Matt 修复了这个......他在评论中的链接是正确的,对此的修复是两件事之一:(它实际上是shotgun在开发模式下运行 ruby​​ 导致它)

原因:

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

解决方案:

  • 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
于 2017-01-31T09:31:15.980 回答