VirtualBox Host-Only Static IP
My typical setup for a development box in VirtualBox uses two NICs. The first uses NAT to allow the box to communicate with the outside world through my host computer’s network connection. (NAT is the default, so shouldn't require any setup.) The second is a "host-only" connection that allows my host and guest to interact.
To create a host-only connection in VirtualBox, start by opening the preferences in VirtualBox. Go to the "Network" tab, and addd a Host-only Network. Modify the host-only network, and disable DHCP. Make a note of the IP address. (Feel free to set the IP address as well, if you like.)
Next, assign this host-only adapter to the virtual machine. Select the VM and press "Settings". Go to the "Network" tab, and select "Adpater 2". Enable the adapter, set it to a "Host-only Adapter", and select the adpater you created above.
Temporary
To get the static IP address working temporarily, access the termainal on the client, and enter the following to assign a static IP to eth1. (I'm assuming 192.168.56.101 because that's VirtualBox's default. Make sure it matches the IP for your host-only adapter.)
# On GUEST: Temporarily assign a static IP to eth1
ifconfig eth1 192.168.56.101 netmask 255.255.255.0 up
Persistent
The last command should work until you have to restart the virtual machine. To make the change persistent, you'll need to modify /etc/network/interfaces
# On GUEST: Modify the configuration file
sudo nano /etc/network/interfaces
Add the following to configure eth1 to use a static IP address and come up when the system starts.
# The host-only network interface
auto eth1
iface eth1 inet static
address 192.168.56.101
netmask 255.255.255.0
network 192.168.56.0
broadcast 192.168.56.255
Accessing the Guest from the Host
Finally, you'll probably want to add some names to your host machine's /etc/hosts file. Make sure to add each hostname you will use on your guest.
# On HOST: edit /etc/hosts
sudo nano /etc/hosts
Add a line that starts with the static IP address for the guest, followered by whitespace, then each of the hostnames that should point to your guest.
# Inside /etc/hosts on your HOST
192.168.56.101 myguest.home.local www.mycoolsite.com anyother.fakesite.com
Source: http://christophermaier.name/blog/2010/09/01/host-only-networking-with-virtualbox
@sibagithub @chaitanya9186 -- I'm using VirtualBox 5.2.4 on Win10 x64 (with Ubuntu 16.04 LTS x64 ISO running inside the VM), and I found the
host-only network
setting from the main VirtualBox interface (with no VM open)File->Host Network Manager->Create
. Although, after I created one, I realized I didn't even see the one already sitting there (VirtualBox Host-Only Ethernet Adapter #2
). Upon realizing that, and it was already assigned to my Host-only Adapter (in Settings->Network), I removed the new one I had just created, and moved on to the "make it permanent" part.Unfortunately, the specifics of this guide didn't get me through, so I found and successfully used instructions from: https://www.tecmint.com/network-between-guest-vm-and-host-virtualbox/. Although I did not, however, go through the NAT part (all I needed was dev access from the host).
With just my settings below, I was able to hit Apache from my Win10 host at the
http://192.168.56.5
address, and I could still access my Samba share (although slightly off-topic, I've also provided those settings below).