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 pveproxypor 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 updatehecho como tarea, con su registro. - La zona horaria y el DNS, en System, o con
timedatectlypvesh.