Configurando Proxmox

Intro

La virtualización en servidores permite ejecutar múltiples sistemas operativos o servicios en una sola máquina física, usando máquinas virtuales. Esto mejora el uso de recursos, facilita la gestión y aumenta la escalabilidad. Es clave en entornos modernos como centros de datos y nubes privadas.

  1. Virtualización de hardware (o completa): Usa un hipervisor para emular hardware completo, permitiendo ejecutar múltiples sistemas operativos independientes (ej. VMware, KVM).
  2. Virtualización a nivel de sistema operativo (contenedores virtualización ligera): Comparte el mismo kernel entre instancias aisladas, como en Docker o LXC, ideal para aplicaciones ligeras.
  3. Virtualización de escritorio: Permite ejecutar escritorios virtuales en servidores, accesibles remotamente por usuarios (ej. VDI con Citrix o VMware Horizon).

Table of Contents

Agregar almacenamiento

Centro de datos -> Amacenamiento -> Agregar -> Directorio

ID: imagenes

Directorio: /var/lib/imagenes


Instalar imagen ISO Debian

Descarga de imagen desde Url

https://ftp.osuosl.org/debian-cdimage/12.11.0-live/amd64/iso-hybrid/debian-live-12.11.0-amd64-standard.iso

Instalar imagen ISO Ubuntu

Descarga de imagen desde Url

https://releases.ubuntu.com/noble/ubuntu-24.04.2-live-server-amd64.iso

Crear un puente (bridge) de red.

Un puente (bridge) de red es una interfaz virtual en Proxmox que conecta tus VMs con la red física del servidor, a través de la interfaz.

1. Ve al nodo Proxmox

  • En el panel izquierdo, haz clic en tu nodo («pve» nombre del servidor).

2. Crear

  • Luego, ve a Red → Crear.

3. Crea un nuevo Bridge

  • Haz clic en Create → Linux Bridge (arriba a la derecha).

Una Linux bridge (puente de red en Linux) es una interfaz virtual que actúa como un switch de red dentro del sistema operativo. Permite que múltiples interfaces de red (físicas o virtuales) se comuniquen entre sí como si estuvieran conectadas a un switch físico.

  • En entornos de virtualización (como KVM/QEMU, Proxmox, VirtualBox), se usa para conectar máquinas virtuales a la red física.
  • Para crear redes internas entre contenedores o VMs.
  • Para redireccionar tráfico entre interfaces.

4. Completa el formulario:

  • Name: vmbr0 (este es el nombre estándar, puedes usar otro si lo deseas).
  • Bridge ports: selecciona tu interfaz física (ej: ens18).
  • IPv4/CIDR: pon aquí la IP pública que tenía antes tu interfaz física.
  • Gateway (IPv4): el gateway que te dio tu proveedor.
  • IPv6: déjalo en «None» si no lo necesitas.
  • Marca Inicio automático.

5. ¿Cómo encontrarlos? (desde la consola o terminal)

Abre una consola en Proxmox (por ejemplo desde la pestaña Shell) y ejecuta los siguientes comandos:


🔹 1. Saber cuál es tu interfaz de red física (bridge_ports)

ip a

Busca la interfaz que tiene asignada una IP pública (normalmente empieza con ens, eth, o eno).

Ejemplo de salida:

Salida:
2: ens18: <BROADCAST,...> inet 123.123.123.100/24 brd 123.123.123.255 scope global ens18

→ En este ejemplo, bridge_ports = ens18


🔹 2. Obtener tu IP pública y máscara (IPv4/CIDR)

ip -4 addr show dev ens18

(Usa el nombre de tu interfaz real)

Salida:
inet 123.123.123.100/24 brd ...

→ Entonces, IPv4/CIDR = 123.123.123.100/24


🔹 3. Obtener el gateway (Gateway (IPv4))

Ejecuta:

bashCopiar

Editar

ip route

Verás algo como:

Salida:default via 123.123.123.1 dev ens18

→ Entonces, Gateway (IPv4) = 123.123.123.1

🔹 4. Ejemplo completo

CampoValor obtenido
Namevmbr0
Bridge portsens18
IPv4/CIDR123.123.123.100/24
Gateway (IPv4)123.123.123.1

Nota: No olvides darle a «Aplicar cambios»


