Saltar al contenido
sudoquest@root
Proxmox

El nodo

Un servidor con Proxmox VE recién instalado: entrar en su web, sus servicios, los repositorios sin suscripción, buscar actualizaciones, la hora y el DNS.

30 min de lectura

La Gestoría Prado lleva las cuentas de medio barrio y acaba de comprar su primer servidor: una torre que vivirá en el cuarto de la limpieza, junto al router. El técnico que la instaló lo dejó a medias y ya no contesta al teléfono. En el monitor del servidor solo se ve una pantalla negra con una dirección. Te toca dejarlo listo para trabajar.

Proxmox VE (Virtual Environment) convierte un servidor en muchos: dentro de él corren máquinas virtuales (VM, un ordenador entero simulado, con su propio sistema) y contenedores (LXC, un Linux ligero que comparte el núcleo del servidor). La gestoría tendrá ahí su programa de contabilidad, sus carpetas compartidas y sus copias, cada cosa por su lado. Es gratis y libre; la empresa que lo hace, de Viena, vive de vender suscripciones con soporte y con el repositorio de actualizaciones más probado. En este track usas la versión 9, que va sobre Debian 13.

Cada servidor con Proxmox es un nodo. Varios nodos pueden unirse en un clúster (eso, en el tema 6); el de la gestoría está solo, y se llama pve1.

La web: el puerto 8006

Al arrancar, el monitor del nodo enseña dónde está su web. Es el texto de /etc/issue, el que sale antes de pedir el usuario en la consola:

root@pve1:~# cat /etc/issue

------------------------------------------------------------------------------

Welcome to the Proxmox Virtual Environment. Please use your web browser to
configure this server - connect to:

https://192.168.50.10:8006/

------------------------------------------------------------------------------

Es https, y con un certificado que el nodo se firmó a sí mismo al instalarse: el navegador avisará de que no se fía. En tu red, con tu servidor, se acepta (o, mejor, se le pone después un certificado de verdad).

Para entrar, el User name y el Realm, el reino: de dónde sale ese usuario. Linux PAM son los usuarios del Debian de debajo (como root, con su contraseña de Linux); Proxmox VE authentication server son usuarios que solo existen en Proxmox. El primero que hay siempre es root en PAM: root@pam.

Al entrar sale un aviso: No valid subscription. Lo dirá cada vez que entres mientras el nodo no tenga suscripción; no impide nada, se cierra con OK.

Ejercicio

Entrar en la web

El servidor de la Gestoría Prado está encendido y su monitor dice dónde está su web: https://192.168.50.10:8006/. Entra como root (reino Linux PAM; la contraseña, Prado-2026) y abre la Shell del nodo para ver qué versión tiene.

Encendiendo el nodo…

Sus servicios

Lo que hace funcionar un nodo son unos cuantos servicios de systemd. Los que más vas a ver:

  • pve-cluster: el sistema de archivos de /etc/pve, donde vive la configuración de todo (las VM, los almacenes, los usuarios). Sin él, nada funciona: ni la web ni las órdenes de Proxmox.
  • pvedaemon: el que hace de verdad lo que se pide por la API (como root).
  • pveproxy: la web y la API en el puerto 8006. Recibe lo que pides y se lo pasa a pvedaemon.
  • pvestatd: recoge el uso de CPU, memoria y disco de todo, para las gráficas.

Si la web no carga, lo primero es ver si pveproxy está en marcha. Por ssh:

root@pve1:~# systemctl status pveproxy
○ pveproxy.service - PVE API Proxy Server
   Loaded: loaded (/usr/lib/systemd/system/pveproxy.service; enabled; preset: enabled)
   Active: inactive (dead) since Tue 2026-10-06 08:17:46 UTC; 2s ago
 Duration: 40s
…
Oct 06 08:17:45 pve1 pveproxy[1031]: server stopped
Oct 06 08:17:46 pve1 systemd[1]: pveproxy.service: Deactivated successfully.
Oct 06 08:17:46 pve1 systemd[1]: Stopped pveproxy.service - PVE API Proxy …rver.

inactive (dead) y, en su diario, que alguien lo paró. Se arranca como cualquier servicio, y ss confirma que ya escucha en el 8006:

