Archivo

Archivo para la categoría ‘Hardware’

Zyxel NSA-325 V2 pasa a OpenWRT

viernes, 28 de julio de 2023 Sin comentarios

Hace 8 años compré por un precio más que razonable un NAS de 2 bahías de Zyxel que me permitió hacer bastantes más cosas de las oficiales gracias a repositorios de la comunidad. Pero todo tiene un límite, concretamente en lo que se refiere a su compatibilidad con discos duros de gran capacidad. Resulta que el sistema de archivos que utiliza es ext2, el cual permite un tamaño de volumen máximo de 16TiB, algo que me impedía hacer uso de dos discos duros de 20TB. Frustrado por ello busqué alternativas y encontré la posibilidad de instalar OpenWRT reescribiendo la NAND, lo cuál me permitía hacer uso de ext3 entre otras muchas cosas.

Para llevar a cabo la operación, me enfrenté con documentación incompleta desde el punto de vista de alguien que no lo había hecho nunca. Se hablaba de utilizar una conexión serie USB, de poner comandos en un terminal, hacer uso de un pendrive antiguo y de soldar cosas. Al final fue relativamente sencillo, sin soldar ni comprar nada adicional porque ya tenía en mi posesión una Raspberry Pi 2 para hacer el trabajo de conector serie USB.

Importante

El proceso puede dejar inservible el dispositivo NAS e incluso la Raspberry Pi si confundís algún cable. Así que cada uno es responsable de lo que hace.

Obtención de la MAC

Durante el proceso habrá que configurar la MAC del NAS a mano, con lo que antes de empezar sería buena idea obtenerlo.

Sacar la placa base

Para sacar la placa base hay que extraer las bahías de los discos duros, sacar un par de tornillos de la base, deslizar una parte de la carcasa sobre la otra y seguir desatornillando un poco más, nada difícil ni nada clicks. Hay un vídeo muy ilustrativo de los primeros pasos:

Conectar la Raspberry Pi

Teniendo en cuenta de que en mi caso estaba usando una Rasperry Pi 2 B y que sun GPIO difiere de otros modelos, la conexión me quedó así:

 

En caso de utilizar un adaptador USB serie, la conexión sería como esta:

Preparando un pendrive

Parece ser que esto es algo que da bastantes problemas, donde algunas personas han tenido que recurrir a pendrive antiguos anteriores al 2.0, pero yo me he arreglado con un Sandisk de 16GB que tenía por ahí. Lo tendremos que formatear en FAT32 y depositaremos en él dos ficheros:

  • Los ficheros de u-boot en su versión 18.06.0 porque las más recientes parecen tener un bug que afecta al arranque con USB.
  • El firmware de OpenWRT (la más reciente, a día de hoy la versión 22.03.5).

Colocaremos el pendrive en la placa base del NAS, procurando que sea uno de los puertos traseros 2.0.

Preparando la Raspeberry Pi

Arrancamos la Raspberry Pi (en mi caso llevaba una Hyperbian), nos logueamos y, utilizando el comando «raspi-config», dentro de «Interface options» -> «Serial Port», desactivamos el puerto serie para el login shell y activamos el puerto serie por hardware. Reiniciamos las Raspberry Pi y ya la tenemos lista.

Flasheando

Le damos corriente al NAS a través de su adaptador habitual y lo encendemos desde su botón. Desde la Raspberry Pi descargamos el u-boot y le damos una orden con él a través del USB serie que hemos montado con los cables:

wget https://archive.openwrt.org/releases/18.06.0/targets/kirkwood/generic/u-boot-nsa325/u-boot.kwb

kwboot -p -t -b u-boot.kwb -o 5 -B 115200 /dev/ttyAMA0

Nos pedirá que reiniciemos el dispositivo NAS de Zyxel, con lo que le quitaremos la corriente y se la volveremos a dar. Nos mostrará el progreso de flasheo y cuando haya terminado cargará una especie de shell interactiva en la cual tendremos que dar algunas órdenes.

usb reset
fatload usb 0 0x1000000 u-boot.kwb
nand erase 0x0 0x100000
nand write 0x1000000 0x00000 0x100000
reset

Seguiremos configurando algunas variables de entorno:

setenv mtdparts ‘mtdparts=orion_nand:0x00c0000(uboot),0x80000(uboot_env),0x7ec0000(ubi)’
setenv bootcmd ‘run setenv bootargs; ubi part ubi; ubi read 0x800000 kernel; bootm 0x800000’
saveenv
reset