Crear máquina virtual

  1. Plusamos sobre crear maquina virtual.
  2. General -> Nombre, en nuestro caso Debian.
  3. SO -> el que hemos creado «debian-live».
  4. Sistema -> Siguiente. Luego Discos elegimos por ejemplo images.
  5. CPU -> Siguiente. Memoria -> siguiente.
  6. Red elegimos el puente que hemos creado anteriormente.
  7. En confirmar tenemos un resumen de lo que vamos a crear.

Agregar disco duro

Si seleccionamos nuestra nueva máquina virtual podemos elegir el harware que queremos instalar, en este caso un disco duro.

  1. Pulsamos sobre Agregar y luego la primera opción «Disco duro».
  2. Elegimos el almacenmamiento.
  3. El tamaño del disco duro.
  4. Pulsamos agregar.

NAT y redirección de puertos en Proxmox para que puedas acceder a una máquina virtual (VM) desde Internet usando una única IP pública.

En redes, NAT (Network Address Translation) es un mecanismo que permite a múltiples dispositivos dentro de una red privada compartir una única dirección IP pública para acceder a Internet. Funciona traduciendo las direcciones IP privadas de los dispositivos internos a una dirección IP pública, y viceversa, cuando se comunican con el exterior. 

Vamos a configurar NAT y redirección de puertos en Proxmox para que puedas acceder a una máquina virtual (VM) desde Internet usando una única IP pública. Este método es ideal si tienes varias VMs y solo una IP pública.


🧩 ¿Qué necesitas?

  • Una IP pública asignada a tu servidor Proxmox.
  • Una VM con una IP privada creada anteriormente (por ejemplo, 192.168.100.10).
  • Acceso root o sudo al host Proxmox.

🛠️ Paso 1: Configurar red NAT en Proxmox

Edita el archivo /etc/network/interfaces en el host Proxmox para crear una red interna con NAT. Ejemplo:

sudo nano /etc/network/interfaces
auto vmbr1
iface vmbr1 inet static
    address 192.168.100.1
    netmask 255.255.255.0
    bridge_ports none
    bridge_stp off
    bridge_fd 0

Esto crea una red virtual interna (192.168.100.0/24) para tus VMs.

Reinicia la red:

systemctl restart networking

🛠️ Paso 2: Asignar red interna a la VM

  1. En la interfaz web de Proxmox:
    • Ve a la VM.
    • En Hardware, edita la tarjeta de red.
    • Asigna el bridge vmbr1.
  2. Dentro de la VM, configura una IP estática:

Para Debian/Ubuntu:

sudo nano /etc/netplan/01-netcfg.yaml
network:
  version: 2
  ethernets:
    eth0:
      addresses:
        - 192.168.100.10/24
      gateway4: 192.168.100.1
      nameservers:
        addresses: [8.8.8.8, 1.1.1.1]

Aplica los cambios:

sudo netplan apply

🛡️ Paso 3: Configurar NAT y redirección de puertos

En el host Proxmox, ejecuta:

# Habilitar reenvío de paquetes
echo 1 > /proc/sys/net/ipv4/ip_forward

Para hacerlo permanente:

echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p

🔁 Redirigir puertos (ejemplo: SSH puerto 22)

# Redirigir puerto 22 de la IP pública a la VM
iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 22 -j DNAT --to-destination 192.168.100.10:22

# Hacer NAT para que la VM pueda salir a Internet
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o vmbr0 -j MASQUERADE

para ver las reglas de iptables

sudo iptables -t nat -L -n -v

Reemplaza vmbr0 con el bridge que tiene la IP pública.

💾 Paso 4: Guardar reglas iptables

Para que las reglas persistan tras reinicio, instala iptables-persistent:

apt install iptables-persistent

Guarda las reglas cuando lo pida o manualmente:

iptables-save > /etc/iptables/rules.v4

✅ Paso 5: Probar conexión

ssh usuario@tu_ip_publica

Desde fuera de tu red


Usar Python para levantar un servidor web básico

Vamos a arrancar algo sencillo en el puerto 8080 dentro de tu VM para probar que la redirección funciona correctamente.

Usaremos Python con el módulo http.server, que es muy fácil y no requiere instalar nada adicional si tienes Python ya instalado.


✅ Paso 1: Crear una carpeta con contenido

mkdir ~/webtest
cd ~/webtest
echo "<h1>¡Hola desde el puerto 8080!</h1>" > index.html

✅ Paso 2: Arrancar el servidor

Si tienes Python 3:

python3 -m http.server 8080

