VirtualBox command-line - setting up port forwarding

I know how to configure NAT-based port forwarding using the VirtualBox graphical interface (as in the example below).

How can I do the same via the command line?

Port forwarding via VirtualBox GUI


If the machine is powered off, you may use the modifyvm command:

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

If it's powered on, controlvm.


On VirtualBox 6+, --natpf1 is not supported. @Lyndsy Simon's answer has just one change (--natpf1 is just changed to simply natpf1). Changed command looks like this:

VBoxManage controlvm "VM name" natpf1 "guestssh,tcp,,2222,,22" 

Obviously I am making a change in the running VM so I used controlvm. If the VM is power off mode, use modifyvm instead.