
1. Introducción
¿Qué es KVM y QEMU?
KVM (Kernel-based Virtual Machine) es la tecnología de virtualización integrada directamente en el kernel de Linux. Actúa como un hipervisor de tipo 1 (bare-metal): la virtualización se ejecuta al nivel más bajo del sistema operativo anfitrión, aprovechando extensiones hardware de la CPU (Intel VT-x o AMD-V) y proporcionando un rendimiento muy cercano al nativo.
QEMU es el motor de emulación/virtualización que, combinado con KVM, se encarga de ejecutar las máquinas virtuales (VM). Cuando KVM está disponible, QEMU delega la ejecución crítica en el kernel, evitando la penalización típica de la emulación pura.
Esto contrasta con soluciones como VirtualBox, desarrollado por Oracle Corporation, que funcionan como hipervisores de tipo 2, ejecutándose como una aplicación más sobre el sistema anfitrión. Aunque son muy fáciles de usar, suelen introducir más sobrecarga y dependencia del entorno gráfico.
¿Por qué elegir Debian?
Debian Project destaca por:
- Estabilidad extrema: ideal para hosts de virtualización.
- Consumo contenido de recursos.
- Repositorios amplios y auditados.
- Filosofía Open Source y control total del sistema.
Debian 13 (Trixie) mantiene esta línea con kernels modernos y soporte sólido para KVM y libvirt.
Herramientas a utilizar
- libvirt: capa de abstracción que gestiona hipervisores, redes, almacenamiento y ciclos de vida de las VMs.
- virt-manager: interfaz gráfica que se conecta a libvirt y permite crear y administrar máquinas virtuales de forma cómoda.
- QEMU/KVM como backend de ejecución.
libvirt y virt-manager son proyectos impulsados históricamente por Red Hat, aunque hoy forman parte del ecosistema estándar de GNU/Linux.
2. Requisitos previos y verificación de hardware
Verificación de CPU
Antes de instalar nada, debemos confirmar que el procesador soporta virtualización por hardware:
$ egrep -c '(vmx|svm)' /proc/cpuinfo 16
- Resultado 0 → la CPU no expone virtualización.
- Resultado ≥ 1 → hay soporte disponible.
vmx corresponde a Intel VT-x y svm a AMD-V.
Configuración de BIOS/UEFI
Aunque la CPU sea compatible, la virtualización puede estar deshabilitada en firmware.
Entra en la BIOS/UEFI y activa opciones como:
- Intel Virtualization Technology
- SVM Mode
- AMD-V
Guarda cambios y reinicia.
Estado del sistema
Conviene partir de un sistema totalmente actualizado:
sudo apt update sudo apt upgrade
3. Instalación de paquetes necesarios
Núcleo de la virtualización
sudo apt install qemu-kvm libvirt-daemon-system
qemu-kvm: motor de ejecución acelerado por hardware.libvirt-daemon-system: demonio principal de libvirt.
Herramientas de gestión
sudo apt install libvirt-clients bridge-utils
libvirt-clients: comandos comovirsh.bridge-utils: utilidades clásicas para redes puente.
Interfaz gráfica
sudo apt install virt-manager
Esto instalará Virtual Machine Manager, la GUI de administración.
4. Configuración de usuarios y permisos
¿Por qué no ejecutar todo como root?
libvirt implementa control de acceso mediante grupos Unix. Ejecutar siempre como root:
- Es innecesario.
- Aumenta la superficie de ataque.
- Rompe el modelo de aislamiento.
Añadir el usuario a los grupos adecuados
Para gestionar máquinas virtuales sin usar siempre sudo, añade tu usuario a los grupos de virtualización y reinicia la sesión: (Sustituye $USER por tu usuario)
$ sudo usermod -aG libvirt $USER $ sudo usermod -aG kvm $USER
Aplicar cambios
Importante: Debes reiniciar para que estos cambios tengan efecto.
Habilitar y verificar el servicio
Asegúrate de que el servicio de virtualización se inicie automáticamente con el sistema:
$ groups $ sudo systemctl enable --now libvirtd $ sudo systemctl status libvirtd
5. Configuración de red (Networking)
Red NAT por defecto
libvirt crea automáticamente una red virtual llamada default:
- Las VMs salen a Internet.
- Están aisladas del host y de la LAN.
- DHCP y NAT incluidos.
Activación de la red
sudo virsh net-start default sudo virsh net-autostart default
Uso de Virt-Manager (GUI)









