我在 Windows PC 上开发了一些本地网站,在 Apache 中设置为虚拟主机,并通过 hosts 文件解析主机名(类似于 dev.example.com),因此我可以使用各种浏览器对它们进行测试。
我现在想将浏览器测试扩展到在虚拟机中运行各种操作系统的浏览器,并希望能够从虚拟机解析 dev.example.com。目前这些是 VMWare Server 和 VirtualPC 的混合体。
我知道我可以在任何 Windows VM 上编辑主机文件,但这有点麻烦,我想要一个独立于各个 VM 的解决方案。
我认为我需要的是名称服务器,但最简单的方法是什么?我希望所有东西都在一台机器上独立运行。
我想我可以解决防火墙和 Apache 权限问题。
答案1
主机文件是迄今为止执行您想要的操作的最简单的方法。
如果您不想使用它们,那么请考虑创建另一个虚拟机并安装带有 DNS 服务器的 Linux(我实在不推荐任何发行版)或 Windows Server 2003(或 2008)。
在 Windows 2003/2008 中,您可以安装DHCP Server
并DNS Server
为每个所需的域创建一个新区域 - 并输入主机的 IP。(在 Linux 中,您显然可以做同样的事情,但我不太推荐 - 过去,我曾使用过Ubuntu服务器 +网页管理要做这项艰苦的工作,如果你擅长 Linux,你可能会发现它很容易 - 但我发现使用 Windows Server 要简单得多。)
您需要在客户端计算机上执行的操作是将 IP 设置为自动,并确保 DHCP 服务器是唯一可访问的服务器,或者跳过 DHCP,只需将 DNS 服务器设置为虚拟机的 IP。如果您还在 DNS 服务器上设置了转发器(或仅使用 Root Hints),它应该能够完全解析互联网上的所有站点以及为您想要的站点提供服务。
关于这一点我可以说的太多了,我几乎没有写答案,因为我认为我不会触及我需要的所有要点——如果你想要澄清或了解有关任何要点的更多信息,请随时询问。
答案2
在我的家庭网络上,我有一台 Windows XP 主机,上面有一个 VirtualBox FreeBSD 客户机,带有桥接网络接口。
我正在运行路由器番茄固件网络上的每台机器(无论是真实的还是虚拟的)都会获得一个包含其主机名的静态 DHCP 条目。我在 Tomato 中设置了“使用内部缓存 DNS 转发器”选项,结果是每个 DHCP 客户端都使用 Tomato 路由器作为其 DNS 服务器,并且路由器使用静态 DHCP 主机名正确响应请求。