Le configuraremos la MAC que tenía:

setenv ethaddr AB:CD:EF:00:00:00
saveenv

Flashearemos el fichero «openwrt-22.03.5-kirkwood-zyxel_nsa325-squashfs-factory.bin» que habíamos descargado:

usb reset
fatload usb 0 0x2000000 openwrt-22.03.5-kirkwood-zyxel_nsa325-squashfs-factory.bin
nand erase.part ubi
nand write 0x2000000 ubi 0x600000

Una vez finalizado podremos reiniciarlo con el siguiente comando:

reset

El sistema arrancará y ya tendremos disponible desde el navegador una interfaz web para configurarlo.

Fuentes:

Documentación de OpenWRT

Apuntes de Panticz.de

Trygkey N95

lunes, 10 de abril de 2023 Sin comentarios

En esta ocasión es un Intel N95 de 15W y 4 núcleos equipado con 8GB de DDR4, que me costó algo menos de 223€ en Amazon.

Lo primero que me sorprendió cuando lo abrí es que llevase un módulo de memoria Crucial de 3200Mhz que no deja de ser una marca reconocida. A parte incorpora un disipador bastante mejor que el que he visto en otros equipos de similares características, lo que lo hace mantener un temperatura bastante razonable de unos 40º con carga ligera, muy por debajo de los 60º del NiPoGi.

 

Lleva una tarjeta de red Realtek RTL8111 con velocidades de 800Mbits/seg, de lo más rápido que he visto en este tipo de equipos. El M.2 es de tipo NVME con una velocidad de casi 600MB/seg. de la marca Maxio.

El procesador se comporta estupendamente para tareas multimedia con su soporte por hardware del códec AV1.

Categories: MiniPC Tags:

NiPoGi N95

domingo, 9 de abril de 2023 Sin comentarios

En este caso se trata de un miniPC con el Intel N95 de 15W y 4 núcleos equipado con 16GB de DDR4, que me costó un poco menos de 240€ en Amazon y que acabó siendo devuelto.

El procesador da soporte por hardware a la decodificación del códec AV1 pero la construcción no parece permitirle una buena circulación de aire, permaneciendo fácilmente por encima de 60º sin casi carga. Parece que lleva la misma solución térmica que el N5105 que es de 10W cuando el N95 es de 15W. Esto se resumía en un constante ruido de ventilador y, de ser usado por periodos largos de tiempo, en throttling.

La tarjeta de red es una Realtek que alcanza velocidades ligeramente por encima de 750Mbits/seg lejos del Gigabit.

El disco M.2 es de tipo SATA, un Kowin E2000 de 512GB con velocidades de 500MB/seg. Incorpora un módulo de memoria RAM SODIMM DDR4 de 16GB de 2667Mhz.

 

Lo acabé devolviendo porque las temperaturas eran altas y, sobretodo, porque emitía un zumbido eléctrico muy molesto cuando estaba apagado pero conectado a la corriente.

Categories: MiniPC Tags:

AK1Pro N5105

sábado, 8 de abril de 2023 Sin comentarios

Últimamente me ha dado por probar equipos MiniPC económicos con muy bajo consumo que puedan desempeñar tareas polivalentes ligeras, pero sobretodo multimedia. En este caso se trata de un equipo con un Intel N5105 de 10W y 4 núcleos con 16GB de RAM DDR4 que me costó algo menos de 190€ en Amazon. Pagar más por él no merece mucho la pena debido a los nuevos procesadores que han ido saliendo de nueva generación.

Hay que partir del hecho de que es un equipo con un procesador modesto pero bastante solvente para hacer tareas ofimáticas ligeras o para ver plataformas de streaming. Cuando lo compras suele venir con Windows 11 activado pero funciona perfectamente con Windows 10 si instalamos los drivers correspondientes (que se pueden descargar de un foro oficial bastante útil )

Hay varios factores que he podido analizar desde una live de Ubuntu y de los que dejo captura. La velocidad de la tarjeta de red (una Realtek RTL8111) ronda los 700Mbits/seg, algo lejos del Gigabit pero suficiente para la mayoría de los casos.

La CPU es un Intel N5105 que no funciona nada mal y que se mantiene a unos 55º con poca carga y cuyo ventilador sube a tope para mantenerlo a 70º cuando se le estresa. La GPU (JasperLake), en el apartado que me interesaba de decodificación de vídeo, soporta la mayoría de códecs salvo el AV1.

