19

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

无法连接。

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

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

4

7 回答 7

39

使用 NAT:

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

答案是肯定的,有一个简单的方法可以做到这一点。我在 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有效
于 2013-02-05T17:53:58.483 回答
6

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

于 2012-06-20T00:18:16.783 回答
1

如果您在开发模式下运行 rails,webrick默认情况下它带有访问权限仅限于 localhost。您可以使用类似thinin dev 的东西,它允许从另一台机器访问。

于 2013-04-19T15:07:46.523 回答
0

你需要Ubuntu的本地IP。ifconfig在终端中获取此类型。

我已经成功使用 NAT 和 virtualbox,在你获得机器的 ip 后,使用 VM 的 3000 端口键入它,你应该能够访问它。

于 2012-06-20T00:20:33.560 回答
0

远程启动 Rails 服务器,然后连接到它:

http://virtualboxhost:3000

如果它不起作用:

  1. 尝试ping virtualboxhost
  2. 在 virtualboxhost 上查看netstat -l打开 3000 端口
于 2012-06-20T00:21:55.593 回答
0

如果你使用 Pow...

...并且已将您的应用程序配置为myapp,您无法myapp.dev从来宾计算机访问它,但您可以使用“魔术”xip.io域。只需访问http://myapp.10.0.2.2.xip.io,它应该可以工作!

于 2015-12-01T19:58:03.830 回答