使用VirtualBox从客户机访问主机上的网站,主机和客户机都是linux。

问题描述 投票:0回答:2

我在ubuntu(主机)上运行VirtualBox,我使用的VM是fedora(客人)。VirtualBox被设置为使用NAT网络适配器,我可以访问互联网。我使用端口转发来访问ssh和rails web服务器。

端口转发规则

  <NAT>
    <DNS pass-domain="true" use-proxy="false" use-host-resolver="false"/>
    <Alias logging="false" proxy-only="false" use-same-ports="false"/>
    <Forwarding name="Rule 1" proto="1" hostport="5679" guestport="22"/>
    <Forwarding name="Rule 2" proto="1" hostport="3080" guestport="3000"/>
  </NAT>

现在我可以在客人机上访问互联网,并且可以通过SSH登录,但我无法访问端口3080的Rails Web服务器。

i tried : 
localhost:3080
10.0.2.15:3080 #the guest IP

我所能做的就是通过SSH和互联网连接,在主机上用浏览器打开我在gust机器上的网站。

谢谢

ruby-on-rails linux virtualbox nat
2个回答
0
投票

在你的VB中,你必须设置网络只与主机。它是在首选项->网络.然后你可以通过192.168.56.101从ubuntu访问你的虚拟机。在这个网卡上设置端口转发。用ifconfig列出它。我建议使用iptables进行端口重定向。


0
投票

只是在黑暗中的一个刺,但这可能是你的问题... ...

当您在 VirtualBox 中配置一个新的 Linux 虚拟机时,该虚拟机的网络设置被设置为 "NAT"。 这将导致您的新虚拟机被分配一个10.x.x.x地址。

将此设置更改为桥接模式,这将为您的虚拟机分配一个与您的主机位于同一子网内的地址(很可能是 192.168.x.x)。

尝试连接到您的主机上运行的站点。

如果您仍然无法访问在localhost上运行的站点,请确认应用程序没有阻止来自您的新虚拟机的连接。 在您的访问列表中添加一条规则(可能是iptables),允许从您的虚拟机的地址发送tcp端口80的流量(通过使用 ifconfig).

狩猎快乐!

© www.soinside.com 2019 - 2024. All rights reserved.