La memoria RAM que incorpora es un módulo SODIMM de 16GB DDR4 a 2667Mhz de Kinsotn y el M.2 2280 es un Kimtigo KT-B900 de 512GB SATA con velocidades de casi 475MB/seg. No es seguro que se le pueda conectar un M.2 de tipo NVME por lo que he leído por el foro, pero tampoco creo que le haga falta.

En cuanto a la construcción me parece más que razonable aunque se podría haber mejorado la entrada y salida de aire. Hay que tener en cuenta que permite la instalación de un SSD en la parte de abajo de la caja que se comunica con la placa base a través de un USB tipo C. Esa parte de la carcasa yo la he acabado retirando porque no necesitaba conectar un SSD y parecía mejorar un poco el paso del aire.

Algo que no se ve sin abrirlo es que en la placa base hay un conector SATA y un botón que probablemente resetea la BIOS accesible desde fuera a través de jack de audio. También indicar que el equipo emite un zumbido eléctrico muy ligero cuando está en suspensión pero ninguno cuando está apagado.

Categories: MiniPC Tags:

Comprobar memoria RAM en caliente

sábado, 13 de marzo de 2021 2 comentarios

En aquellos casos en los que sospechamos de zonas de memoria RAM que no funcionan correctamente y que se producen en equipos con funciones de servidor en los que un reinicio para utilizar Memtest86+ nos supone un problema podemos optar por «memtester».

Con el comando «free» podemos averiguar cuánta memoria tiene nuestro equipo utilizada y cuánta libre. Sabiendo esto lanzamos nuestra nueva herramienta indicándole cuánta memoria tiene que reservar para testearla y cuántas pasadas debe realizar:

memtester 20131 2

En el caso anterior le estaríamos diciendo que comprobase algo más de 19GB y que hiciese dos pasadas. En caso de que encontrase errores veríamos mensajes como el siguiente:

FAILURE: 0x7f40f12dd82264da != 0x7f40f52dd82264da at offset 0x22fa2d27.

Contraseña en la BIOS del portátil

miércoles, 27 de mayo de 2020 Sin comentarios

La mayoría de fabricantes de portátiles permiten asignar una contraseña de acceso a su BIOS para evitar que se efectúen cambios en su configuración. Si nos encontramos con este inconveniente vamos a descubrir que dichos fabricantes no se esforzaron mucho en tal tarea.

Cuando al acceder a la BIOS el portátil nos pregunte la contraseña introduciremos una a una las siguientes contraseñas:

  1. 3hqgo3
  2. jqw534
  3. 0qww294e

Esto hará que el portátil nos devuelva un mensaje de error en hash. Dependiendo de la marca del portátil tendrá un formato u otro:

 Fabricante  Tipo de hash  Ejemplo de hash
 Asus Fecha 01-01-2011
 Compaq 5 dígitos decimales 12345
 Dell Número de serie 1234567-595B
 Fujitsu-Siemens 5 dígitos decimales 12345
 Fujitsu-Siemens 8 dígitos hexadecimales DEADBEEF
 Fujitsu-Siemens 5×4 dígitos hexadecimales AAAA-BBBB-CCCC-DEAD-BEEF
 Fujitsu-Siemens 5×4 dígitos decimales 1234-4321-1234-4321-1234
 Fujitsu-Siemens 6×4 dígitos decimales 8F16-1234-4321-1234-4321-1234
 Hewlett-Packard 5 dígitos decimales 12345
 Hewlett-Packard/Compaq Netbooks 10 caracteres CNU1234ABC
 Insyde H20 (generic) 8 dígitos decimales 03133610
Phoenix (generic) 5 dígitos decimales 12345
Sony 4×4 dígitos hexadecimales 1234-1234-1234-1234
Sony 7 dígitos numéricos 1234567
Samsung 12 dígitos hexadecimales 07088120410C0000

Con ese hash y un script en python (en la mayoría de los casos) podremos obtener una contraseña para cuando arranque de nuevo el portátil. Y de dónde sale el script, pues normalmente de Internet como todo lo que la gente comparte.

Categories: Portátiles Tags: , ,

Asus RT-AC66U_B1 haciendo de cliente de VPN

sábado, 4 de abril de 2020 Sin comentarios

