Ubuntu Multipass en Windows y modo Bridge

Hace poco me entere del proyecto de Ubuntu llamado multipass.

Se trata de un sistema de virtualización de una consola de Ubuntu en la que puedes descargarte diferentes estancias ya configuradas.

En Windows, que es donde lo he probado, necesita tener Hyper-V o VirtualBox para poder funcionar.

La idea es buena, tener un sistemas tipo Docker o Kubernetes, que con un comando se pueda descargar una distro determinada para poder hacer un despliegue rápido.

Aun esta un poco en verde, ya que hay pocas distribuciones disponibles:

Entre ellas tienes varias versiones de Ubuntu y también varios appliance como Adguard, Mosquito, openHub , Plex media o servidor de docker.

Como empezar:

Directamente desde PowerShell debemos administrar las imágenes de las maquinas virtuales.

Una vez descargada la imagen con :

multipass launch jammy

“Jammy” es el alias de la Ubuntu 22.04 LTS se descargara la imagen y nos abrirá una instancia.

Si queremos que tenga un nombre especifico para la instancia usaremos el argumento –name

--name primary

Si usamos el nombre primary será la maquina por defecto que arranque. ( siempre siendo la primera maquina que se inserte).

También podremos cambiar aspectos de la maquina desde la creación de la misma. os pongo un par de ejemplos pero tenéis la documentación aquí : https://multipass.run/docs/create-an-instance

multipass launch 20.04 --name ubuntu20 --cpus 4 --disk 20G --mem 8G --network Wi-Fi

En este caso hemos creado una maquina de Ubuntu 20.02 llamada ubuntu20 con 4 cpu’s asignadas 20Gb de disco duro y 8Gb de ram y le hemo dicho que se conecte a la red wifi .

Para saber el nombre de nuestra red ejecutamos antes:

multipass networks

Para comprobar que este funcionando la red bien ejecutamos :

multipass exec ubuntu20 -- ip -br address show scope global

enp0s3 seria la red NAT que se crea para poder usar el Shell a traves de PowerShell y es obligatorio ( sino la maquina no funciona bien ) y el enp0s8 es el puente con la red wifi y me ha dado ip por dhcp . si la queremos con ip fija podemos entrar ya por el Shell y cambiarlo de forma manual.

podemos entrar a la maquina desde PowerShell o desde el icono de multipass

multipass shell ubuntu20
Sin la red NAT no funciona esta opción.

y con esto ya tendríamos creado la nueva maquina virtual y conectado el modo puente a la wifi directamente.


Ahora, el problema reside si se nos ha olvidado crear la red puente de la wifi .

Si tenemos virtualizado con Hyper-V no tendremos problemas por que es tan sencillo como ir al gestor de Hyper-v y añadir una red nueva, reconfiguramos la Ubuntu ( la parte de red nueva) y estaría listo.

Pero en su homólogo VirtualBox esta tarea puede ser un poco mas complicado. principalmente por que nuestras maquinas no salen en el menú de VirtualBox hay que acceder de otra forma.

Lo primero de todo es bajarse unas herramientas de PowerShell

https://download.sysinternals.com/files/PSTools.zip

Lo descomprimimos y lanzamos PowerShell desde esa carpeta y con permisos de administrador.

A partir de aquí tenemos dos formas de hacerlo. parando el servicio de multipass o sin pararlo.

Si paramos el servicio hay que parar todas las maquinas, de la otra forma solo hay que parar la maquina que queremos cambiar.

Parando el servicio ( lo mas sencillo)

Primero paramos las maquinas y el servicio:

multipass stop --all
net stop multipass

ahora lanzamos esta orden para abrir una instancia de virtualbox en la que tengamos las maquinas paradas y donde podremos editarlas sin problemas.

& $env:USERPROFILE\Downloads\PSTools\PsExec.exe -s -i $env:VBOX_MSI_INSTALL_PATH\VirtualBox.exe

Aquí ya podemos editar y añadir o poner componentes que necesitemos, en nuestro caso la red puente:

Una vez terminado salvamos cerramos el VirtualBox y reiniciamos el servicio

net start multipass

ya solo necesitaríamos arrancar la maquina y actualizar Ubuntu con los cambios que hemos realizado.

Nota importante, en este paso es necesario parar las maquina y el servicio mutipass, por que si la maquina no esta apagada no se puede editar la red y parar el servicio por que multipass esta usando VirtualBox todo el rato y no nos permite hacer cambio de red.

Sin parar el servicio.

esta opción es un poco mas rebuscada.

Primero necesitamos el nombre del adaptador : Realtek RTL8821CE 802.11ac PCIe Adapter

Despues con la maquina parada ejecutamos :

 .\PsExec64.exe -s "c:\program files\oracle\virtualbox\vboxmanage" modifyvm "lts" --nic2 bridged --bridgeadapter2 "Realtek RTL8821CE 802.11ac PCIe Adapter"

lts es el nombre de la estancia que quiero modificar y vamos a trabajar con la nic2 ya que la 1 es la que tiene el NAT y no debemos de modificar.

Arrancamos la maquina y comprobamos

multipass start lts
multipass exec lts -- ip -br address show scope global

ya tenemos el enp0s8 que es el puente que hemos creado y solo falta configurar Ubuntu como en el resto de casos


Después de algunas pruebas que he realizado os recomiendo que uséis el Hyper-V, es mas sencillo de manejar todo y hacer cambios.

Referencias:

https://multipass.run/docs

Networking tricks with Multipass in Virtualbox on Windows (Bridged interfaces and Port Forwards)

Deja un comentario