Share!

You'll not be able to directly access your guest virtual machine in Oracle's Virtualbox if it's under NAT network.

You'll have to first configure port forwarding on Virtualbox to access your virtual machines from your host machine via protocols such as SSH or RDP.

Tutorial video:


Configure port forwarding in VirtualBox:

  1. Go to Virtualbox's main interface and make sure the virtual machine that you want to configure is powered off.
  2. Select your virtual machine and click Settings icon on the top toolbar. Alternatively, right click on the virtual machine and click Settings.
  3. Click on the Network tab in Settings main interface.
  4. Look for and click on Advanced text at the bottom of the window.
  5. Click on Port Forwarding button.
  6. Click on the + icon on the upper right to add new port forwarding rule in Port Forwarding's main interface.
  7. Some of the fields are automatically filled up as the followings.
  8. Fill in the fields accordingly.

    In this example, port 2202 in the host machine will forward to port 22 of the guest machine whereby 10.0.2.15 is the default IP for guest VM under NAT network.

    Leaving the Host IP field blank will default to 127.0.0.1 and Guest IP defaults to whatever the IP address is assigned to the guest VM.

  9. Test the forwarding rule.
    user@host:~ $ ssh -p2222 user@127.0.0.1
    Warning: Permanently added '[127.0.0.1]:2222' (ECDSA) to the list of known hosts.
    user@127.0.0.1's password:
    Welcome to Ubuntu 18.04 LTS (GNU/Linux 4.15.0-20-generic x86_64)
    
     * Documentation:  https://help.ubuntu.com
     * Management:     https://landscape.canonical.com
     * Support:        https://ubuntu.com/advantage
    
      System information as of Wed Sep  5 16:52:59 +08 2018
    
      System load:  0.0               Processes:             91
      Usage of /:   18.8% of 8.80GB   Users logged in:       1
      Memory usage: 6%                IP address for enp0s3: 10.0.2.15
      Swap usage:   0%
    
    
    138 packages can be updated.
    72 updates are security updates.
    
    
    Last login: Wed Sep  5 16:47:16 2018 from 10.0.2.2
    To run a command as administrator (user "root"), use "sudo <command>".
    See "man sudo_root" for details.
    
    user@host:~$

    The above example uses SSH as an example and SSH by default runs on port 22. In this case the host's port 2222 forwards to the guest's port 22.