How to access my local server on my VirtualBox virtual machine?

9

5

Here's my setup:

  • I have a local server running on my machine (Mac OS, Snow Leopard). I can access it via my browser by doing

    localhost:3000

  • I have a virtual machine using Virtual Box running a windows XP. If I try to access using localhost:3000, it fails. Same thing if I use the ip of the Mac machine.

  • The virtual machine has access to the internet.

How can I access my local server in my virtual machine?

marcgg

Posted 2009-11-24T12:28:37.080

Reputation: 292

1

I know this is and old thread, but here is the answer http://stackoverflow.com/questions/1261975/addressing-localhost-from-a-virtualbox-virtual-machine

– deiga – 2012-08-23T04:57:58.543

if you try to access "localhost" on the virtual machine, it tries to connect to itself, instead of to the macosx server. I think the answers up to now missed that point – brandstaetter – 2009-11-24T13:46:43.673

Answers

15

How do you have your network setup in the Virtual Machine?

It sounds like you might have it setup using NAT. In this situation, if your host machine(Mac) has a non-routable(private) IP address such as 192.168.x.x, you will not be able to reach the host from within the virtual machine. The reason you cannot reach the host from the guest is that you are essentially setting up 2 separate private networks. Your Mac computer is on one (192.168.x.x) and your VM on another (perhaps 10.x.x.x) and you essentially have a router between them. Since routers will not route private IPs, the two networks can never communicate with each directly.

If you want your host and guest machines to be able to communicate, you will probably want to setup your VirtualBox network adapter to be attached to the "Bridged Adapter." This will share your internet connection with the virtual machine and allow your guest machine to talk to the host. In this situation you are essentially adding your VM as an additional node to the local network your Mac is already on.

heavyd

Posted 2009-11-24T12:28:37.080

Reputation: 54 755

Under "Bridged Adapter", both the host and the guest will have IP addresses under the same subnet (i.e. 192.168.x.x), correct? – kdbanman – 2015-05-13T19:09:50.637

@kdbanman, correct (assuming the host network is using DHCP), the VM will show up as another machine on the host network. – heavyd – 2015-05-13T19:12:07.087

That seems like a much more natural way to set up a VM. Why would one use a separate private network with NAT? Security? – kdbanman – 2015-05-13T19:16:35.663

1Yes, NAT provides isolation. Also, some networks will not allow just any host to connect, so using NAT can allow the VM to access network resources through the hosts' interface. Its also used as the default for this reason, its a less error prone setup, but I agree I prefer bridged in most situations. – heavyd – 2015-05-13T19:21:15.550

1

Depending on the network settings of your vm, you'll probably need to add an additional IP to the Host OS that's on the same subnet as your vm so they can communicate. Your vm probably has a 192.168.x.x address, so add a similar address to the Mac machine:

example, if the vm has 192.168.1.99 and subnet mask 255.255.255.0, you can do this to your host:

ifconfig eth0:0 192.168.1.199 netmask 255.255.255.0 up

you'll probably need to restart the adapter as well.

John T

Posted 2009-11-24T12:28:37.080

Reputation: 149 037

1

I have had the same exact problem, only I was using Windows 7 as a guest.

What I did was Start -> Run -> cmd to bring up the command line.

ipconfig to bring up connection details. Look for the address that looks like 10.x.x.x, that's your Mac.

Now, use that to connect to your local server on your Mac.

For me, it's usually something like http://10.0.2.2:80/blah

Austin Hyde

Posted 2009-11-24T12:28:37.080

Reputation: 844