如何从主机访问 Apache(在 VirtualBox 来宾上)?

uro*_*k93 151 virtualbox apache2

我在 Ubuntu VM 上安装了 Apache。当我进入来宾并加载 Firefox 时,我可以看到当我浏览到 localhost 时 Apache 工作正常。

我想通过主机访问同一页面。我试过使用来宾的 IP 地址,但没有任何结果。

理想情况下,我很想设置我的 Windows 7(主机)来请求http://guestserver.com来宾上的 Apache 服务器。我怎样才能做到这一点?

Lek*_*eyn 165

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

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

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

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

    ifconfig | grep addr
    
    Run Code Online (Sandbox Code Playgroud)

    在下面的输出中,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
    
    Run Code Online (Sandbox Code Playgroud)
  7. 在您的 Windows 主机系统中,C:\Windows\System32\drivers\etc\hosts以管理员身份编辑并添加一行:

    192.168.56.101   guestserver.com
    
    Run Code Online (Sandbox Code Playgroud)

    如果你有一个 Ubuntu 主机系统,编辑/etc/hosts使用sudo nano /etc/hosts

  8. 利润!

  • 在 Windows 7/8 主机文件在这里:C:\Windows\System32\drivers\etc\hosts (8认同)
  • ipconfig 不是 Linux 上的命令,它是 ifconfig。你是那个意思吗? (6认同)
  • 这对于仅主机网络非常有效,我现在可以从主机的浏览器访问来宾。但是,通过桥接连接,我无法从访客访问互联网。 (3认同)
  • 启用两个网络适配器,一个 NAT 和桥接,让我能够看到和被看到。 (3认同)
  • @begueradj 上述步骤适用于桥接网络,但某些网络不允许/为您提供多个地址。在我的大学上,因此我无法使用桥接网络,在这些情况下,我会使用带有端口转发的 NAT。 (2认同)

小智 13

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

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

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

  2. 启动虚拟机 > 登录

  3. 将虚拟机的 IP 从动态更改为静态

    须藤纳米 /etc/network/interfaces

  4. 在主网络接口下,将 dhcp 一词更改为静态并输入您的新静态 IP 或注释该行并添加一个新 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
Run Code Online (Sandbox Code Playgroud)

注意我的路由器在 xxx.xxx 上工作。10 .x 而你的可能在 xxx.xxx。0 .x 或 xxx.xxx。1 .x 或其他一些。

完成此操作后,您可以在主机和来宾计算机中连接互联网,并在您的 Web 浏览器中输入该静态 IP 以检查您的 apache 服务器。


小智 10

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


小智 6

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


Pvd*_*vdL 5

如果你无法通过 ip 连接,那么在默认的 apache 安装上你不太可能成功使用 dns 名称。

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


小智 5

如果您只需要一个特定的端口(假设您正在运行像 Jetty 或 Tomcat 这样的 Web 应用程序),只需执行以下操作:

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

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