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/_VNA_/0/LUN#0/Config/[servicio]/HostPort" [puertoHost] VBoxManage setextradata "[nombreEquipoGuest]" "VBoxInternal/Devices/_VNA_/0/LUN#0/Config/[servicio]/GuestPort" [puertoGuest] VBoxManage setextradata "[nombreEquipoGuest]" "VBoxInternal/Devices/_VNA_/0/LUN#0/Config/[servicio]/Protocol" [protocolo]
Donde:
[nombreEquipoGuest] es, como bien dice, el nombre del equipo Guest o Máquina Virtual.
_VNA_ es elnombre del virtual network adapter, pcnet para PCnet-FAST III, e1000 para Intel PRO/1000 MT Desktop
[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"
muy buena explicacion, solo me queda la duda de como puedo obtener el puerto del servidor apache como lo indicas en la linea:
ResponderEliminarVBoxManage setextradata "Debian_VBox" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/apache/GuestPort" 443
Si lo mencionas, X fa, gracias.
Yo uso el puerto 443 porque Configuré apache, este al instarlo ocupa por defecto el puerto 80 por lo que puedes ingresar a la pagina que pone por defecto mediante la dirección:
EliminarHttp://localhost
Como es 80 no hay necesidad de especificar el puerto en la dirección.
De modo que si esa es la dirección entonces debes cambiar en el comando que pusiste el numero 443 por el 80.
saludos, pues no puedo accesar al equipo Guest, hice esto, tengo instalado en una maquina virtual a ubuntu 12.04, luego en las configuraciones de red, adaptador1, tengo conectado a NAT (no se si tiene que ver esto..), luego en tipo de adaptador: Intel PRO/1000 MT desktop (82540EM) y esta deshabilitado, apagada el equipo-virtual ubuntu12, pero no cerre el Oracle VM Virtual Administrador le asigne los datos extra a la configuracion configuracion:
EliminarVBoxManage setextradata "ubuntu12" "VBoxInternal/Devices/e1000/0/LUN#0/Config/apache/HostPort" 8070
VBoxManage setextradata "ubuntu12" "VBoxInternal/Devices/e1000/0/LUN#0/Config/apache/GuestPort" 443
VBoxManage setextradata "ubuntu12" "VBoxInternal/Devices/e1000/0/LUN#0/Config/apache/Protocol" TCP
Ejecute la maquina virtual y a los puertos los cambie entrando como root: root@svrtprod:~# cd /etc/apache2/ports.conf
NameVirtualHost *.8070
Listen 8070
y veo mas abajo que dice: # supported by MSIE on windows XP
y se repite dos veces
Listen 443 --> tambien tengo que cambiarlo
Listen 443
luego cd /etc/apache2/sites-enabled/000-default
VirtualHost *:8070 los guarde y reinicie el servidor, desde el equipo ubuntu virtualizado ejecute http://localhost:8070/ y veo la pagina por default, ahora desde el equipo host que es windows7 ejecute en el mozila: http://localhost:8070/ o https://localhost:8070/ y nada, no se encuentra el servidor, que puedo hacer gracias.
Es que con la siguiente sentencia o comando le dices al vbox que cuando escribas en la maquina host http://localhost:8070 agarre esa petición y la redirija a la máquina guest, si en esta apache esta usando otro puerto no importa, vbox se encarga de redirigir:
EliminarVBoxManage setextradata "ubuntu12" "VBoxInternal/Devices/e1000/0/LUN#0/Config/apache/HostPort" 8070
Con este comando le dices a vbox que el servidor apache en la máquina guest está usando el puerto X, en tu caso es el puerto 8070, de esta forma vbox sabrá a qué puerto redirigir: (ojo que este puerto puede ser diferente al del primer comando, es decir al que se usará en la máquina host)
VBoxManage setextradata "ubuntu12" "VBoxInternal/Devices/e1000/0/LUN#0/Config/apache/GuestPort" 8070
Y con esto específicas el protocolo, para el caso es TCP:
VBoxManage setextradata "ubuntu12" "VBoxInternal/Devices/e1000/0/LUN#0/Config/apache/Protocol" TCP
Entonces, los comandos finalmente quedarían:
VBoxManage setextradata "ubuntu12" "VBoxInternal/Devices/e1000/0/LUN#0/Config/apache/HostPort" 8070
VBoxManage setextradata "ubuntu12" "VBoxInternal/Devices/e1000/0/LUN#0/Config/apache/GuestPort" 8070
VBoxManage setextradata "ubuntu12" "VBoxInternal/Devices/e1000/0/LUN#0/Config/apache/Protocol" TCP
ok, muchas gracias ya quedo, si quisiera conectarme desde windows hacia postgres que esta en la maquina virual seria lo mismo.
Eliminar