Virtualbox networking: Windows host, Debian guest

After a lot of farting around with different virtual network adapter types and use cases I finally settled on a networking configuration that works well for developing web apps inside a Debian Virtual Machine running inside Virtualbox on my Windows laptop.

The problem:

  • VM needs to be accessible by the windows host even when laptop is “offline” so I can work on the plane.
  • When laptop is “online”, VM can also access the internet
  • VM should be accessed by host via a static IP address so that dev environment settings persist beyond a reboot

The Solution:

  1. Two virtual network adapters in the VM’s network tab in Virtualbox:
    • Adapter #1: “NAT” / DHCP
    • Adapter #2: “Host-only” / Static IP

    The NAT adapter should already be set up by default when you do a fresh install of Debian in Virtualbox. It enables the VM to access the wider internet.

    Meanwhile the Host-only adapter enables the host machine to see the VM and persists even when internet connectivity drops allowing you to carry on working.

  2. Set up the Virtualbox Host-only network.

    Click File > Preferences > Network, then select “Virtualbox Host-only ethernet adapter” (or whichever host only adapter you selected in the VM’s host-only network adapter tab). Click the edit button which looks like a screwdriver. Enter an unused network in the 192.168.x.x Ip range. I’m using 213.1 because my router is on 192.168.0.1, but I could use anything in that 3rd octet except 0 I think. The netmask should be 255.255.0.0 but for some reason it still works with 255.255.255.0 – I’m still not quite sure why that is though.

    Click the “DHCP server” tab and uncheck the ‘Enable Server’ checkbox – we don’t need DHCP because we’ll be using a static IP address.

  3. Configure the networking inside the VM

    Log into the VM as root and edit /etc/network/interfaces – it should look like this:

    # The loopback network interface
    auto lo
    iface lo inet loopback

    # The NAT virtual adapter
    allow-hotplug eth0
    iface eth0 inet dhcp

    # The Host-only virtual adapter
    auto eth1
    iface eth1 inet static
    address 192.168.213.9 # this must match Virtualbox host-only network
    netmask 255.255.255.0

  4. Reset the VM and you should now be up and running

6 thoughts on “Virtualbox networking: Windows host, Debian guest

  1. Thanks for posting this article.
    If you could post about enabling networking on ArchLinux running as guest OS on virtualbox Windows host, it would be a great relief !!!
    Also, my wired internet connection on Windows is behind one of two available proxy servers with authentication, preventing multiple login of a user from the same proxy.

  2. Many thanks this really helped me……

    But for me it works only when I check the ‘Enable Server’ to ON and skip Step 3 of your Tutorial.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>