VMWare fusion: connecting to host's web server from guest
Asked Answered
E

4

44

I am a web developer and my development platform is Mac. I have installed a copy of Windows XP in VMWare fusion for testing purposes and using IE for previwing my websites. I have Apache running on my Mac with several subdomains, like test.localhost etc.

How can I access the webserver on host OS from the guest OS?

Thank you in advance.

Ethic answered 13/7, 2010 at 7:32 Comment(1)
None of the solutions below worked for me... until I bound my running application to 0.0.0.0 rather than directly to localhost, wasted way too much time on this one :(Halimeda
P
54

VMWare Fusion registers an IP address on your Mac and you can use this to point to the host from the virtual machine. You can find it with ifconfig vmnet8. Mine's 192.168.36.1, yours might be the same.

If you're using apache virtual hosts and you try to get http from this address on your virtual machine, it will probably display the default apache page. You'll need to map the domains on your windows host:

Open C:\WINDOWS\system32\drivers\etc\hosts in Notepad and add your hostnames, 1 per line:

192.168.36.1    test.localhost

Then, when you put http://test.localhost/ in IE, it will route to your Mac's apache virtual host.

Pregnant answered 1/10, 2010 at 20:33 Comment(2)
I want to give this answer a hug. Thanks!Anklet
this is assuming your process is running on port 80? How would I connect to a different port (without running a reverse proxy)?Avenge
M
61

Using Fusion 6.0.2 on OS X 10.9 Mavericks

In the host system (Mac)

  1. turn off your virtual machine

  2. open the "Virtual Machine | Network Adapter | Network Adapter Settings..." menu

  3. in the "Bridget Networking" section choose "Autodetect":

Network Adapater

  1. turn on your virtual machine

In the guest system (Win7)

  1. right click on the Notepad application, then select "Run as administrator":

Run Notepad as Administrator

when Win7 asks: "Do you want to allow the following program to make changes to this computer?" click on the "Yes" button

  1. navigate to: "Computer | Local disk (C:) | Windows | System32 | drivers | etc"

  2. select "All files" in the drop down menu on the right of the "file name:" field

  3. double click the "hosts" file

In the host system (Mac)

  1. open your system preferences and select "Network"; in your connected interface look for the Mac IP:

Mac Network IP Address

192.168.1.106 in the example

In the guest system (Win7)

  1. in your notepad window enter the Mac IP followed by the sites you want to reach in your host (Mac) system:

hosts file in VM

in the example I configured two sites: localhost and caeb.leo

  1. open the browser and you will be able to see the sites hosted on your host system:

Example

Hope it helps!

Ministrant answered 6/11, 2013 at 22:34 Comment(4)
I wish I could upvote this the 20 or 30 or more times it deserves. :)Bridgeboard
Yes! We gotta bump this answer up. The accepted answer did not work for me.Carlson
This works with High Sierra, VM Ware Fusion 10 and Windows 10. On my host, I'm running MAMP Pro 4.2.1Hollerman
DNS cache link is broken. Steps: Make sure you run CMD As Administrator, then run ipconfig /flushdnsOutgrowth
P
54

VMWare Fusion registers an IP address on your Mac and you can use this to point to the host from the virtual machine. You can find it with ifconfig vmnet8. Mine's 192.168.36.1, yours might be the same.

If you're using apache virtual hosts and you try to get http from this address on your virtual machine, it will probably display the default apache page. You'll need to map the domains on your windows host:

Open C:\WINDOWS\system32\drivers\etc\hosts in Notepad and add your hostnames, 1 per line:

192.168.36.1    test.localhost

Then, when you put http://test.localhost/ in IE, it will route to your Mac's apache virtual host.

Pregnant answered 1/10, 2010 at 20:33 Comment(2)
I want to give this answer a hug. Thanks!Anklet
this is assuming your process is running on port 80? How would I connect to a different port (without running a reverse proxy)?Avenge
V
15

Andrew's answer, while correct, is missing a significant portion, namely that vmnet8 is only used when the guest OS is set to use the Bridged network option.

If your guest OS is using the NAT network option, as seen in this Windows host example, you would need to use vmnet1 instead.

enter image description here

In this case, the IP of vmnet1 192.168.119.1 allows access to the host webserver, while the IP of vmnet8 leads nowhere.

enter image description here

Vaquero answered 9/7, 2015 at 8:0 Comment(0)
V
2

note, I provide this answer for those who, like me, have the same question as the title but not the exact same specifics of running Apache as a raw local installation

double note, this answer is a mix of Andrew and Camaleo's answer since neither worked in my set up (not pointing to Mac's ip and Bridged Networking's "Autodetect" wasn't working for some reason?) , not sure if the inclusion of Docker Machine causes the hiccup

If you're setup is like so:

  • (Host) Mac (example ip 192.168.1.249)
    • (Guest) Docker Machine (example ip 192.168.99.102)
      • Apache (port 80)
    • VMware Fusion 10
      • (Guest) Windows 10 (example ip 192.168.68.142)

Step 1

From within Windows 10 VM open Notepad as Administrator (right click notepad for the option). Navigate to C:\Windows\System32\drivers\etc and instead of Text Documents(*.txt) select All Files. Open the hosts file and add a hosts entry for your Docker Machine's IP(via docker-machine ls). Per our above example setup, the line would look like so:

192.168.99.102  myapp.test  # or some other fitting name

Save changes.

Step 2

Note: No need to stop or restart your virtual machine in VMware Fusion 10 when making network changes.

From VMware Fusion Menus select Virtual Machine / Network Adapter / Network Adapter Settings. Choose Share with my Mac.

if "Share with my Mac" is already selected, select a different network adapter option (like Bridged Network Automatic) and then re-select "Share with my Mac" to ensure host file changes are taken

Step 3

Test changes are in place from within Windows VM by pinging the desired address (e.g "myapp.test" as shown above) or by opening Edge/Chrome checking if the webpage loads

note, using a domain name that ends in .test is recommended or Chrome may still have issues with HSTS errors

Vitriform answered 27/2, 2018 at 13:0 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.