VMWare Fusion:如何从虚拟机中连接主机的Web服务器

44

我是一名网页开发人员,我的开发平台是Mac。 我在VMWare Fusion中安装了Windows XP副本进行测试,并使用IE预览我的网站。 我在Mac上运行Apache并拥有几个子域名,例如test.localhost等。

如何从客户机操作系统访问主机操作系统上的Web服务器?

提前感谢您的帮助。


2
以下的解决方案都对我没用... 直到我将我的运行应用绑定到0.0.0.0而不是直接绑定到本地主机,浪费了太多时间 :( - chrismarx
4个回答

61

在Mac OS X 10.9 Mavericks上使用Fusion 6.0.2

在宿主系统(Mac)中

  1. 关闭虚拟机

  2. 打开“虚拟机 | 网络适配器 | 网络适配器设置...”菜单

  3. 在“桥接网络”部分选择“自动检测”:

Network Adapater

  1. 打开虚拟机

在客户机系统(Win7)中

  1. 右键单击记事本应用程序,然后选择“以管理员身份运行”:

Run Notepad as Administrator

当Win7询问:“是否允许以下程序对此计算机进行更改?”时, 单击“Yes”按钮

  1. 导航到:“计算机 | 本地磁盘(C:) | Windows | system32 | drivers | etc”

  2. 在“文件名:”字段右侧的下拉菜单中选择“所有文件”

  3. 双击“hosts”文件

在宿主系统(Mac)中

  1. 打开系统偏好设置,选择“网络”; 在已连接的接口中查找Mac IP地址:

Mac Network IP Address

例如:192.168.1.106

在客户机系统(Win7)中

  1. 在记事本窗口中输入Mac IP地址,后跟您想要访问的站点名称(位于您的主机(Mac)系统上):

VM中的hosts文件

在这个例子中,我配置了两个站点:localhost和caeb.leo

  1. 打开浏览器,您将能够看到托管在主机系统上的站点:

示例

希望对您有所帮助!


我希望我能为这个点赞20次、30次或更多次。 :) - David Winiecki
是的!我们必须提高这个答案的排名。被接受的答案对我没有用。 - morgs32
这适用于High Sierra、VM Ware Fusion 10和Windows 10。在我的主机上,我正在运行MAMP Pro 4.2.1。 - Pat Gilmour
1
DNS缓存链接已损坏。步骤:确保您以管理员身份运行“CMD”,然后运行“ipconfig /flushdns”。 - mateuscb

54

VMWare Fusion在您的Mac上注册一个IP地址,您可以使用该地址从虚拟机中指向主机。您可以使用ifconfig vmnet8找到它。我的是192.168.36.1,您的可能相同。

如果您正在使用Apache虚拟主机,并尝试从虚拟机上的此地址获取HTTP,则可能会显示默认的Apache页面。您需要将域映射到Windows主机:

在记事本中打开C:\WINDOWS\system32\drivers\etc\hosts,每行添加一个主机名:

192.168.36.1    test.localhost

然后,当你在IE中输入http://test.localhost/时,它将路由到你的Mac上的Apache虚拟主机。


1
我想给这个答案一个拥抱。谢谢! - anthumchris
假设您的进程正在80端口运行,那么如何连接到不同的端口(而无需运行反向代理)? - Raskolnikov

15

安德鲁的答案是正确的,但缺少一个重要部分,即vmnet8仅在客户操作系统设置为使用桥接网络选项时才会使用。

如果您的客户操作系统正在使用NAT网络选项,如Windows主机示例所示,您需要改用vmnet1

enter image description here

在这种情况下,vmnet1的IP地址192.168.119.1允许访问主机Web服务器,而vmnet8的IP地址则无效。

enter image description here


2
< p > 注意,我提供这个答案是为了那些和我一样有同样问题但不是像我一样在本地安装Apache的人

双倍注意,这个答案是Andrew和Camaleo答案的混合体,因为它们都没有在我的设置中工作(没有指向Mac的ip和桥接网络的“自动检测”出现了问题?),不确定Docker Machine的包含是否导致了问题

如果你的设置如下:

  • (主机)Mac(示例IP 192.168.1.249)
    • (客户端)Docker Machine(示例IP 192.168.99.102)
      • Apache(端口80)
    • VMware Fusion 10
      • (客户端)Windows 10(示例IP 192.168.68.142)

步骤1

从Windows 10 VM内部以管理员身份打开Notepad(右键单击notepad选项)。导航到C:\Windows\System32\drivers\etc,而不是选择Text Documents(*.txt),选择All Files。打开hosts文件,并添加一个主机条目以获取您的Docker Machine的IP(通过docker-machine ls)。根据我们上面的示例设置,该行将如下所示:

192.168.99.102  myapp.test  # or some other fitting name

保存更改。

步骤 2

注意:在 VMware Fusion 10 中进行网络更改时,无需停止或重新启动虚拟机。

从 VMware Fusion 菜单中选择 虚拟机 / 网络适配器 / 网络适配器设置。选择 与我的 Mac 共享

如果已经选择了“与我的 Mac 共享”,请选择其他网络适配器选项(例如桥接网络自动),然后重新选择“与我的 Mac 共享”,以确保主机文件更改已生效

步骤 3

通过 ping 所需地址(例如上面显示的“myapp.test”)或打开 Edge/Chrome 检查网页是否加载来测试更改是否已生效。

注意,建议使用以 .test 结尾的域名,否则 Chrome 可能仍会出现 HSTS 错误


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接