我的主机操作系统是 Ubuntu 12.04,我在那里运行 LAMP 堆栈。我在 Virtual Box 中运行了几个 Windows 虚拟机(XP 和 Windows7),因此我可以测试 IE6、IE7 等。
我经常将这台笔记本电脑在几个无线网络之间移动,有时我没有互联网连接。我暂停并保存虚拟机执行状态。无论如何,我希望虚拟机能够访问我在 Ubuntu 上本地托管的站点。虚拟机不需要定期访问互联网。在主机上,我可以将浏览器指向 localhost 或 apache 正在服务的任何子目录并查看我已经设置的页面。最佳配置是什么?
我应该使用 Bridged 还是 NAT 虚拟适配器?客户机应该使用静态 IP 还是 DHCP?我也考虑过在客户机和主机之间使用临时网络,但我认为这将要求主机断开与任何其他网络(具有互联网访问权限)的连接。
答案1
使用 NAT 设置。然后,您应该会得到一个虚拟网络,其中所有虚拟机和主机都有一个 NIC 连接在一起。主机也会转发到更广泛的互联网,尽管您不需要这样做。它应该可以透明地处理来来去去的连接,除非其他软件破坏了它(如果您使用它,NetworkManager 有时会做奇怪的事情)。
设置 Apache 仅监听虚拟网卡(或者它的地址。我忘了 Apache 是怎样监听的了),并确保启动了 Apache后设置网络。大多数设置将使主机 NIC 的地址处于静态,并在最后一组中具有较低的数字。客户端可以使用 DHCP 也可以不使用,无论哪种设置方式更容易,这都无关紧要(您不希望您创建的网站仅适用于特定 IP,对吗?)。
将主机的地址粘贴在/etc/hosts
客户机的文件中,这样您就可以使用域名访问服务器,而无需运行或注册 DNS 服务器。
编辑:
假设您使用标记的 VirtualBox,您可能需要使用“仅主机”设置,因为它所做的 NAT 设置仅支持每个网络一个客户端(至少看起来是这样。VmWare 以相同的方式制作两者,但跳过仅主机的转发。如果您为自己设置网络,情况也是如此。)。
File在-> Preferences->中创建网络Network,选择主机地址并设置 DHCP。为所有客户机选择相同的网络。好处。
ip addr
当您在 shell(可能名为 )中运行时,主机 NIC 将显示出来vboxnet0
,Apache 即可开始监听。iptables
如果您决定要从虚拟机访问互联网,您还可以设置转发。