Назад | Перейти на главную страницу

Перенаправление портов на виртуальную машину

Я запускаю сервер http (zope) на сервере Ubuntu 8.04, на машине Virtualbox, в коробке Ubuntu 9.04. Гостевая система обращается к сети через NAT. Как я могу перенаправить порт 80 хост-машины на HTTP-порт гостевой системы?

Вы должны включить переадресацию портов в VirtualBox. Вы можете сделать это, используя VBoxManage команда. Например:

VBoxManage setextradata VM_NAME "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/HostPort" 8888
VBoxManage setextradata VM_NAME "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/GuestPort" 80
VBoxManage setextradata VM_NAME "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/Protocol" TCP

В этом случае это откроет порт 8888 / tcp на вашем хосте (физической машине) и перенаправит его на порт 80 / tcp вашей виртуальной машины (замените VM_NAME на имя вашей виртуальной машины).

Подробнее см. "Настройка переадресации портов с NAT" в VirtualBox Руководство пользователя (раздел 6.4.1, с. 84)

Если вам нужен внешний доступ к веб-серверу, размещенному на вашей виртуальной машине, вам также потребуется создать правило переадресации портов (например, через iptables или настроив его в вашем роутере).

выяснить, какой IP-адрес имеет гостевая система (хотя ему назначен dhcp, более вероятно, что он будет иметь тот же адрес после перезагрузки; если нет, переключитесь на статический IP-адрес)

iptables -t nat -A PREROUTING -s 0/0 -d IP_HOST -p tcp --dport 80 -j DNAT --to IP_GUEST:80