The original problem or requirements were as follows:
- 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
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 addresses 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
- NAT (not much to configure).
- Host-Only using the network you created earlier, for example,
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
vboxnet2VirtualBox 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.)
If you like to leave a comment, but don't like to use Disqus, please send an email instead. Comments by email might end up as a FAQ here under.