VirtualBox: give Host-Only access to internet
This post describes a simple trick for VirtualBox to give host-only virtual machines access the internet or access your host from the guest using NAT. The title could also have been: “Easily access your NAT configured virtual machine.”
The original problem or requirements:
- The host should be able to browser the webserver on the Guest (the virtual machine)
- The guest should be able to access the outside world (intranet/internet)
- Use fixed IP address, no problems with DHCP et al.
Yes, you can use port-forwarding using NAT network interface for the virtual machine. But configuring this is just way to complicate and error prone. A few googles more, and I couldn’t find anything good.
The solution I came up with: configure 2 network interfaces for your Virtual Box host. Simple, isn’t it?
First, we need to make a new network in VirtualBox. You can do this in the GUI preference, which is a bit platform specific, but it’s not easy to miss.
Create a new network in VirtualBox, named like vboxnet2 with following settings (change to suit your needs):
- IPv4 Address: 10.88.12.0
- IPv4 Network Mask: 255.0.0.0
- Leave DHCP disabled if you don’t need it. Fixed IP address are just more predictable
Setup your virtual machine using 2 network adapters. The order doesn’t really matter, but you’ll need one NAT and one Host-Only:
- NAT (not much to configure)
- Host-Only using the network you created earlier, for example, vboxnet2
Boot your virtual machine, and configure the network interfaces in your guest OS (same order as previous point):
- First interface using NAT, which you can use with the internal DHCP
- Second interface using Host-Only will use a fixed IP address and netmask which you configured earlier for the vboxnet2 VirtualBox network. For example, 10.88.12.4.
Guest has access to outside, and host can access services running on guest. This is handy when you have a demo or develop using a service running in the virtual machine, and the virtual machine needs to access the outside world.
(If the above has been posted somewhere else: I was either blind, or it was not visible or indexed enough.)

Facebook
LinkedIn
Twitter
No one commented here, but this is really good article. I too was not able to find solution and I did not like port forwarding either, so this is exactly what I needed. Thanks very much!
This is great, I was trying to figure this out and no one was able to explain as simple as you did. Thanks!
Check this out:)
http://jackal777.wordpress.com/2012/02/13/internet-access-in-virtualbox-host-only-networking/
Thanks, is what i want. :) good luck in your projects
it works :-)
Thanks a lot.
Thanks for great solution. Although I’ve got one trouble on a guest system. When configuring two network adapters the guest system gets two default routes. In my case I’ve got default route to Host-only adapter going first and for NAT adapter going after.
route -n showed something like this:
default 10.88.12.0 – which is HOST-only
default 10.0.2.2 – which is NAT
Guest system couldn’t ping Internet. After deleting first default route – everything wen well.
Great post ever!
I got my solution from this link:
http://www.youtube.com/watch?v=zR_TwPaWw8k
Easy.
Cheers
it’s quite horrible that I did not even think of this…
Thank you dude!!
Thank you so much! It couldn’t have been any easier than this and exactly what I wanted!
I did it with a Debian Guest and set the NAT as the default during installation. After installation I changed my /etc/network/interfaces file:
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet dhcp
# The seconday network interface
auto eth1
iface eth1 inet static
address 10.88.12.4
netmast 255.0.0.0
It does complain when restarting the network that it can’t bring up the network, but it does work when you tried to access the Guest’s web server. You might have to do an additional ‘ifconfig eth1 up’ to get it going, but it usually works without that.
@Don
Perhaps it is because you spelled ‘netmask’ incorrectly (‘netmast’)?
Thank guys :)
Hey.
Thanks for that!!! The idea is simple and working perfectly. Hit this wall yesterday and couldn’t figure it out how without setting up local router to provide Internet within Host-Only network. it has to be set up on every single host within your Host-Only network but still, saves a lot of time.
Cheers.
It’s so easy! Thank you!
Wow, exactly what I wanted to do. Thanks so much!
Awesome… this saves me a lot of time :)