Esto levantará un servidor web que sirve archivos desde esa carpeta en el puerto 8080.


Paso 3: Acceder desde fuera

Una vez que hayas configurado la redirección en Proxmox (como vimos antes), puedes acceder desde cualquier navegador:

http://TU_IP_PUBLICA:8080

Deberías ver el mensaje: ¡Hola desde el puerto 8080!


Abrir un puerto en una VM para exponer una aplicación

Paso 1: Verifica que la aplicación esté corriendo en la VM

Dentro de la VM, asegúrate de que la aplicación esté escuchando en el puerto 8080:

ss -tuln | grep :8080

También puedes probar desde el host Proxmox:

curl http://192.168.100.10:8080

Paso 2: Redirigir el puerto 8080 desde el host Proxmox

En el host Proxmox, ejecuta:

sudo iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 8080 -j DNAT --to-destination 192.168.100.10:8080
sudo iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o vmbr0 -j MASQUERADE

Asegúrate de que vmbr0 es la interfaz conectada a Internet y 192.168.100.10 es la IP privada de tu VM.


Paso 3: Abrir el puerto en el firewall (si aplica)

En el host Proxmox:

sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT

Paso 4: Acceder desde fuera

Desde cualquier navegador o cliente HTTP externo:

http://TU_IP_PUBLICA:8080

Clonación de máquinas virtuales

1. Crear una plantilla de VM en Proxmox

  1. Crea una VM con el sistema operativo y configuración base.
  2. Instala lo necesario (actualizaciones, herramientas, etc.).
  3. Apaga la VM.
  4. En la interfaz web de Proxmox:
    • Haz clic derecho sobre la VM.
    • Selecciona Convertir en plantilla.

2. Clonar la plantilla

  1. Haz clic derecho sobre la plantilla.
  2. Selecciona Clonar.
  3. Elige:
    • Nombre de la nueva VM.
    • Tipo de clonaciónFull Clone (independiente) o Linked Clone (más ligero).
  4. Espera a que se cree la nueva VM.

3. Configurar la nueva VM clonada

Cambiar el nombre (hostname)

Dentro de la VM:

sudo hostname -b nuevo-nombre

Edita también /etc/hosts si es necesario.


Cambiar la IP

Edita la configuración de red en la VM:

En Ubuntu/Debian con Netplan:
sudo nano /etc/netplan/01-netcfg.yaml

Ejemplo:

network:
  version: 2
  ethernets:
    eth0:
      addresses:
        - 192.168.100.20/24
      gateway4: 192.168.100.1
      nameservers:
        addresses: [8.8.8.8, 1.1.1.1]

Aplica los cambios:

sudo netplan apply

Registrar la IP en Proxmox (PVE)

No necesitas registrar la IP manualmente en Proxmox. Una vez que la VM está encendida:

  • Proxmox detecta automáticamente la IP si tienes instalado qemu-guest-agent en la VM.
  • Puedes ver la IP en la interfaz web de Proxmox, en la pestaña Resumen o Red de la VM.

Para instalar el agente en la VM (Ubuntu/Debian):

sudo apt install qemu-guest-agent
sudo systemctl enable --now qemu-guest-agent

Tipos de clonación

Clonación completa (Full Clone)

Características:

  • Crea una copia independiente de la plantilla.
  • El disco de la nueva VM es completo y separado del disco de la plantilla.
  • Puedes mover la VM a otro nodo sin problemas.
  • No depende de la plantilla original una vez creada.

Ventajas:

  • Total independencia.
  • Ideal para producción o entornos donde la VM debe ser persistente y modificable.

Desventajas:

  • Ocupa más espacio en disco.
  • Tarda más en crearse.

Clon vinculado (Linked Clone)

Características:

  • Crea una VM que comparte el disco base con la plantilla.
  • Solo guarda los cambios respecto a la plantilla.
  • Depende de la plantilla: si la plantilla se elimina, el clon vinculado deja de funcionar.

Ventajas:

  • Muy rápido de crear.
  • Ocupa mucho menos espacio.
  • Ideal para entornos de pruebas, desarrollo, laboratorios, aulas.

Desventajas:

  • No se puede mover fácilmente entre nodos.
  • Si actualizas la plantilla no se actualizan los clones vinculados automáticamente.
    • Cada clon vinculado mantiene el estado del disco base en el momento en que fue creado.
    • Los cambios posteriores en la plantilla no se reflejan en los clones existentes.