Interfaz principal
Al ejecutar virt-manager encontrarás:
- Lista de hosts (normalmente QEMU/KVM local).
- Máquinas virtuales existentes.
- Estado: apagada, ejecutándose, pausada.
- Acceso rápido a consola, hardware y snapshots.
Creación de una máquina virtual (paso a paso)
- Nueva VM → icono “+”.
- Selecciona método:
- ISO local.
- Instalación por red.
- Asignación de recursos:
- RAM (ej. 4096 MB).
- vCPUs (2–4 es habitual).
- Disco virtual:
- Formato:
qcow2→ dinámico, snapshots, recomendado.raw→ máximo rendimiento, más espacio.
- Formato:
- Nombre y red:
- Asigna un identificador claro.
- Red:
default(NAT) salvo que uses bridge.
Finaliza y arranca la VM.
Optimización y mejores prácticas (VirtIO)
¿Qué es VirtIO?
VirtIO es un conjunto de drivers paravirtualizados para:
- Disco.
- Red.
- Memoria.
- Consola.
Permiten reducir la sobrecarga de emulación y mejorar drásticamente el rendimiento.
Cambiar controladores a VirtIO
En la configuración de la VM:
- Disco → Cambiar bus de IDE/SATA a VirtIO.
- Interfaz de red → modelo virtio.
En sistemas GNU/Linux invitados, los drivers suelen estar incluidos por defecto.
Guest Agent
Instala dentro de la VM:
sudo apt install qemu-guest-agent
Y activa el canal en virt-manager.
Beneficios:
- Apagado limpio desde el host.
- Información de IP.
- Mejor integración con la consola.
- Clipboard en algunos entornos.
Gestión básica y troubleshooting
Snapshots
Desde virt-manager:
- Abre la VM.
- “Snapshots”.
- Crear estado actual.
- Restaurar cuando algo falle.
Imprescindible antes de actualizaciones críticas.
(Opcional avanzado) Bridge Networking en Debian 13
Configurar Bridge Networking permite que las máquinas virtuales estén en la misma red física que el host: reciben IP del router, son visibles desde otros equipos y se comportan como si fueran ordenadores reales conectados por cable o Wi-Fi.
En un host basado en Debian Project esta técnica es muy habitual en servidores domésticos, laboratorios y entornos profesionales, pero debe hacerse con cuidado: una mala configuración puede dejar al host sin conectividad.
A continuación se describe el procedimiento completo y seguro.
Esquema conceptual
Antes:
[ Host ] ---- NIC ---- LAN ---- Router | NAT (libvirt default) | [ VM ]
Después con bridge:
+---- [ VM1 ]
[ Router ] ---- [ br0 ] ---- [ VM2 ]
|
NIC física
|
[ Host ]
El bridge (br0) actúa como un switch virtual: tanto el host como las VMs se conectan a él.
Identificar la interfaz de red física
Primero averigua qué interfaz usa el host:
ip link
Ejemplos habituales:
enp3s0→ Etherneteth0wlp2s0→ Wi-Fi
Nota técnica:
El bridge funciona mejor con interfaces cableadas. Con Wi-Fi puede ser problemático dependiendo del driver.
Supondremos:
enp3s0
Instalar herramientas necesarias
En Debian 13 normalmente ya están, pero asegúrate:
sudo apt install iproute2
NetworkManager (escritorio)
En sistemas con XFCE / GNOME:
nmcli connection show
Eliminar conexión actual:
sudo nmcli con delete "Conexión por cable o wifi"
Crear bridge:
sudo nmcli con add type bridge ifname br0 con-name br0
Añadir interfaz ethernet:
Añadir tu tarjeta de cable como esclava:
sudo nmcli con add type ethernet ifname enp3s0 master br0 con-name br0-cable
$ sudo nmcli con add type ethernet ifname enp3s0 master br0
Activar:
sudo nmcli con up br0
Configurar libvirt para Bridge para Cable y NAT para Wi-Fi)


