VPNSmith
VPS Contabo
self-host-vpnINFO

WireGuard: eliminar un peer sin reiniciar, y que no vuelva (2026)

wg set peer remove surte efecto al instante y desaparece en el siguiente wg-quick down/up. La diferencia entre el estado en ejecución y el archivo de configuración, por qué el peer vuelve y el orden de operaciones que revoca el acceso de verdad.

Por Eric Gerard · Fundador · VPNSmith - Especialista en VPN self-host y VPS GDPR5 min de lecturaFoto vía Pexels

Eliminaste el peer. wg show confirma que ya no está. Una semana después, el portátil que revocaste vuelve a conectarse, y nada en tus logs lo explica.

No ha fallado nada. WireGuard simplemente tiene dos estados, y el comando que usaste solo cambió uno de ellos.

Los dos estados

qué esqué lo cambia
estado en ejecuciónlo que el kernel acepta en este momentowg set, wg syncconf
archivo de configuraciónlo que se carga en el siguiente arranquetu editor, wg-quick save

wg set wg0 peer PUBLIC_KEY remove actúa sobre el primero. Es inmediato, deja conectados a todos los demás peers y nunca toca /etc/wireguard/wg0.conf. La clave pública que pasas es la clave Curve25519 de 32 bytes representada en 44 caracteres base64, y por eso un peer se identifica por esa cadena y no por un nombre: WireGuard no guarda ningún nombre para él.

Así que el siguiente wg-quick down wg0 && wg-quick up wg0 (un reinicio, una actualización de paquetes, un restart de systemd en el que no pensaste) lee un archivo que todavía contiene el peer, y lo vuelve a añadir. Nadie recibe aviso. El acceso simplemente se reanuda.

Eliminarlo para siempre

Dos órdenes de operaciones posibles, y el segundo es el preferible.

El rápido, cuando el archivo no contiene nada que te importe:

sudo wg set wg0 peer PUBLIC_KEY remove
sudo wg-quick save wg0

wg-quick save vuelve a escribir el estado en ejecución en el archivo. Funciona, y reescribe el archivo desde el punto de vista del kernel. Tus comentarios desaparecen. En un servidor con una docena de peers, esos comentarios suelen ser el único registro de qué peer corresponde a qué portátil. Perderlos convierte una configuración legible en una lista de claves públicas anónimas.

El preferible, que mantiene el archivo como fuente de verdad:

sudo nano /etc/wireguard/wg0.conf        # delete the whole [Peer] block
sudo wg syncconf wg0 <(wg-quick strip wg0)

wg syncconf aplica el archivo a la interfaz en ejecución sin bajarla: solo se ve afectado lo que ha cambiado, y los demás túneles conservan sus sesiones. wg-quick strip elimina las directivas que el kernel no entiende (Address, DNS, PostUp) e imprime lo que queda.

La diferencia importa en un servidor con varios clientes: wg-quick down && up desconecta a todo el mundo durante un par de segundos para revocar un solo peer. La implementación del kernel admite hasta 1.048.576 peers por dispositivo, así que el límite con el que te topas primero es tu propia capacidad para distinguirlos, no el del protocolo.

Dos llaves planas en una anilla colgadas de una placa metálica clara fijada a una puerta de madera clara, la llave superior grabada con las iniciales R.M.I.
Dos llaves planas en una anilla colgadas de una placa metálica clara fijada a una puerta de madera clara, la llave superior grabada con las iniciales R.M.I.

Dos llaves planas en una sola anilla, colgadas de una placa metálica clara atornillada a una puerta de madera clara. La llave superior lleva grabadas las iniciales «R.M.I.». Tonos cálidos, veta de la madera visible.

Comprueba en los dos sitios, no en uno

sudo wg show wg0 peers                        # what the kernel accepts now
grep PublicKey /etc/wireguard/wg0.conf        # what loads next time

Una clave ausente en el primero y presente en el segundo es una revocación con fecha de caducidad. Es justo la situación para la que existe este artículo, y es invisible hasta el día en que la interfaz se reinicia.

Los comandos en caliente usados aquí (wg set wg0 peer <pubkey> remove, wg show wg0 latest-handshakes, wg show wg0 endpoints) caben en una página A4 imprimible de nuestra WireGuard Cheat Sheet gratuita, junto a las claves de [Peer] y el comando que vuelve a añadir un peer en caliente. Descarga directa, sin registro. Descargar la cheat sheet.

Lo que revocar no hace

Eliminar el peer significa que el servidor rechaza el handshake. El material de claves del dispositivo perdido deja de servir contra este servidor. Eso es real, y es ahí donde termina el efecto.

