Port forwarding with VirtualBox

Thought I’d share this little tip for anyone running VirtualBox (and that should be everyone….if you’re not….you know who you are….)

Setting up port forwarding for those who aren’t familiar with it can be a little confusing.
For those who don’t know… http://en.wikipedia.org/wiki/Port_forwarding (cause Wikipedia is the single source of truth for EVERYTHING!)

In VBox it is pretty easy…

I’ve tested this on my Mac but I’m pretty sure it would work with Windows as well

From terminal, with the VBox app running but with your virtual machine powered off issue this command
[sourcecode language=”bash”]

export VBOXName=DemoDB
VBoxManage modifyvm $VBOXName –natpf1 SSH,tcp,,2222,,22

[/sourcecode]

The above calls the VBoxManage tool with the modifyvm switch.
The name of my virtual machine is DemoDB (you put in your guest vm name…which can be found from by looking in the Virutal Box Manager screen)
I pass the NAT network device, the name of the port forward title (SSH), the protocol, the host IP (empty), the host port to listen on, the guest IP (empty) and the guest port to forward

You can use this for any port on the guest that you would like to forward to the host like this…

[sourcecode language=”bash”]
VBoxManage modifyvm DemoDB –natpf1 DBControlORCL,tcp,,1158,,1158
[/sourcecode]

– or –
[sourcecode language=”bash”]
VBoxManage modifyvm DemoDB –natpf1 FTP,tcp,,2121,,21
[/sourcecode]

– or –
[sourcecode language=”bash”]
VBoxManage modifyvm DemoDB –natpf1 sql,tcp,,1521,,1521
[/sourcecode]

To see the port forwarding you’ve set up just query VBoxManage again

[sourcecode language=”bash”]

tardis:Desktop matt$ VBoxManage showvminfo DemoDB | grep NIC
NIC 1: MAC: 080027BD68CA, Attachment: NAT, Cable connected: on, Trace: off (file: none), Type: Am79C973, 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 = DBControlOrcl, protocol = tcp, host ip = , host port = 1158, guest ip = , guest port = 1158
NIC 1 Rule(1): name = FTP, protocol = tcp, host ip = , host port = 2121, guest ip = , guest port = 21
NIC 1 Rule(2): name = SSH, protocol = tcp, host ip = , host port = 2222, guest ip = , guest port = 22
NIC 1 Rule(3): name = sql, protocol = tcp, host ip = , host port = 1521, guest ip = , guest port = 1521
[/sourcecode]

To connect via ssh to you guest VM just do this…as tested in a Mac but would work with Linux….and maybe Cygwin(?)
[sourcecode language=”bash”]

ssh oracle@localhost -p 2222

[/sourcecode]

To hit the Database Control from your browser du jour do this
https://localhost:1158/em/console

I’ve tested this while connected with VPN and it works!!!!

Hope this helps!!!

2 Comments

Leave a Reply

Discover more from OraMatt: YABAOracle

Subscribe now to keep reading and get access to the full archive.

Continue reading