Ahora el host tiene br0. Hay que indicarle a libvirt que lo use.
El Escenario del Cable (Bridge Puro)
El modo Bridge (Puente) es el ideal para conexiones por cable Ethernet. Permite que la Máquina Virtual (VM) se comporte como un dispositivo físico más en tu casa, recibiendo una dirección IP directamente de tu router.
Configuración en Libvirt (Virt-Manager)
Para que la VM use este puente:
- Fuente de red: Dispositivo puente (Bridge device).
- Nombre del dispositivo:
br0. - Modelo de dispositivo virtual:
virtio(para máximo rendimiento).
El Escenario del Wi-Fi (Red NAT/Enrutada)
Importante: No se puede usar un Bridge tradicional con Wi-Fi debido a que el protocolo IEEE 802.11 no permite múltiples direcciones MAC en una sola conexión de cliente.
Para el Wi-Fi, la solución es usar una Red Virtual NAT, donde tu PC actúa como router para la VM.
Configuración en Libvirt
Como se observa en tus capturas de pantalla, la red default ya cumple esta función:
- Modo: NAT.
- Dispositivo:
virbr0. - Reenvío: «Cualquier dispositivo físico» (esto permite que si el Wi-Fi es tu única salida, la VM lo use automáticamente).
Configuración en la VM
En la sección de red de tu máquina virtual:
- Fuente de red: Red virtual ‘default’ : NAT.
| Característica | Bridge (br0) | NAT (default) |
| Interfaz física | Cable Ethernet | Wi-Fi o Cable |
| IP de la VM | Rango del router (ej. 192.168.5.x) | Rango interno (ej. 192.168.2.x) |
| Visibilidad | La VM es visible en toda la red | La VM está «escondida» tras el Host |
| Uso ideal | Servidores, visibilidad total | Navegación general, laptops con Wi-Fi |
Gestión de Redes Virtuales


En esta pantalla gestionas cómo se comunica libvirt con el hardware de tu equipo.
- Red «default»: Es la red preconfigurada por defecto. Utiliza el dispositivo virtual
virbr0. - Estado Activo: Indica que el switch virtual está encendido.
- Autoiniciar: Al estar marcado, la red estará disponible apenas enciendas tu PC.
- Configuración IPv4: Define el rango de direcciones (192.168.122.0/24) que tus VMs recibirán.
- Reenvío NAT: Esta es la opción clave para el Wi-Fi. Traduce las direcciones de tus VMs para que puedan salir a internet usando la IP de tu tarjeta Wi-Fi sin que el router se de cuenta.
Tipos de Red al crear una «Red Virtual Nueva
Cuando decides crear una red como la que llamaste Red1, tienes estas opciones en el desplegable de Modo:

- NAT (Network Address Translation):
- Uso: Ideal para laptops y conexiones Wi-Fi.
- Cómo funciona: Crea una red privada dentro de tu PC. Las VMs pueden salir a internet, pero los dispositivos externos de tu casa no pueden ver a las VMs.
- Enrutada (Routed):
- Uso: Redes avanzadas donde el host actúa como un router puro.
- Requisito: Requiere configurar rutas estáticas en tu router físico para que sepa cómo llegar a las VMs.
- Abierta:
- Uso: Muy poco común para usuarios domésticos; no aplica reglas de firewall ni NAT automáticamente.
- Aislada:
- Uso: Laboratorios de pruebas o malware.
- Efecto: Las VMs pueden hablar entre ellas y con el host, pero no tienen acceso a internet ni a la red local de tu casa.
- Pool SR-IOV:
- Uso: Servidores de alto rendimiento con tarjetas de red que soportan virtualización por hardware (asigna una «parte» de la tarjeta física directamente a la VM).
Crear red bridge en libvirt (opcional)
Archivo:
sudo nano /etc/libvirt/qemu/networks/bridge.xml
Contenido:
<network> <name>bridge</name> <forward mode="bridge"/> <bridge name="br0"/> </network>
Activar:
sudo virsh net-define bridge.xml sudo virsh net-start bridge sudo virsh net-autostart bridge
Verificación final
Desde el host:
ip a show br0
Desde la VM:
ip a
Debe:
- Obtener IP del mismo rango que el host
- Responder a ping desde otros equipos
- Aparecer en el router
Conclusión
Configurar KVM con entorno gráfico en Debian 13 proporciona:
- Virtualización nativa y eficiente.
- Gestión centralizada mediante libvirt.
- Interfaz potente con virt-manager.
- Rendimiento casi bare-metal gracias a VirtIO.
- Escenarios domésticos y profesionales con la misma base tecnológica.
Es, sin duda, la alternativa sólida y profesional a los hipervisores de escritorio tradicionales cuando se busca control, estabilidad y rendimiento en GNU/Linux.
Descubre más desde javiercachon.com
Suscríbete y recibe las últimas entradas en tu correo electrónico.




