gpt4 book ai didi

ruby - Virtualbox 端口转发苦难与 Ruby Sinatra :4567/Shotgun:9292

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:41:49 26 4
gpt4 key购买 nike

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

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

我有

  • 在客户端上为 NAT 适配器上的 VirtualBox 中的端口 228045679292 添加了端口转发。
  • 完全禁用 CentOS 7.0 上的 firewalld(并重新启动)然后排除这种情况
  • 所有端口在本地主机上工作正常,即在 vm 中 localhost:4567localhost:9292 一样完美
  • 在 guest 上切换 SELINUX(以备不时之需)
  • 每次我进行网络->端口转发更改时系统地重新启动主机上的整个虚拟机
  • 尝试了 10.0.2.15:4567/10.0.2.15:9292 试图获得购买

我一直在 22 端口上使用 ssh,并且 80 端口工作正常

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

我需要一些帮助。

最佳答案

注意:原因是 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' 行添加到你的配置中,你就可以了走

烦人的是,如果你运行 SHOTGUN,这不会被拾起

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

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

关于ruby - Virtualbox 端口转发苦难与 Ruby Sinatra :4567/Shotgun:9292,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41945967/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com