root@pve1:~# systemctl start pveproxy
root@pve1:~# ss -tlnp
State     Recv-Q    Send-Q       Local Address:Port        Peer Address:Port    Process
LISTEN    0         4096                     *:8006             0.0.0.0:*        users:(("pveproxy",pid=1204,fd=6))
LISTEN    0         4096             127.0.0.1:85               0.0.0.0:*        users:(("pvedaemon",pid=969,fd=6))
LISTEN    0         4096                     *:3128             0.0.0.0:*        users:(("spiceproxy",pid=1065,fd=6))

En la web están en pve1 ▸ System, con botones para arrancarlos, pararlos y reiniciarlos.

Ejercicio

La web no carga

En el navegador, https://192.168.50.10:8006/ no contesta. Por ssh sí llegas al nodo (ya estás dentro, como root). Mira qué le pasa al servicio de la web, pveproxy, arráncalo y entra en la web (root, Prado-2026).

Encendiendo el nodo…

Los repositorios

Proxmox se actualiza con apt, como Debian, de sus repositorios. Un nodo recién instalado trae los de Debian y los de empresa de Proxmox (el de Proxmox VE y el de Ceph), que solo contestan si el nodo tiene suscripción. La gestoría no la tiene, así que buscar actualizaciones falla:

root@pve1:~# apt update
Hit:1 http://deb.debian.org/debian trixie InRelease
Hit:2 http://deb.debian.org/debian trixie-updates InRelease
Hit:3 http://security.debian.org/debian-security trixie-security InRelease
Err:4 https://enterprise.proxmox.com/debian/ceph-squid trixie InRelease
401  Unauthorized [IP: 66.70.154.82 443]
Err:5 https://enterprise.proxmox.com/debian/pve trixie InRelease
401  Unauthorized [IP: 66.70.154.82 443]
Error: Failed to fetch https://enterprise.proxmox.com/debian/pve/dists/trixie/InRelease  401  Unauthorized [IP: 66.70.154.82 443]
Error: The repository 'https://enterprise.proxmox.com/debian/pve trixie InRelease' is not signed.
…

401 Unauthorized: sin suscripción, no hay paso. Para eso está el repositorio sin suscripción (no-subscription): los mismos paquetes, un poco antes y algo menos probados. Es el que se usa en casa, para aprender y en sitios pequeños que no pagan soporte.

Los repositorios están en /etc/apt/sources.list.d/, uno por archivo .sources (el formato deb822: campos Clave: valor, y cada repositorio separado por una línea vacía):

root@pve1:~# cat /etc/apt/sources.list.d/pve-enterprise.sources
Types: deb
URIs: https://enterprise.proxmox.com/debian/pve
Suites: trixie
Components: pve-enterprise
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg

En la web, en pve1 ▸ Updates ▸ Repositories: cada archivo con sus repositorios, y arriba lo que opina Proxmox de cómo los tienes. Se elige la línea de pve-enterprise y Disable; lo mismo con la de Ceph; y con Add (tras el aviso de la suscripción) se elige No-Subscription. En los archivos queda así: el de empresa, con Enabled: false al final; el nuevo, en proxmox.sources:

root@pve1:~# cat /etc/apt/sources.list.d/proxmox.sources
Types: deb
URIs: http://download.proxmox.com/debian/pve
Suites: trixie
Components: pve-no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg

Ejercicio

Los repositorios

La gestoría no tiene suscripción, pero el nodo trae puestos los repositorios de empresa (el de Proxmox VE y el de Ceph), que sin ella contestan 401. Desactívalos y añade el de Proxmox VE sin suscripción.

Encendiendo el nodo…

Buscar actualizaciones

En pve1 ▸ Updates, el botón Refresh busca actualizaciones: es un apt update hecho por el nodo, y se ve como una tarea (abajo, en Tasks, con su registro). Con los repositorios bien, acaba en TASK OK, y la lista de paquetes por actualizar crece con los de Proxmox:

root@pve1:~# apt update
Hit:1 http://deb.debian.org/debian trixie InRelease
Hit:2 http://deb.debian.org/debian trixie-updates InRelease
Hit:3 http://security.debian.org/debian-security trixie-security InRelease
Get:4 http://download.proxmox.com/debian/pve trixie InRelease [4357 B]
Get:5 http://download.proxmox.com/debian/pve trixie/pve-no-subscription amd64 Packages [393 kB]
Fetched 398 kB in 1s (337 kB/s)
183 packages can be upgraded. Run 'apt list --upgradable' to see them.

Hit es que ya tenía esa lista y no ha cambiado; Get, que la ha bajado; Err, que ha fallado. Si Refresh acaba con command 'apt-get update' failed: exit code 100, el registro de la tarea dice qué repositorio falló.

Ejercicio

Buscar actualizaciones

Alguien ya añadió el repositorio sin suscripción, pero al pulsar Refresh la tarea acaba con error. Mira por qué en su registro, arréglalo y busca actualizaciones hasta que salga TASK OK.

Encendiendo el nodo…

La hora

Un nodo recién instalado suele estar en UTC. Funciona, pero las horas de las tareas, de los registros y de las copias no cuadran con el reloj de la pared. Se cambia en pve1 ▸ System ▸ Time ▸ Edit, o en la shell:

root@pve1:~# timedatectl set-timezone Europe/Madrid
root@pve1:~# timedatectl
               Local time: Tue 2026-10-06 10:18:06 CEST
         Universal time: Tue 2026-10-06 08:18:06 UTC
               RTC time: Tue 2026-10-06 08:18:05
              Time zone: Europe/Madrid (CEST, +0200)
System clock synchronized: yes
            NTP service: active
        RTC in local TZ: no

La zona solo cambia cómo se enseña la hora: el reloj sigue en UTC por dentro y se pone en hora solo por NTP (System clock synchronized: yes). Madrid es CET en invierno y CEST (una hora más) en verano; el cambio lo hace él solo. En Debian 13, la zona es el enlace /etc/localtime.

Ejercicio

La hora de España

El nodo está en UTC y los registros de las tareas no cuadran con la hora de la oficina. Ponle la zona horaria de Madrid y compruébalo desde la shell.

Encendiendo el nodo…

El DNS

Para bajar actualizaciones, el nodo tiene que convertir download.proxmox.com en una IP: eso es el DNS. El instalador pone el que había en la red donde se instaló, y este se instaló en el taller del técnico anterior:

root@pve1:~# pvesh get /nodes/pve1/dns
┌────────┬───────────────┐
│ key    │ value         │
╞════════╪═══════════════╡
│ dns1   │ 192.168.100.3 │
├────────┼───────────────┤
│ search │ taller.lan    │
└────────┴───────────────┘

pvesh es la API de Proxmox desde la shell: lo mismo que lee y cambia la web. En la web, en pve1 ▸ System ▸ DNS ▸ Edit: el Search domain (el que se añade a los nombres cortos) y hasta tres servidores. En la gestoría, el DNS lo da su router. Por debajo, se escribe en /etc/resolv.conf:

root@pve1:~# pvesh set /nodes/pve1/dns --search prado.lan --dns1 192.168.50.1

Ejercicio

El DNS de la oficina

El técnico anterior instaló el nodo en su taller y se quedó con el DNS de allí (192.168.100.3, dominio taller.lan), que en la gestoría no existe. Pon como DNS el router de la oficina, 192.168.50.1, con el dominio prado.lan.

Encendiendo el nodo…

Resumen

  • Proxmox VE hace de un servidor (un nodo) muchos: VM y contenedores. Se maneja con su web en https://IP:8006/ y con la shell del Debian de debajo.
  • Se entra como root@pam (los usuarios de Linux) o con usuarios propios de Proxmox (@pve).
  • La web es pveproxy; lo hace pvedaemon; todo depende de pve-cluster (/etc/pve). Si la web no carga, systemctl status pveproxy por ssh.
  • Sin suscripción, los repositorios de empresa dan 401: se desactivan y se añade el sin suscripción. Están en /etc/apt/sources.list.d/*.sources (deb822).
  • Refresh es un apt update hecho como tarea, con su registro.
  • La zona horaria y el DNS, en System, o con timedatectl y pvesh.