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

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

在 Web 开发过程中,我们经常需要在多个浏览器中测试应用程序和网站的布局。由于几乎不可能单独运行所有这些浏览器,因此诸如测试员不能完美运行且无法在 Windows 7 上运行,如果能够为这些浏览器运行虚拟机以获得“原生”体验就好了。

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

问题:

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

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

答案1

请在开始之前阅读下面的全部说明,并检查按照说明撤消操作需要做什么。这是我的记忆,我现在使用的是 Mac。

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

我使用术语“主机系统”来表示运行 VMware 的操作系统安装,使用术语“客户系统”来表示在 VMware 内部运行的系统,这与 VMware 的通常用语一致。

第一部分:在VMware模拟的NAT网络(正常情况下为网络8)上找到主机系统的IP地址:

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

ipconfig /全部

记下 VMware NAT 接口的 IP 地址

第二部分:使 hosts 文件统一

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

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

第三部分:使 hosts 文件可用

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

rmtshare \\name-of-host-system\hostspath=%systemroot%\System32\Drivers\Etc /grant Everyone:r

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

第四部分:获取 hosts 文件

在客户系统上创建一个批处理文件 c:\hostsfile\vm_hosts_copy.bat,其内容如下:

copy \\name-of-host-system\hostspath\hosts %systemroot%\System32\Drivers\Etc

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

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]
"CopyHostsFile"="c:\hostsfile\cm_hosts_copy.bat"

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

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

答案2

配置虚拟机以使用桥接网络而不是 NAT(如果尚未配置)。现在虚拟机与主机位于同一网络上。

将来宾 VM 的主机文件配置为与您的工作站(VM 主机)相同。

即:
[VM HOST 的 IP] mywebsite.localhost

答案3

正确答案已存在于 Superuserhttps://superuser.com/questions/144453/virtualbox-guest-os-accessing-local-server-on-host-os- 但我在这里总结一下:

就像每台计算机引用自身的魔法地址一样,127.0.0.1客户操作系统引用其主机的魔法地址也是一样,至少在 VirtualBox 世界中是这样。我设置 VirtualBox VM 的过程是这样的:它可以访问主机操作系统本地提供的网站:localhost10.0.2.2

  1. 下载并安装 VirtualBox 和扩展包https://www.virtualbox.org/wiki/Downloads
  2. 下载并安装客户操作系统(最有可能来自 Microsoft)https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/- 截至撰写本文时,您不需要编辑任何预配置的设置(通过双击橙色立方体文件来安装 VM .ovf
  3. 安装访客添加项
  4. 更改权限并编辑 hosts 文件,C:\Windows\System32\Drivers\etc\hosts并重复你对主机操作系统所做的任何修改,将其替换127.0.0.110.0.2.2,例如,你可以添加如下行10.0.2.2 local.dev.example.com
  5. 启动 Web 浏览器并点击您在步骤 4 中屏蔽的 URL(local.dev.example.com)- 它将加载主机操作系统提供的页面

如果您不破解主机文件,您可以直接10.0.2.2在客户操作系统中使用。希望对您有所帮助!

答案4

由于您可以从虚拟机内部访问 Windows 7 文件系统,因此似乎可以设置 VM,使其在启动期间将 Windows 7 主机文件复制到 VM 的主机文件。不过,这是一个理论上的答案,而不是一个实际的答案,因为我没有可用的 Windows 7 来尝试。

相关内容