Can't ping guest OS in VirtualBox, but guests can ping host

Solution 1:

I was surprised to find the answer that finally worked for me in an ubuntu forum:

Depending on the version of Windows you used in your VirtualBox, in order to be able to get a reply to your pings you probably need to create at least one folder share on the Windows machine. In Windows XP for example, once you have at least one share set up, the machine will respond to pings. But if no shares are set, no pings will be returned.

(Have a look at the full answer, here: http://ubuntuforums.org/showthread.php?t=2028309)

So basically what I did was:

  • Use Bridged Mode instead of NAT for the VM in the host VirtualBox GUI
  • Shutdown the firewall in the windows host
  • Setup some foo shared folder in the VM itself (c:\foo or similar)

EDIT: to clarify, my setup is Windows7 Host & Windows7 Guest.

That's that, hope it helps someone.

Solution 2:

  1. If you want your VM to be accessible on network like a standalone machine (I guess that is what you trying to do), check following

    • In VirtualBox GUI interface, under network setting of each VM, select bridge mode, not NAT.

    • Within each VM, either setup static IP or dhcp.

  2. For firewall blocking issue, Check out my answer for another question here

    On hosting machine, in file explorer, go to

    Control Panel\All Control Panel Items\Windows Firewall\Allowed apps

    The above path is for windows 8, other windows version may differ slightly.

    Look for application name (eg. Virtual Box is "Oracle VM VirtualBox"). There are 3 check boxes for the application, check mark them all, restart your app and it should work.

Solution 3:

Tested on two Ubuntu 16.06 guest boxes

you will need to use "ifconfig -a" to list all available network interfaces - at first you run just an "ifconfig" (without the -a flag), memorize network interfaces that it shows you and then run it again with the -a flag, and find that extra interface. In my case by running just a "ifconfig" I got two interfaces - “enp0s3”, “lo” and when running with “-a” flag I got an extra interface - “enp0s8”. After we got a name of that extra interface name you edit /etc/network/interfaces file and append these two lines there:

auto enp0s8 iface enp0s8 inet dhcp

After that change you reboot the machine and now when running “ifconfig” should get a host-only adapter’s IP that you can use to connect from you host machine.

Both of the guest os have different ips. I am able to ping host from both guests, guest to guest and guests to host.

Source: answer by sergeil