Tutoriales de VPS
Cómo configurar una VPN WireGuard en un VPS (2026): desde elegir el servidor hasta conectar tu móvil y tu ordenador a casa
Si quieres montar tu propia VPN ligera, WireGuard es más sencillo que OpenVPN y más adecuado para interconectar todos los dispositivos que muchas herramientas proxy. Esta guía explica paso a paso la elección del VPS, la apertura de puertos, la configuración del servidor, la importación en el cliente y la resolución de problemas cuando no conecta.

Cómo configurar una VPN WireGuard en un VPS (2026): desde elegir el servidor hasta conectar tu móvil y tu ordenador a casa
Mucha gente, la primera vez que oye hablar de WireGuard, lo confunde con V2Ray, Xray y Shadowsocks.
En realidad, no son lo mismo.
- V2Ray / Xray / Shadowsocks se parecen más a herramientas proxy
- WireGuard es una VPN: conecta tus dispositivos a una red virtual cifrada
Si lo que necesitas es:
- Acceder de forma segura a servicios de casa o de la empresa desde el móvil o el ordenador cuando estás fuera
- Dar a tu portátil una salida cifrada estable
- Montar una pequeña red interna entre varios VPS, NAS y ordenadores
- No complicarte con la configuración larga y compleja de OpenVPN
WireGuard encaja muy bien.
Esta guía lo explica de una forma que un usuario normal de VPS puede llevar a la práctica: cómo elegir el servidor, cómo instalarlo, cómo abrir los puertos, cómo generar la configuración del cliente y dónde mirar primero cuando no conecta.
WireGuard en sí es muy ligero.
Un VPS normal de 1 núcleo y 1 GB puede ejecutarlo, e incluso 512 MB de RAM aguantan un uso ligero. Lo que realmente afecta a la experiencia no es la CPU, sino:
| Elemento | Por qué importa |
|---|---|
| Ubicación del centro de datos | Determina la latencia base |
| Calidad de la línea | Determina si habrá tirones en horas punta |
| Cuota de tráfico | Es fácil agotar el tráfico de salida cuando todos los dispositivos pasan por la VPN |
| Si UDP está disponible | WireGuard usa UDP por defecto |
| Cortafuegos/grupo de seguridad | Si el puerto no está abierto, seguro que no conecta |
Si estás en China continental y quieres baja latencia, normalmente conviene mirar primero ubicaciones como Hong Kong, Japón, Singapur y la costa oeste de EE. UU. No te fijes solo en "1 Gbps de ancho de banda": la línea en horas punta es lo que importa.
Si solo lo usas para acceder en remoto a servicios de la red interna, el servidor puede estar más cerca de ti; si es para aislar entornos de negocio transfronterizos, primero revisa los requisitos de la plataforma objetivo en cuanto a IP, región y estabilidad.
Sistemas recomendados:
- Ubuntu 22.04 / 24.04
- Debian 12
Los comandos siguientes usan Ubuntu / Debian como ejemplo.
Primero actualiza el sistema:
apt update
apt upgrade -y
Instala WireGuard:
apt install wireguard -y
Confirma que el comando está disponible:
wg --version
Si ves un número de versión, está instalado.
Primero entra en el directorio de configuración de WireGuard:
cd /etc/wireguard
umask 077
Genera la clave del servidor:
wg genkey | tee server_private.key | wg pubkey > server_public.key
Genera una clave de cliente:
wg genkey | tee client_private.key | wg pubkey > client_public.key
Consulta las claves:
cat server_private.key
cat server_public.key
cat client_private.key
cat client_public.key
Ten en cuenta:
- No compartas la clave privada con nadie
- La clave pública puede ir en la configuración del par
- Lo mejor es generar un par de claves distinto para cada cliente
No hagas que todos los móviles y ordenadores compartan la misma configuración de cliente. Si más adelante pierdes un dispositivo, te resultará muy difícil revocarlo por separado.
Primero confirma el nombre de tu interfaz de red:
ip route get 8.8.8.8
Normalmente verás algo como:
dev eth0
También podría ser ens3, ens5 o enp1s0. El ejemplo siguiente usa eth0; cámbialo por el nombre real de tu interfaz.
Crea la configuración:
nano /etc/wireguard/wg0.conf
Escribe:
[Interface]
Address = 10.66.66.1/24
ListenPort = 51820
PrivateKey = 服务端私钥
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer]
PublicKey = 客户端公钥
AllowedIPs = 10.66.66.2/32
Sustituye estos dos puntos:
服务端私钥: el resultado decat server_private.key客户端公钥: el resultado decat client_public.key
Si tu interfaz de red pública no es eth0, cambia también eth0 en PostUp / PostDown por el nombre real de la interfaz.
WireGuard solo crea el túnel. Para que los clientes salgan a internet a través del VPS, también hay que activar el reenvío IPv4.
Edita:
nano /etc/sysctl.conf
Añade o descomenta:
net.ipv4.ip_forward=1
Hazlo efectivo:
sysctl -p
Confirma:
sysctl net.ipv4.ip_forward
Si ves:
net.ipv4.ip_forward = 1
Es correcto.
El puerto por defecto de WireGuard es 51820/udp.
Si usas UFW:
ufw allow 51820/udp
ufw status
Si usas el grupo de seguridad del proveedor cloud, ábrelo también en el panel:
UDP 51820
来源:你的 IP 或 0.0.0.0/0
Esto es lo que más se les olvida a los principiantes:
- El cortafuegos dentro del VPS está abierto
- El grupo de seguridad de la plataforma cloud no
El resultado es que el cliente puede escanear todo lo que quiera y no conectará.
Si no estás seguro de si es un problema de puerto, primero comprueba si el servidor está escuchando:
ss -lunp | grep 51820
Inicia:
systemctl start wg-quick@wg0
Configura el arranque automático:
systemctl enable wg-quick@wg0
Consulta el estado:
systemctl status wg-quick@wg0
wg show
Si la configuración está bien escrita, wg show mostrará la interfaz y la información del Peer.
Si falla el arranque, mira primero los registros:
journalctl -u wg-quick@wg0 -b --no-pager
Errores habituales:
- Clave privada copiada mal
- Nombre de interfaz incorrecto en
PostUp - Permisos del archivo de configuración demasiado abiertos
Addressentra en conflicto con la subred del cliente
La configuración del cliente puede llamarse client.conf:
[Interface]
PrivateKey = 客户端私钥
Address = 10.66.66.2/32
DNS = 1.1.1.1
[Peer]
PublicKey = 服务端公钥
Endpoint = 你的VPS公网IP:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
Sustituye:
客户端私钥:cat client_private.key服务端公钥:cat server_public.key你的VPS公网IP: la IP pública del VPS
Lo más importante aquí es AllowedIPs.
Si quieres que todo el tráfico pase por el VPS:
AllowedIPs = 0.0.0.0/0
Si solo quieres acceder a la red interna de WireGuard, por ejemplo solo a 10.66.66.0/24:
AllowedIPs = 10.66.66.0/24
Si eres principiante y solo quieres "todo a través de la VPN", usa 0.0.0.0/0.
El cliente oficial de WireGuard es compatible con:
- Windows
- macOS
- Linux
- iOS
- Android
En el ordenador puedes importar client.conf directamente.
En el móvil es más cómodo con un código QR.
Instala la herramienta de códigos QR en el VPS:
apt install qrencode -y
Genera el código QR:
qrencode -t ansiutf8 < client.conf
Luego abre la app de WireGuard en el móvil y elige escanear para importar.
Atención: el código QR contiene la clave privada del cliente. No hagas capturas y las envíes a un grupo, ni lo pongas en documentos públicos.
El problema más habitual de WireGuard no es no poder instalarlo, sino "muestra conectado, pero no se abren las páginas web".
Revisa en este orden.
wg show
Mira latest handshake.
Si nunca hay handshake, normalmente es por:
- IP del VPS incorrecta
- UDP 51820 no abierto
- La red del cliente bloquea UDP
- El servidor no está iniciado
sysctl net.ipv4.ip_forward
Debe ser:
net.ipv4.ip_forward = 1
iptables -t nat -S | grep MASQUERADE
Si no hay MASQUERADE, el cliente puede conectarse a WireGuard pero no podrá salir a internet a través del VPS.
ip route get 8.8.8.8
Si la interfaz real es ens3 pero en la configuración pone eth0, NAT no usará la salida correcta.
Si el cliente puede hacer ping a IPs pero no abrir nombres de dominio, prueba primero:
ping 1.1.1.1
ping google.com
Si lo primero funciona y lo segundo no, es un problema de DNS. En la configuración del cliente puedes empezar con:
DNS = 1.1.1.1
No copies el mismo client.conf a todos los dispositivos.
Cada dispositivo debe tener su propio:
- private key
- public key
- IP interna
Por ejemplo, un segundo dispositivo:
10.66.66.3/32
Añade en el wg0.conf del servidor:
[Peer]
PublicKey = 第二台客户端公钥
AllowedIPs = 10.66.66.3/32
Tras editar, recarga:
systemctl restart wg-quick@wg0
Si más adelante quieres expulsar un dispositivo, basta con borrar el [Peer] correspondiente a ese dispositivo.
WireGuard es muy útil, pero no es la solución para todo.
Piensa bien estas situaciones:
- Tu red bloquea UDP con frecuencia
- Necesitas camuflaje complejo y capacidad antibloqueo
- No tienes ni idea de mantener un cortafuegos Linux
- El VPS tiene poco tráfico, pero piensas pasar por él todos los dispositivos de la casa
- El negocio objetivo es muy sensible al control de riesgo por IP y no puede compartir salidas a la ligera
Sobre todo el último punto: si usas WireGuard para compartir una misma IP de salida entre varias cuentas y varios negocios, es fácil mezclar entornos. Cuando trabajes con cuentas transfronterizas, comercio electrónico, TikTok y negocios similares, no compartas a lo loco por ahorrarte esfuerzo.
Si tras configurarlo no conecta, sigue este orden:
systemctl status wg-quick@wg0: ¿está iniciado el serviciowg show: ¿hay handshakess -lunp | grep 51820: ¿está el puerto en escucha- Grupo de seguridad de la plataforma cloud: ¿está abierto UDP 51820
sysctl net.ipv4.ip_forward: ¿está activado el reenvíoiptables -t nat -S | grep MASQUERADE: ¿ha surtido efecto NATip route get 8.8.8.8: ¿es correcto el nombre de la interfaz pública- Cliente
Endpoint: ¿están mal la IP y el puerto - Cliente
AllowedIPs: ¿proxy global o solo red interna - DNS: si puedes hacer ping a IPs pero no abrir nombres de dominio, revisa primero el DNS
La ventaja de WireGuard es que el archivo de configuración es corto y los problemas están bastante concentrados. Lo realmente difícil no es la instalación, sino tener claras las capas: grupo de seguridad del VPS, cortafuegos del sistema, NAT y enrutamiento del cliente.
Si solo quieres una VPN estable, ligera y bajo tu control, merece la pena dedicarle un rato a WireGuard.