从VirtualBox访问Rails服务器

use*_*809 18 virtualbox ruby-on-rails

我目前正在运行Ubuntu 12.04的笔记本电脑上运行Rails 3.2.3服务器,并希望通过VirtualBox(版本4.1.16)从WinXP(SP3)VM访问它,该VM也在笔记本电脑上运行.尝试使用桥接网络而不是NAT,但最终在Firefox中拒绝连接(第13版).Firefox显示错误页面,其中包括以下内容:

无法连接.

Firefox无法在localhost:3000建立与服务器的连接.

是否有一种直接从VirtualBox远程访问Rails服务器的方法?不确定Vagrant是否会解决问题,因为它的设计是相反的(从主机操作系统到VM).最好远程访问Rails服务器,因为这意味着可以根据需要在单个PC上使用Internet Explorer(使用版本8)轻松完成测试.

小智 36

使用NAT:

  1. 转到VirtualBox ...设置 - >网络 - >端口Fowarding
    • 输入3000作为主机端口
    • 为访客端口输入3000
  2. 转到您的VirtualBox来宾计算机.
  3. 在终端运行ifconfig中,使用inet addr for eth0.就我而言,它是10.0.2.15
  4. 运行rails服务器时,在VirtualBox来宾计算机中,使用以下命令:
    $ rails server -b 10.0.2.15
    您要绑定到该地址.
  5. 在您的主机系统上,转到浏览器并访问 http://127.0.0.1:3000

  • OP正在询问如何从在* guest *上运行的客户端访问在* host *上运行的服务器。这个答案是相反的。 (2认同)

rad*_*und 13

答案是肯定的,有一种简单的方法可以做到这一点.我在OS X Mountain Lion上使用VirtualBox,但我怀疑它对Ubuntu的工作方式是一样的.

  1. 您不需要使用桥接模式,NAT工作正常.
  2. 只需使用主机的IP地址即可.例如192.168.xxx.xxx:3000
  3. 作为替代方案,您可以ipconfig /all在命令提示符下使用虚拟机(使用Windows搜索/查找(windows + f)并搜索"cmd")查找Default Gateway并使用该IP.就我而言,它是10.0.2.2如此10.0.2.2:3000有效


小智 6

您应该键入主机的IP,而不是localhost.使用桥接模式,vm和主机在本地网络中具有不同的IP.