52

I have a mac host, and a VirtualBox Linux guest, currently using Bridged mode.

I need to be able to easily SSH into the guest from the host. It would be nice to use a hostname, but a never-changing IP address would be fine too (currently, the IP changes with each new network I join, and the hostname has never worked).

I also need internet access from the guest.

Other machines on the network do not need access to the guest.

What is the best way to configure my VirtualBox network?

36

First, you'll have to create the vboxnet0 interface.

VirtualBox > File > Preferences > Network > Host-only Networks > Add (you will get vboxnet0)

Then, run this on the host machine. You'll see a new interface, vboxnet0, appeared.

ifconfig

Shutdown your VM and do:

VM's Settings > System > check "Enable I/O APIC."
VM's Settings > Network > Adapter 2 > host-only vboxnet0

Start VM, on guest run

ifconfig

and check ip

Check these links:

  1. https://forums.virtualbox.org/viewtopic.php?f=8&t=40076
  2. http://www.wiredrevolution.com/virtualbox/setup-ssh-access-between-virtualbox-host-and-guest-vms

There is also solution for NAT but I haven't checked it.

Configuring port forwarding with NAT in your host machine

VBoxManage modifyvm "VM name" --natpf1 "guestssh,tcp,,2222,,22"

connect to your linux via the port 2222 of your host machine

ssh -l -p 2222 localhost

For host-only networking with static ip check this:

https://stackoverflow.com/questions/5906441/how-to-ssh-to-a-virtualbox-guest-externally-through-a-host/27152153#27152153

It's for Solaris 10 and Ubuntu 16.04 but should be easy to adapt.

  • 2
    Thanks, I ended up enabling the VirtualBox port forwarding and am able to connect via ssh localhost -p 7022. – Thomas Hunter May 13 '12 at 22:39
  • Nice, the port forwarding worked like charm. Although I did the config in the Virtualbox GUI rather than with VBoxManage. There you need to set your host and guest IP adress as well, which should be 127.0.0.1 and 10.0.2.15 respectively. – Sebastian Ganslandt Nov 26 '12 at 19:09
  • Minor edit to the first sentence. It should read: VirtualBox > Settings > Network > 'Host-only Networks' > Add (you will get vboxnet0) – Steve Swinsburg Jul 8 '14 at 6:47
  • I've done all of this for the host-only setup, and when I try to ssh in from my host, it just hangs (until it times out). Is there anything else? – Chris Westin Dec 24 '15 at 0:44
36

Between two Linux machines (a 32-bit Ubuntu host and a 64-bit Ubuntu VM), I managed to get ssh working using this Port Forwarding:

enter image description here

Then from your host system run

ssh -p 5679 127.0.0.1

Substitute 5679 with the "Host Port" entered into the Port Forwarding Rules.

  • 8
    I did exactly the same, just without entering any "Host IP" and "Guest IP". – Damien Cassou Apr 14 '13 at 10:14
  • In my case, the ubuntu image did not came with ssh installed (I would have expected to). So I ran 'apt-get install openssh-server' and was able to connect with 'ssh -p 5679 localhost'. Based on the other comments, I did not put any host or guest IP. – Pierre-Antoine Jun 5 '16 at 20:09
2

If you don't want to mess around with port forwarding, you can set up a host-only adapter which appears as a host interface and then add an IP address inside that subnet in the guest.

Steps:

  • Create a host-only network in Virtualbox (GUI -> settings -> network). Type ifconfig in the host and see something like vboxnet0 with inet 192.168.50.1
  • in guest, add an IP address: ifconfig eth1 192.168.50.101 netmask 255.255.255.0 up
  • in host, execute ssh root@192.168.50.101

Further reading:

1

You might be better off configuring your virtual NIC in NAT mode if you are moving around quite a bit. Using NAT, the host (your PC) becomes the DHCP server and router for a private network which is created for your guest OSes. I'm pretty sure you can set a static address using NAT also...

However, I think the best solution is to suss out why name resolution isn't working for your guest VM :)

https://www.virtualbox.org/manual/ch06.html#network_nat

  • 2
    I setup NAT mode, and my guest is assigned the ip 10.0.2.15. However, from the host (whose IP is 192.168.1.120), I am not able to reach the guest. The guide was able to explain the different modes for me, but it didn't seem to have a solution for my problem. – Thomas Hunter May 13 '12 at 20:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.