Haciendo uso del firmware de Asuswrt-Merlin se permiten hacer ciertas cosas bastante provechosas. En otra entrada comenté cómo montar un cliente OpenVPN bajo Proxmox y que no consumiese excesivos recursos, pero seguía sin ser todo lo óptimo que deseaba. Al final me decanté por dejar dicha carga al servicio de un router libre de Asus.

Lo primero de todo es ir a la sección «VPN->Cliente VPN» y configurar los parámetros según nuestro proveedor. Una vez en marcha y habiendo marcado la opción de «Force Internet traffic through tunnel» como «Policy Rules (strict)», podremos añadir la IP de las máquinas que queramos que pasen por dicha VPN.

Si además necesitamos redirigir puertos, la cosa de complica un poco más. Necesitaremos habilitar el acceso por ssh a nuestro router desde «Administración->Sistema->Enable SSH» y también habilitar la partición JFFS desde «Administración->Sistema->Enable JFFS custom scripts and configs». Accederemos por ssh con nuestro login habitual de la interfaz web y crearemos un nuevo fichero:

nano /jffs/scripts/nat-start

En él introduciremos reglas de enrutado:

#!/bin/sh

DEV=»tun11″
PROTO=»tcp»
EXT_PORT=»50001″
INT_IP=»192.168.1.100″
INT_PORT=»22″

ipt() {
# precede insert/append w/ deletion to avoid dupes
while iptables ${@/-[IA]/-D} 2> /dev/null; do :; done
iptables $@
}

# create internal port forward
ipt «-t nat -I PREROUTING -i $DEV -p $PROTO –dport $EXT_PORT -j DNAT –to $INT_IP:$INT_PORT»
ipt «-I FORWARD -i $DEV -p $PROTO -d $INT_IP –dport $INT_PORT -j ACCEPT»

exit 0

El parámetro «tun11» equivaldría al primer cliente de VPN configurado en nuestro router y el script debería funcionar sin problemas como se indica en este foro de donde lo saqué nada más reiniciar el router. Pero a mi no me funcionó, es más, perdía toda la conectividad hacia el exterior. Lo acabé solucionando dejando simplemente una línea tras mucho probar:

iptables -t nat -I PREROUTING -i tun11 -p tcp –dport 50001 -j DNAT –to 192.168.1.100:22

 

Acceso a discos KVM

sábado, 4 de abril de 2020 Sin comentarios

Para acceder a unidades de disco utilizadas por máquinas virtuales KVM sólo tenemos que seguir algunos sencillos pasos.

Lo primero es identificar la primera unidad loopback disponible:

losetup -f

Asociaremos la unidad que nos devuelve el paso anterior con nuestra imagen de disco:

losetup /dev/loop0 /rutaKVM/discoWindows.img

A continuación podremos identificar las particiones contenidas en el fichero anterior:

kpartx -av /dev/loop0

Podemos visualizar las particiones mapeadas con el siguiente comando:

ls -la /dev/mapper/

Y al final podremos montarla del siguiente modo:

mount /dev/mapper/loop0p2 /mnt/virtualHDD/

Cuando hayamos terminado de trabajar con la unidad de disco virtual desharemos lo hecho:

umount /mnt/virtualHDD/

kpartx -dv /dev/loop0

losetup -d /dev/loop0

Si lo que tenemos es un disco con formato «qcow2» podemos recurrir a otra estrategia. Habilitamos el módulo NBD (Network Block Devices):

modprobe nbd max_part=8

Conectamos al dispositivo como si fuese una unidad de red:

qemu-nbd –connect=/dev/nbd0 /rutaKVM/discoWindows.qcow2

Buscamos las particiones del disco:

fdisk /dev/nbd0 -l

Montamos la que deseemos:

mount /dev/nbd0p1 /mnt/virtualHDD/

Y para cuando terminemos, deshacemos lo hecho:

umount /mnt/virtualHDD/
qemu-nbd –disconnect /dev/nbd0
rmmod nbd

Recuperando archivos de medios dañados

sábado, 4 de abril de 2020 Sin comentarios

Cuando nos encontramos con una unidad de almacenamiento con daños que impiden la lectura de alguno de sus sectores y, por tanto, impiden la extracción de alguno de sus ficheros, podemos recurrir a ciertos métodos, sobretodo cuando se tratan de vídeos e imágenes que pueden subsistir de manera razonable a falta de algunos bytes de datos.

dd if=ArchivoConBloquesDañados of=ArchivoRecuperado bs=4k conv=noerror,sync

