如何从主机访问Apache(在VirtualBox客户机上)?


141

我在Ubuntu VM上安装了Apache。当我进入客户机并加载Firefox时,我可以看到当我浏览到本地主机时Apache运行正常。

我想通过主机访问同一页面。我尝试使用访客的IP地址,但没有任何反应。

理想情况下,我希望设置Windows 7(主机)以http://guestserver.com在客户机上请求Apache服务器。我怎样才能做到这一点?


我找到了帮助我解决该问题的网站。以下答案是正确的,但未显示任何有关在VM中创建虚拟适配器的信息。网站我提到的是:christophermaier.name/2010/09/01/...
苏德赫德赫马尔

Answers:


155

如果您需要物理网络中的其他计算机才能访问虚拟机(或者虚拟机需要Internet访问),请使用桥接网络。否则,请坚持仅主机联网。

  1. 停止您的VM并在VirtualBox(OSE)管理器中打开其设置
  2. 转到网络标签
  3. 选择您所选择的网络模式(桥接网络或仅主机)(在下面的示例中,我正在使用仅主机)

    如果要使用桥接网络,则必须在Name处选择正确的网络适配器。对于有线连接,您可以选择名为的名称eth0。无线连接通常被命名wlan0(数字可能有所不同)

  4. 保存设置
  5. 启动Ubuntu VM
  6. 启动后,您可以通过运行以下命令收集IP地址:

    ifconfig | grep addr
    

    在以下输出中,192.168.56.101是Win7主机系统中可用于访问VM的IP地址:

    eth0  Link encap:Ethernet  HWaddr 08:00:27:70:27:fe  
          inet addr:192.168.56.101  Bcast:192.168.56.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe7b:25fe/64 Scope:Link
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
    
  7. 在Windows主机系统中,C:\Windows\System32\drivers\etc\hosts以管理员身份编辑并添加一行:

    192.168.56.101   guestserver.com
    

    如果您使用的是Ubuntu主机系统,请/etc/hosts使用sudo nano /etc/hosts

  8. 利润!

2
这对于仅主机的网络非常有效,我现在可以从主机的浏览器访问来宾。但是,通过桥接连接(我想要),我无法从访客那里访问Internet。
urok93 2011年

5
ipconfig不是Linux上的命令,它是ifconfig。你是那个意思吗
2013年

7
在Windows 7/8上,主机文件位于:C:\ Windows \ System32 \ drivers \ etc \ hosts
Dalen

2
@begueradj上面的那些步骤适用于桥接网络,但是某些网络不允许/给您多个地址。因此,在我的uni上,我无法使用桥接网络,在这种情况下,我将使用NAT和端口转发。
Lekensteyn 2014年

1
启用两个网络适配器(一个NAT和桥接)使我能够看到并看到蜜蜂。
stenci 2014年

13

就我而言,我有一个为我的主机PC分配静态IP的路由器。

  1. 将网络适配器设置为网桥:

    设置>网络>适配器1(启用网络适配器)>附加到:(网桥适配器)>确定

  2. 启动虚拟机>登录

  3. 将VirtualMachine的IP从动态更改为静态

    须藤nano / etc / network / interfaces

  4. 在“主网络接口”下,将“ dhcp”一词更改为“ static”,然后输入新的静态IP或注释该行并添加一个新的

#iface eth0 inet dhcp
iface eth0 inet static
        address 192.168.10.110
        netmask 255.255.255.0
        gateway 192.168.10.1
        network 192.168.10.0
        broadcast 192.168.10.255

注意我的路由器在xxx.xxx工作。10 .x,而您的可能是xxx.xxx。0 .x或xxx.xxx。1 .x或其他。

完成此操作后,您可以在主机和来宾计算机中都建立Internet连接,然后在Web浏览器中键入该静态IP来检查apache服务器。


我忘了说,你必须确保你的/ etc /主机名是否正确配置是这样的: nameserver [your_isp_primary_dns] nameserver [your_isp_secondary_dns]
Nuc134rB0t

8

您可以尝试在防火墙/其他端口下尝试端口转发,而不要将端口设置为tcp和udp连接,而不必尝试将适配器设置为桥接或仅主机网络适配器。


6

接受的答案对我不起作用(我在ubuntu 12.04 LTS内安装了virutalbox,在我的ubuntu 14.04 LTS Server内安装了virtualbox)。我只是将Adapter1和Adapter2的网络设置交换了,即为“ bridged networing”设置了Adapter1,为“ NAT”设置了Adapter2,它开始工作。


这很有用,但是请切换适配器顺序,以便来宾默认情况下使用NAT并能够连接到Internet。
MadeOfAir

这实际上为我工作。我正在尝试从Mac主机中访问Windows VM。
benjaminz

1
经过数小时的阅读并尝试了我可以在网上找到的所有其他解决方案,您的这种想法像一个魅力一样发挥了作用。非常感谢您编写它!使用Ubuntu 18.04作为主机和来宾。
约翰

5

如果仅需要特定的端口(例如,如果您正在运行诸如Jetty或Tomcat之类的Web应用程序,请执行以下操作:

设置->网络->将适配器之一设置为NAT->按“端口转发”->设置相关的主机和访客端口。

保存后,您可以从本地计算机转到localhost:hostport,它将被重定向到与虚拟机相关的端口,然后完成。


4

如果您无法通过ip连接,则默认安装的apache上的dns名称不太可能成功。

检查虚拟主机的网络设置,我总是把它桥接到可以在整个网络中访问的位置。


我将其设置为桥接,但现在访客无法连接到互联网。
urok93 2011年

您在任务OS中获得IP吗?我通常会设置多个NIC来匹配我所有的物理NIC。您能否从任务和主机中转储ifconfig
PvdL 2011年

当我使用无线时,它可以工作但不能使用电缆,这是一些显示我的配置的屏幕截图:imageshack.us/photo/my-images/832/guestr.png imageshack.us/photo/my-images/846/virtualbox .png imageshack.us/photo/my-images/9/hostwin7.png
urok93 2011年

请问有什么帮助吗?
urok93 2011年

看来您的计算机已直接连接到Internet,这可能就是您的客户端未获得IP(v4)的原因
PvdL 2011年

3

在桥接模式下,如果主机使用静态IP地址,则应在与主机IP相同的范围内手动配置来宾IP。否则,将不会为来宾自动分配有效的IP地址。HTH。


2

Lekensteyn的答案是正确的。但是,如果您在公司环境中,则可能必须禁用访客IP地址的代理服务器。例如,如果您在主机上使用Mozilla Firefox,并且尝试在访客上访问192.168.56.101/,则需要转到Firefox的“工具”->“选项”->“高级”->“网络”->“设置”,并使用“否代理”或“没有代理-> 192.168.56.101”。


2

如果您需要访问因使用DHCP而获得不同IP的来宾,我建议通过其主机名进行访问。但是,当主机是Windows时,通过主机名访问可能需要其他工具。

以下文本是从我自己在superuser.com 的答案中复制的。

我建议您使用多播DNS来解决此问题。

Ubuntu默认通过Avahi使用它。

Windows主机需要一个Avahi客户端才能发现其他Avahi服务。如果您的主机已经使用了某些Apple软件,则可能已经通过一项名为Bonjour的服务在其中了。但是,如果尚未安装,则可以在此处下载Bonjour的小版本:Bonjour Print Services。安装后,您应该可以通过.local访问您的访客。

注意:默认情况下,mDNS系统似乎使用.local后缀。因此,如果您的主机名是“ dev.myapp.com”,那么实际的主机名将是“ dev.myapp.com.local”。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.