¿Entonces cuándo usar cada uno?

UsoRecomendación
Producción✅ Clonación completa
Pruebas o desarrollo rápido✅ Clon vinculado
Ahorro de espacio✅ Clon vinculado
Independencia total✅ Clonación completa

Gestión de permisos en Proxmox

Buenas prácticas

  • Usa grupos si tienes varios usuarios con el mismo nivel de acceso.
  • No uses Administrator a menos que sea estrictamente necesario.

1. Dominios

Un dominio en Proxmox define de dónde provienen los usuarios. Puede ser:

  • pve: usuarios locales creados directamente en Proxmox.
  • pam: usuarios del sistema Linux del nodo.
  • ldap o ad: usuarios de un servidor LDAP o Active Directory externo.

Ejemplo:

  • juan@pve → usuario local de Proxmox.
  • ana@pam → usuario del sistema Linux.
  • maria@empresa.local → usuario de Active Directory.

2. Usuarios

Los usuarios son las cuentas que pueden iniciar sesión en Proxmox y realizar acciones según los permisos asignados.

3. Grupos

Los grupos permiten organizar usuarios y asignar permisos de forma colectiva.

4. Roles

Un rol es un conjunto de privilegios o permisos (acciones permitidas). Proxmox incluye roles predefinidos como por ejemplo:

RolDescripción
AdministratorAcceso total a todo
PVEAdminAdministración general sin acceso root
VMUserControl básico de VMs
PVEAuditorSolo lectura

5. Permisos

Los permisos se asignan combinando:

  • Una ruta* o recurso (nodo, VM, almacenamiento, etc.)
  • Un usuario o grupo
  • Un rol

*Rutas

RutaSignificado
/Todo el clúster
/vms/101Solo la VM con ID 101
/nodes/pveNodo llamado pve
/storage/localAlmacenamiento local
/storageTodo el almacenamiento

Contenedores

Crear plantilla de contenedor

Edición del archivo de red para que funcione la descarga de las plantillas de los contenedore

Para que funcione la descarga de las plantillas de los contenedores hay que realizar las siguientes modificacion en el interfaces

nano /etc/network/interfaces

Y busca la sección que corresponde a tu interfaz principal (por ejemplo vmbr0 o eth0). Debería verse algo como:

iface vmbr0 inet static
   address 192.168.1.100/24
   gateway 192.168.1.1
   bridge_ports eno1
   bridge_stp off
   bridge_fd 0

Agrega estas líneas dentro de esa sección:

dns-nameservers 1.1.1.1 8.8.8.8

Reinicia la red (opcional pero recomendado):

systemctl restart networking

Verifica que el DNS ya funciona:

ping download.proxmox.com

Crear contenedor

1. Selecciona: «Create CT»


2. Pestaña: General

  • CT ID: un número único (ej. 100)
  • Hostname: nombre del contenedor (ej. webserver)
  • Password: contraseña del usuario root dentro del contenedor
  • (Opcional: importar clave SSH pública)

Haz clic en Next.

3. Pestaña: Template

  • Elige un template que ya hayas descargado (ej: debian-12-standard_12.7-1_amd64.tar.zst)

Haz clic en Next.

4. Pestaña: Root Disk

  • Selecciona:
    • Storage (normalmente local-lvm o local)
    • Disk size (por ejemplo, 8 GiB)

Haz clic en Next.

5. Pestaña: CPU

  • Selecciona cuántos cores asignarás al contenedor (por ejemplo, 2)

Haz clic en Next.

6. Pestaña: Memory

  • RAM: Asigna memoria (ej: 1024 MB)
  • Swap: Opcional (ej: 512 MB)

Haz clic en Next.

7. Pestaña: Network

  • Elige el bridge de red (normalmente vmbr0)
  • IP Address:
    • Automático (DHCP)
    • Manual (por ejemplo, 192.168.100.50/24)
  • Gateway:
    • Por ejemplo: 192.168.100.1

Haz clic en Next.

8. Pestaña: DNS

  • Puedes dejarlo en blanco para usar el del host, o poner:
    • DNS domain: local
    • DNS server: 1.1.1.1 o 8.8.8.8

Haz clic en Next.

9. Pestaña: Confirm

  • Marca la casilla: ✅ Start after created (si deseas que arranque automáticamente)
  • Haz clic en Finish
Scroll al inicio
Esta web utiliza cookies propias para su correcto funcionamiento. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos.
Privacidad