Sustituyendo Proxmox por una Ubuntu Server con KVM

lunes, 23 de marzo de 2020 Sin comentarios

Debido al hardware específico (HP Miniserver Gen8) que tengo y que para poder resolver los problemas de su BIOS con la paravirtualización se necesita aplicar un parche en el kernel que me dejó de funcionar en Proxmox en la última actualización, pues decir librarme de la comodidad de Proxmox en busca de algo más flexible.

Quería una distribución con software relativamente actualizado y documentado en el que me sintiese cómodo. Opté por una Ubuntu 18.04 para servidores que, aunque no está entre mis favoritas para el uso cotidiano, es bastante cómoda para funciones de servidor.

Software de virtualización

Después de la instalación básica necesitaba una serie de herramientas para virtualizar máquinas:

apt-get install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils

adduser `id -un` libvirt

Preparación previa del hardware

Hice que no cargase ningún driver de la gráfica a la que tenía pensada hacerle passthrough :

echo blacklist nouveau > /etc/modprobe.d/blacklist-nvidia-nouveau.conf

echo options nouveau modeset=0 >> /etc/modprobe.d/blacklist-nvidia-nouveau.conf

echo blacklist snd_hda_intel > /etc/modprobe.d/blacklist-nvidia-nouveau.conf

Con el comando «lpsci -nn» encontré los datos de la gráfica que me interesaban:

07:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP107 [GeForce GTX 1050 Ti] [10de:1c82] (rev a1)
07:00.1 Audio device [0403]: NVIDIA Corporation GP107GL High Definition Audio Controller [10de:0fb9] (rev a1)

Y edité el fichero de configuración de Grub «/etc/default/grub»:

GRUB_CMDLINE_LINUX=»intel_iommu=on vfio_pci.ids=10de:1c82,10de:0fb9″

Para terminar de curarme en salud, creé el fichero «/etc/modprobe.d/vfio_pci.conf»:

options vfio_pci ids=10de:1c82,10de:0fb9

Y edité el de «/etc/initramfs-tools/modules»:

vfio
vfio_iommu_type1
vfio_virqfd
options vfio_pci ids=10de:1c82,10de:0fb9
vfio_pci ids=10de:1c82,10de:0fb9
vfio_pci

¿Excesivo? Puede ser. Quizás sobrase con sólo haber editado el fichero de Grub, pero se llega a un punto en el cual has dado tantas vueltas sobre lo mismo que no te fías con hacer lo mínimo indispensable.

Finalmente toca rehacer el arranque con los siguientes comandos:

update-grub
update-initramfs -u

Compilación del kernel

Editamos las fuentes de apt para poder descargar el fuente del software «/etc/apt/sources.list»:

deb-src http://es.archive.ubuntu.com/ubuntu/ bionic main restricted

deb-src http://es.archive.ubuntu.com/ubuntu/ bionic-updates main restricted

Descargamos el software necesario:

apt update

apt-get build-dep linux linux-image-$(uname -r) git fakeroot dkms default-jdk

Es posible que nos topemos con el siguiente error:

la descarga se realiza de forma desprotegida como superusuario, ya que al archivo «linux-signed_4.15.0-91.92.dsc» el usuario «_apt» no pudo acceder. – pkgAcquire::Run

Para solventarlo nos basta con hacer lo siguiente:

chown _apt /var/lib/update-notifier/package-data-downloads/partial/

Dentro de la carpeta «/usr/src/» descargaremos los fuentes del kernel de Ubuntu Bionic:

git clone git://kernel.ubuntu.com/ubuntu/ubuntu-bionic.git

Editaremos el fichero «/usr/src/ubuntu-bionic/drivers/iommu/intel-iommu.c» donde pone:

if (device_is_rmrr_locked(dev)) {
dev_warn(dev, «Device is ineligible for IOMMU domain attach due to platform RMRR requirement. Contact your platform vendor.\n»);
return -EPERM;
}

Pondremos lo siguiente:

if (device_is_rmrr_locked(dev)) {
dev_warn(dev, «Device is ineligible for IOMMU domain attach due to platform RMRR requirement. PARCHEADO.\n»);
}

En este paso, si tratamos de compilar el kernel nos encontraremos con un error relacionado con el script «ubuntu-bionic/debian/scripts/retpoline-check» y que tuve que modificar de este código:

count=$( diff -u «$prev» «$curr» | grep ‘^+[^+]’ | wc -l )
if [ «$count» != 0 ]; then
rc=1

