使用虚拟 Windows 机浏览本地网站:可能吗?

Aro*_*eel 5 virtualization windows windows-7 hosts

在我们的网页开发过程中,我们经常需要在多个浏览器中测试我们的应用程序和网站的布局。由于几乎不可能独立运行所有这些浏览器,而且IETester等应用程序无法完美运行并且无法在 Windows 7 上运行,因此能够为这些浏览器运行虚拟机以拥有“本机”经验。

目前,我正在尝试使用运行IE7虚拟 Windows XP。我自己的设置是Windows 7 RC1 64bit。我们的大多数网站和应用程序都是使用 Windows 主机文件中的映射在本地开发的。

问题:

从虚拟机中导航到http://mywebsite.localhost 时,将查询虚拟机的主机文件,而不是虚拟机顶部的实际操作系统。此外,当添加完全相同的映射时,浏览器(显然)仍然导航到“虚拟本地主机”。

  • 有没有办法让虚拟机查询 Windows 7 主机文件?
  • 有没有办法让虚拟机的本地主机与实际的 Windows 7 本地主机相同?

Ber*_*aug 4

请在开始之前阅读下面的全部说明,并检查您需要执行哪些操作才能撤消遵循这些说明。这是凭记忆写的,我现在用的是Mac。

我假设您使用 VMware,并且您的 VM [虚拟机的常用缩写] 处于 NAT 网络模式。

按照通常的 VMware 说法,我使用术语“主机系统”来表示运行 VMware 的操作系统安装,使用“来宾系统”来表示在 VMware 内部运行的系统。

第一部分:查找 VMware 模拟的 NAT 网络(通常为网络 8)上主机系统的 IP 地址:

在主机上打开cmd.exe并输入:

ipconfig /全部

记下 VMware NAT 接口的 IP 地址

第二部分:使主机文件统一

更改主机系统上的主机文件 %systemroot%\System32\Drivers\Etc\hosts,以便它对本地网站使用 VMware NAT 适配器的 IP 地址,而不是 127.0.0.1。

确保 Web 服务器侦听该 IP 地址。

第三部分:使主机文件可用

在主机系统上,在命令行中:

rmtshare \\name-of-host-system\hostspath=%systemroot%\System32\Drivers\Etc /grant Everyone:r
Run Code Online (Sandbox Code Playgroud)

确保该路径中没有敏感信息。

第四部分:获取主机文件

在来宾系统上创建一个批处理文件 c:\hostsfile\vm_hosts_copy.bat,其中包含以下内容:

copy \\name-of-host-system\hostspath\hosts %systemroot%\System32\Drivers\Etc
Run Code Online (Sandbox Code Playgroud)

将其导入到您的注册表中:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]
"CopyHostsFile"="c:\hostsfile\cm_hosts_copy.bat"
Run Code Online (Sandbox Code Playgroud)

如果完成所有这些,您应该能够在主机系统和所有来宾系统上使用相同的主机文件。来宾系统上的主机文件将在每次重新启动时更新。您只需在主机系统上的常用位置 %systemroot%\System32\Drivers\Etc\hosts 处更改它。

您可以在所有 Windows VM 上使用它,并在大多数 Unix 系统上使用带有 smbclient 和 /etc/rc.local 的类似脚本进行多平台测试。