Virtualbox es una plataforma de virtualización ampliamente utilizada para crear y administrar máquinas virtuales. Aunque es una plataforma de código abierto, algunos componentes de código cerrado también se incluyen en un paquete de extensión diferente. Es gratuito para su uso, pero puede comprar una licencia de Enterprise Enterprise Oracle VM Virtualbox Extension Pack si desea usarla para fines comerciales y requiere soporte oficial estándar.
Cuando se crea una nueva máquina virtual en VirtualBox, el modo de red predeterminado se establece en NAT o traducción de direcciones de red. El modo NAT tiene sus propias ventajas y limitaciones sobre otros modos de red. En esencia, NAT es más seguro pero al mismo tiempo más complicado cuando se trata de configurar la comunicación cruzada con otras máquinas virtuales y el mundo exterior. Si desea que la máquina virtual obtenga la seguridad y el acceso a servicios específicos con el modo NAT, necesitaría la ayuda del reenvío de puertos. De esta manera, la VM permanecerá aislada de otros, pero aún accederá a los servicios específicos.
¿Qué cubriremos??
Esta guía verá cómo podemos configurar el reenvío de puertos en VirtualBox utilizando métodos gráficos y de línea de comandos. Usaremos un Ubuntu 20.04 máquina virtual para este propósito. Para verificar si la configuración está funcionando, estableceremos el reenvío de puertos en nuestra VM para el acceso SSH desde el puerto 22 al puerto 9099 en el método gráfico y del puerto 22 al puerto 2222 en el método de línea de comandos. Pasemos con esta configuración sin más Ado.
Requisito previo
Comenzando con el reenvío de puertos
Método 1. Reenvío de puertos con la interfaz gráfica VirtualBox
Paso 1. Desde el panel izquierdo de la ventana principal de VirtualBox, seleccione la máquina virtual de la lista. Ahora haga clic derecho en el nombre de la máquina virtual y elija la opción 'Configuración' o seleccione el icono 'Configuración' del panel correcto.
Paso 2. En la nueva ventana emergente, seleccione la etiqueta correspondiente a la red '.'Ahora haga clic en el icono de flecha conectado con la etiqueta correspondiente a la opción' avanzada '.
Paso 3. Haga clic en el botón 'Reenvío de puerto'. Aparecerá una nueva ventana emergente. Aquí usa el icono '+' para agregar una nueva regla.
Etapa 4. En los cuadros de texto correspondientes a diferentes etiquetas, complete los diversos detalles de la nueva regla. Hemos usado el siguiente:
Nombre (nombre del servicio): Ssh
Protocolo: Tcp
IP de host: Dirección IP de la máquina host
Puerto host: Puerto en la máquina host a la que se reenviará la solicitud del invitado.
IP de invitado: Dirección IP de la máquina invitada
Puerto de invitados: Puerto predeterminado de un servicio que se ejecuta en la máquina invitada.
En esta guía, dado que usamos el servicio 'SSH' sobre el protocolo 'TCP', el puerto de invitados será de 22. Nuestro puerto anfitrión, como ya se le dijo, es 9099. Dejamos la IP invitada en blanco para obtener la IP de Virtualbox automáticamente. De la misma manera, la columna IP del host se deja en blanco, ya que esto será equivalente a 0.0.0.0; Esto significa que cualquier máquina que tenga acceso a su host a través del puerto 9099 también puede acceder a SSH a su VM invitada.
Una vez que hayamos terminado con los pasos anteriores, guarde estas configuraciones presionando el botón OK.
Prueba de la configuración
Antes de intentar SSH en la VM invitada, asegúrese de que el servidor OpenSSH esté instalado en él. Si no es así, puede instalarlo usando el comando:
$ sudo apt instalación openssh-server
Paso 1. Intenta ssh la VM invitada del host en el puerto 9099. Para esto, use el comando:
$ sudo ssh -l 'nombre de usuario' 0.0.0.0 -P 9099
'nombre de usuario'es el nombre del usuario en la VM invitada.
Método 2. Reenvío de puerto usando la interfaz de línea de comandos
Otra forma de configurar el reenvío del puerto es usar Vboxmanage de virtualbox herramienta de línea de comandos. Aquí mostraremos cómo funciona:
Paso 1. Enumere todas las máquinas virtuales en su máquina host con el comando:
VMS VBOXManage VMS
De la figura anterior, podemos ver que muestra dos máquinas virtuales: i) Fedora 34 ii) Ubuntu 20.04.
Paso 2. Ahora use el siguiente formato para hacer el reenvío de puertos Si la máquina virtual se enciende :
VboxManage Controlvm "VM Name" NATPF1 "Guestssh, TCP ,, 2222 ,, 22"
Si la VM se apaga, use:
VboxManage Modifyvm "VM Nombre" -NATPF1 "Guestssh, TCP ,, 2222 ,, 22"
Ahora, de nuevo, intente iniciar sesión con este comando:
sudo ssh -l 'nombre de usuario'0.0.0.0 -P 2222
Aquí "Nombre de la VM" es el nombre de la máquina virtual que obtuvimos en el paso anterior. 'Nombre de usuario' es el nombre del usuario en la VM invitada.
Conclusión
Virtualbox es una buena opción para el desarrollo y las pruebas, ya que puede ayudarlo a ahorrar tiempo y dinero. El comando vboxManage es conveniente ya que podemos controlar (comenzar, detener, suspender) las máquinas virtuales de la línea de comando. Esto es particularmente útil cuando el acceso gráfico al servidor VM no está disponible en el centro de datos. Esta guía se prueba en Ubuntu 20.04, pero debería funcionar en cualquier máquina que admita el acceso SSH.