A este otro:

count=$( diff -u «$prev» «$curr» | grep ‘^+[^+]’ | wc -l )
if [ «$count» != 0 ]; then
rc=0

Sé que está relacionado con las mitigaciones sobre las CPU de Intel pero no es algo que en esta máquina me importase mucho.

Desde el directorio de «/usr/src/ubuntu-bionic» lancé la compilación que duró un periodo de tiempo considerable:

fakeroot debian/rules clean

fakeroot debian/rules binary

De dicho proceso se generaron una serie de paquetes .deb que instalé:

dpkg -i *.deb

Una vez instalado el kernel modificado, ahora sólo necesitaba que el equipo siempre arrancase con él, con lo que había que realizar algunos cambios en el cargador de arranque. Para saber qué modificaciones tenía que aplicar lancé el siguiente comando:

sed -nre «/submenu|menuentry/s/(.? )'([^’]+)’.*/\1 \2/p» < /boot/grub/grub.cfg

Me devolvió el listado visual de Grub que tenía que tener en cuenta:

menuentry Ubuntu
submenu Opciones avanzadas para Ubuntu
menuentry Ubuntu, con Linux 4.15.0-91-generic
menuentry Ubuntu, con Linux 4.15.0-91-generic (recovery mode)
menuentry Ubuntu, con Linux 4.15.0-88-lowlatency
menuentry Ubuntu, con Linux 4.15.0-88-lowlatency (recovery mode)
menuentry Ubuntu, con Linux 4.15.0-88-generic
menuentry Ubuntu, con Linux 4.15.0-88-generic (recovery mode)
menuentry Ubuntu, con Linux 4.15.0-76-generic
menuentry Ubuntu, con Linux 4.15.0-76-generic (recovery mode)

Entonces edité el fichero «/etc/default/grub» acorde:

GRUB_DEFAULT=»Opciones avanzadas para Ubuntu>Ubuntu, con Linux 4.15.0-88-generic«

Y además bloquee la posibilidad de que sufriese cambios a través de alguna actualización del gestor de paquetes y regeneré la configuración de Grub:

apt-mark hold 4.15.0-88-generic

update-grub

Si en un futuro queremos actualizar el kernel, para desbloquear el que tenemos modificado bastará con lanzar el comando «apt-mark unhold 4.15.0-88-generic».

Tras un reinicio del equipo y con el comando «dmesg | grep -i vfio» deberíamos poder ver lo siguiente:

[230727.140577] vfio-pci 0000:07:00.1: Device is ineligible for IOMMU domain attach due to platform RMRR requirement. PARCHEADO.
[230727.730169] vfio_ecap_init: 0000:07:00.0 hiding ecap 0x19@0x900

Configuración del puente de red

Para que las máquinas virtuales puedan tener acceso directo a nuestra y así poder hacer uso de los recursos que en ella se encuentran hay que configurar un puente de red. Modificaremos el fichero «/etc/netplan/01-netcfg.yaml»:

network:
version: 2
renderer: networkd

ethernets:
eno2:
dhcp4: false
dhcp6: false

bridges:
br0:
interfaces: [eno2]
addresses: [192.168.1.10/24]
gateway4: 192.168.1.1
mtu: 1500
nameservers:
addresses: [192.168.1.1]
parameters:
stp: true
forward-delay: 4
dhcp4: no
dhcp6: no

El dispositivo «eno2» sería nuestra tarjeta de red con conectividad y «br0» sería al puente hacia nuestras máquinas virtuales. Hay que tener en cuenta que yo he preferido establecer una IP fija para mi tarjeta con conectividad física pero se podría haber dejado con DHCP.

Gestión web del servidor

Para poder gestionar de manera fácil el servidor a través de un entorno web, he optado por hacer uso de Cockpit, el cual se puede instalar de la siguiente forma:

apt install cockpit cockpit-machines cockpit-docker cockpit-system cockpit-packagekit

Ahora podremos gestionar el servidor desde http://127.0.0.1:9090

Gestión de las máquinas virtuales

Si bien se pueden gestionar las máquinas virtuales de Cockpit de manera fácil, el interfaz es algo limitado con respecto a lo que podía hacer con Proxmox. Pero esto es fácilmente solucionable si las gestionamos desde Virtual Machine Manager, un software que puede estar instalado en nuestro sobremesa o portátil y que permite gestionar tanto las máquinas virtuales en local como remotas.