domingo 4 de diciembre de 2011

Cómo accesar a un servidor corriendo en VirtualBox

Cuando instalamos una máquina virtual en VirtualBox tenemos acceso a internet sin problemas pero no podemos accesar desde la máquina host(la que alberga al equipo Guest o máquina virtual). Si tenemos un servidor corriendo en el equipo Guest y queremos accesar desde el equipo host debemos configurar algunas cosas con VBoxManage.

Ejecutaremos VBoxManage desde la consola o ventana de comandos, así que la abrimos y nos vamos al directorio donde se instaló VirtualBox, en mi caso:
cd C:\Program Files\Oracle\VirtualBox

Obtenemos el nombre del equipo Guest:
VBoxManage list vms

En mi caso obtendría:
"Debian_VBox" {...}


Ahora nos aseguramos que el equipo Guest esté apagado, y luego le agregaremos unos datos extra a su configuración:

VBoxManage setextradata "[nombreEquipoGuest]" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/[servicio]/HostPort" [puertoHost]
VBoxManage setextradata "[nombreEquipoGuest]" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/[servicio]/GuestPort" [puertoGuest]
VBoxManage setextradata "[nombreEquipoGuest]" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/[servicio]/Protocol" [protocolo]


Donde:
[nombreEquipoGuest] es, como bien dice, el nombre del equipo Guest o Máquina Virtual.

[servicio] es el nombre del servicio que se expone en el equipo Guest y al que queremos acceder, puede ser el nombre que nosotros elijamos.

[puertoHost] es el puerto mediante el cual accederemos al servicio desde la máquina Host, es de nuestra elección, sólo debemos verificar que no esté coupado.

[puertoGuest] es el puerto que usa el servicio en el equipo Guest.

[protocolo] es el protocolo del servicio.

En mi caso tengo un servidor web más SSL(puerto 443) en el equipo Guest y quisiera ingresar desde el equipo Host usando el puerto 8877, los 3 comandos a ejecutar serían:

VBoxManage setextradata "Debian_VBox" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/apache/HostPort" 8877
VBoxManage setextradata "Debian_VBox" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/apache/GuestPort" 443
VBoxManage setextradata "Debian_VBox" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/apache/Protocol" TCP

Podemos ver la extradata agregada con el comando:
VBoxManage getextradata "Debian_VBox" enumerate


Luego Abrimos VirtualBox, vamos a Configuración/Red/Adaptador 1/Avanzadas/Tipo de Adaptador y elegimos:
PCnet-PCI II



Ahora puedo ingresar desde el equiipo Host al servidor web instalado en el equipo Guest con la dirección:
https://localhost:8877

VirtualBox se encargará de redireccionar mi petición al servidor de la máquina virtual.

Si quisieramos revertir estos cambios podemos hacerlo ejecutando los mismos comandos pero omitiendo los valores de [puertoHost], [puertoGuest] y [protocolo], por ejemplo si quisieramos quitar el puerto asignado al equipo Host:

VBoxManage setextradata "Debian_VBox" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/apache/HostPort"

0 comentarios:

Publicar un comentario en la entrada