La revocación no es del todo instantánea, y el retraso está acotado por los propios temporizadores del protocolo. Una clave de sesión se rechaza al cabo de 180 segundos (REJECT_AFTER_TIME), y normalmente se inicia un nuevo handshake al cabo de 120 segundos (REKEY_AFTER_TIME). Así que una sesión ya establecida cuando eliminaste el peer puede seguir transportando tráfico hasta tres minutos antes de que el kernel la descarte. Si esa ventana importa, baja la interfaz en lugar de esperar.

El archivo de configuración sigue en ese dispositivo. También su clave privada, y todo lo demás que contenía: una sesión que seguía abierta, un gestor de contraseñas desbloqueado, el buzón de correo que permite restablecer tus otras cuentas. Revocar el túnel es el primer paso correcto. No es la respuesta completa, y tratarlo como tal es la manera en que la gente acaba perfectamente confiada y aun así expuesta.

Sitúa tu propia superficie de ataque: 10 preguntas, unos tres minutos, sin cuenta, sin email, nada almacenado. El resultado señala el cambio que más reduce tu exposición, y para quien aloja sus propios servicios rara vez es otra regla de firewall.

En resumen

Lo que hicisteLo que cambió en realidad
wg set … peer … removesolo el estado en ejecución, se revierte al reiniciar
wg-quick savetambién el archivo, a costa de tus comentarios
editar el archivo y luego wg syncconfambos, sin desconectar a los demás peers
revocado tras perder un dispositivoel túnel, no lo que el dispositivo todavía contiene

Una frase que conviene recordar: un peer eliminado de la memoria y que sigue en el archivo no está eliminado, está aplazado.

Cuando el dispositivo revocado necesite un sustituto, genera un par de claves nuevo en lugar de reutilizar el antiguo: nuestro generador de configuración WireGuard escribe el nuevo archivo de cliente y su código QR, además de un archivo de servidor cuyo bloque [Peer] copias en el tuyo antes de wg syncconf. El generador es gratuito hasta 10 dispositivos; a partir de ahí, WireGuard Pro (nuestro propio producto, 9 EUR en un solo pago, sin suscripción) sube el límite a 250 y añade un ZIP con cada .conf de cliente y su código QR en PNG, práctico para configurar una oficina o una familia entera de una sola vez.

★ Datacenter Núremberg GDPR · ✓ IPv4 dedicada incluida · puerto de 200 Mbit/s

Aloja tu VPN en tu propio VPS → ContaboAcceso root completo · IPv4 pública · elige tu región→

Preguntas frecuentes

¿Cómo se elimina un peer de WireGuard sin reiniciar el túnel?
Usa wg set wg0 peer PUBLIC_KEY remove. Surte efecto de inmediato, los demás peers no se ven afectados y ninguna interfaz se cae. Lo que no hace es modificar tu archivo de configuración: el peer desaparece solo del estado en ejecución, y volverá la próxima vez que se levante la interfaz a partir de ese archivo.
¿Por qué vuelve el peer que eliminé?
Porque lo eliminaste de la memoria, no del disco. WireGuard tiene dos estados distintos: lo que el kernel tiene cargado en este momento, que es lo que cambia wg set, y lo que contiene /etc/wireguard/wg0.conf, que es lo que lee wg-quick al arrancar. Si eliminas el peer de uno y no del otro, el siguiente wg-quick down y up lo restaura sin avisar. Es la forma más habitual de creer que un acceso está revocado cuando en realidad sigue funcionando.
¿Qué hace exactamente wg-quick save?
Vuelve a escribir el estado en ejecución en el archivo de configuración, lo que sí hace permanente la eliminación. El precio es que reescribe el archivo desde el punto de vista del kernel: los comentarios desaparecen, el orden cambia y se pierde todo lo que wg-quick no modela, como tus propias anotaciones que indican a qué dispositivo pertenece cada peer. En un servidor con una docena de peers, esos comentarios suelen ser lo único que te dice quién es quién.
¿Cómo compruebo que un peer ha desaparecido de verdad?
Con dos comandos, porque hay dos estados. wg show wg0 peers lista lo que el kernel acepta ahora mismo. grep PublicKey /etc/wireguard/wg0.conf muestra lo que se cargará la próxima vez. Un peer ausente en el primero y presente en el segundo es una revocación que caduca en el siguiente reinicio.
¿Basta con eliminar el peer tras perder un dispositivo?
Para el túnel, sí: sin una entrada de peer que coincida, el servidor rechaza el handshake y el material de claves del dispositivo perdido deja de servir contra él. Pero no resuelve nada respecto al propio dispositivo. El archivo de configuración, su clave privada y todo lo demás que contenía ese dispositivo siguen ahí, en manos de otra persona. Revocar es el primer paso correcto; no es la respuesta completa.