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端口可以正常工作。
我有
- 在客户端上为 NAT 适配器上的 VirtualBox 中的端口
22
、80
、4567
、9292
添加了端口转发。
- 完全禁用
CentOS 7.0
上的 firewalld(并重新启动)然后排除
- 所有端口在本地主机上工作正常,即在虚拟机中
localhost:4567
和 localhost:9292
一样完美
- 在访客上切换
SELINUX
(为了更好的衡量)
- 每次我进行网络->端口转发更改时系统地重新启动主机上的整个虚拟机
- 尝试
10.0.2.15:4567
/ 10.0.2.15:9292
尝试购买,但没有成功
我一直在端口 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
出于开发目的,我在 Windows Ten
主机上安装了一个 VirtualBox CentOS 7.0
Guest OS,但端口转发根本不起作用。
我有一个 NAT'd
网络适配器(我不能在此网络上使用桥接适配器),公平地说,我更喜欢桥接适配器。但是其他一切都可以顺利进行。除了4567和9292端口不会转发,而22和80端口可以正常工作。
我有
- 在客户端上为 NAT 适配器上的 VirtualBox 中的端口
22
、80
、4567
、9292
添加了端口转发。 - 完全禁用
CentOS 7.0
上的 firewalld(并重新启动)然后排除 - 所有端口在本地主机上工作正常,即在虚拟机中
localhost:4567
和localhost:9292
一样完美
- 在访客上切换
SELINUX
(为了更好的衡量) - 每次我进行网络->端口转发更改时系统地重新启动主机上的整个虚拟机
- 尝试
10.0.2.15:4567
/10.0.2.15:9292
尝试购买,但没有成功
我一直在端口 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