I normally like to use a Bridged connection when I use a virtual machine with VirtualBox, but sometimes I need to use NAT networking. Using NAT makes it a bit harder to interact with the virtual machine if the virtual machine is running any servers (like an OpenSSH server, and HTTP server, etc).
I recently created an Ubuntu server with NAT networking (under a Windows host) and wanted to connect to the server with Putty. The setup is a little tricky, but the VirtualBox manual was a huge help.
In this example, I am going to map port 2222 on the host system to port 22 (the standard port for SSH) on the guest system.
EDIT: I forgot to mention how to verify that your settings were successful:
In the same command window, enter the following command:
VBoxManage.exe showvminfo "My VM name" | grep NIC
The output should look something like this:
NIC 1: MAC: 0800274DB294, Attachment: NAT, Cable connected: on, Trace: off (file: none), Type: 82540EM, Reported speed: 0 Mbps, Boot priority: 0
NIC 1 Settings: MTU: 0, Socket( send: 64, receive: 64), TCP Window( send:64, receive: 64)
NIC 1 Rule(0): name = guestssh, protocol = tcp, host ip = , host port = 2222, guest ip = , guest port = 22
NIC 2: disabled
NIC 3: disabled
NIC 4: disabled
NIC 5: disabled
NIC 6: disabled
NIC 7: disabled
NIC 8: disabled
(Note the rule that was added is highlighted)
I recently created an Ubuntu server with NAT networking (under a Windows host) and wanted to connect to the server with Putty. The setup is a little tricky, but the VirtualBox manual was a huge help.
In this example, I am going to map port 2222 on the host system to port 22 (the standard port for SSH) on the guest system.
- On the host system (Windows) open a command prompt
- (Start Menu, "Run", enter cmd in the box and hit "OK")
- Browse to the location of the VirtualBox executable
- For example: cd "C:\Program Files\Oracle\VirtualBox"
- Enter the following command:
- VBoxManage.exe modifyvm "My VM name" --natpf1 "guestssh,tcp,,2222,,22"
- (Make sure to change "My VM name" to the actual name of your VM that you are modifying
- If the virtual machine is running, shut it down.
- Shut down the VirtualBox gui if it is running
- Start your virtual machine
- Open putty, and connect to localhost at port 2222 (this will get forwarded to port 22 on the guest)
- You should be in business!
EDIT: I forgot to mention how to verify that your settings were successful:
In the same command window, enter the following command:
VBoxManage.exe showvminfo "My VM name" | grep NIC
The output should look something like this:
NIC 1: MAC: 0800274DB294, Attachment: NAT, Cable connected: on, Trace: off (file: none), Type: 82540EM, Reported speed: 0 Mbps, Boot priority: 0
NIC 1 Settings: MTU: 0, Socket( send: 64, receive: 64), TCP Window( send:64, receive: 64)
NIC 1 Rule(0): name = guestssh, protocol = tcp, host ip = , host port = 2222, guest ip = , guest port = 22
NIC 2: disabled
NIC 3: disabled
NIC 4: disabled
NIC 5: disabled
NIC 6: disabled
NIC 7: disabled
NIC 8: disabled
(Note the rule that was added is highlighted)
It worked perfectly in my environment!
ReplyDeleteThanks for the useful information.
André
Thank you. This command ;
ReplyDeleteVBoxManage.exe modifyvm "lolo" --natpf1 "rule1,tcp,,2222,,80"
worked perfectly for me. I modified it to forward to the apache server I'm running on the VM.