STAN SCHWERTLY MAY 9, 2012 ARTICLES 3 COMMENTS
Doesn‘t allow forwarding a range of ports through the UI
I recently had to forward a range of ports to a VirtualBox instance. The VirtualBox GUI doesn’t provide a method for forwarding a range of ports. The VirtualBox Manual describes a way for adding the rule via the command-line:
VBoxManage modifyvm "VM name" --natpf1 "guestssh,tcp,,2222,,22"
This forwards any traffic arriving on port 2222 to port 22 on the virtual instance. We can use this to create a short bash loop. In the example below, we’re forwarding ports 2300-2400 to ports 2300-2400 on the virtual instance (both TCP and UDP):
for i in {2300..2400}; do
VBoxManage modifyvm "windows" --natpf1 "tcp-port$i,tcp,,$i,,$i";
VBoxManage modifyvm "windows" --natpf1 "udp-port$i,udp,,$i,,$i";
done
You can verify this by going back into the VirtualBox port forwarding page and seeing the newly configured ports. It’s just as easy to delete them:
for i in {2300..2400}; do
VBoxManage modifyvm "windows" --natpf1 delete "tcp-port$i";
VBoxManage modifyvm "windows" --natpf1 delete "udp-port$i";
done
This should suffice until the capability is added to the VirtualBox UI.