Pokud pro své webové aplikace používáte server v systému spuštěném ve VirtualBoxu, určitě narazíte na problém, jak z hostitelského systému přistupovat k danému serveru. Řešením je přesměrování portů pomocí VBoxManage. Pro správnou funkčnost je potřeba spustit následující tři příkazy (v případě linuxového hostitelského systému):

VBoxManage setextradata "nazev virtualniho stroje" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/unikatni nazev nastaveni/Protocol" TCP

VBoxManage setextradata "nazev virtualniho stroje" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/unikatni nazev nastaveni/GuestPort" 80

VBoxManage setextradata "nazev virtualniho stroje" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/unikatni nazev nastaveni/HostPort" 8008

kde:

  • nazev virtualniho stroje je název uvedený při vytváření virtuálního stroje
  • unikatni nazev nastaveni je označení dané sady příkazů, například „http“
  • HostPort je port na hostitelském systému, který bude přesměrován do stroje ve VirtualBoxu
  • GuestPort je port v hostovaném systému

Port 8008 jsem u hostitelského systému použil kvůli možným konfliktům s lokálními servery (tedy servery na hostitelském systému). Můžete ovšem použít jakýkoliv jiný volný port.

Pokud pro hostitelský systém používáte Windows, bude změna u všech příkazů pouze v přidání koncovky .exe. Program VBoxManage.exe by měl být umístěn v C:\Program Files\Sun\VirtualBox.

Po provedení zmíněných příkazů doporučuji vypnout hostovaný systém a restartovat celý VirtualBox. Poslední problém by mohl být ve Firewallech. Je tedy potřeba povolit použité porty. A to jak v hostitelském, tak i hostovaném systému.

Pokud nyní v hostitelském systému zadáte „localhost:8008″, měl by se vám zobrazit server v hostovaném systému.