bolt Valebyte VPS desde $4/mes — NVMe, despliegue en 60s.

Obtener VPS arrow_forward
eco Principiante Tutorial/Cómo hacer

WireGuard VPN en VPS:

calendar_month Jun 25, 2026 schedule 18 min de lectura visibility 46 vistas
WireGuard VPN на VPS: быстрая настройка сервера и подключение клиентов
info

¿Necesitas un servidor para esta guía? Ofrecemos servidores dedicados y VPS en más de 50 países con configuración instantánea.

¿Necesitas un VPS para esta guía?

Explore otras opciones de servidores dedicados en

WireGuard VPN en un VPS: configuración rápida del servidor y conexión de clientes

TL;DR

En esta guía, configuraremos paso a paso un servidor VPN de alto rendimiento y seguro basado en WireGuard en su VPS, y conectaremos dispositivos cliente a él. Obtendrá su propio canal privado para un acceso seguro a internet, eludir restricciones geográficas y proteger sus datos.

  • Configuración del servidor WireGuard en Ubuntu 24.04 LTS.
  • Generación de claves y archivos de configuración para el servidor y los clientes.
  • Habilitación del reenvío de IP y configuración de reglas de firewall.
  • Conexión de clientes bajo diferentes sistemas operativos.
  • Recomendaciones para la copia de seguridad y el mantenimiento del servidor VPN.
  • Solución de problemas típicos al trabajar con WireGuard.

Qué configuramos y por qué

Esquema: Qué configuramos y por qué
Esquema: Qué configuramos y por qué

En esta guía detallada, nos ocuparemos del despliegue de un servidor VPN WireGuard en un servidor privado virtual (VPS). WireGuard es un protocolo VPN moderno, rápido y criptográficamente seguro, diseñado con énfasis en la simplicidad y el rendimiento. Supera significativamente a muchas soluciones VPN obsoletas, como OpenVPN o IPsec, en velocidad y facilidad de configuración, al tiempo que proporciona un alto nivel de seguridad.

Al final, una vez completada la configuración, obtendrá un servidor VPN completamente funcional que le permitirá:

  • Conectarse de forma segura a internet desde cualquier parte del mundo, cifrando todo su tráfico y protegiéndolo de la interceptación en redes Wi-Fi públicas.
  • Eludir restricciones geográficas y acceder a contenido que no está disponible en su ubicación actual, utilizando la dirección IP de su VPS.
  • Crear un túnel seguro para todo su equipo o familia, garantizando la privacidad de las comunicaciones y el acceso a recursos internos, si es necesario.
  • Proteger su privacidad, ocultando su dirección IP real de terceros y proveedores de internet.

Existen varias alternativas para resolver tareas similares, incluyendo servicios VPN comerciales (cloud-managed) o otros protocolos VPN en un servidor propio (self-hosted). Las VPN comerciales ofrecen la comodidad de "todo listo para usar", pero a menudo a costa del control total sobre sus datos y una posible reducción de la velocidad. La configuración propia de WireGuard en un VPS le proporciona control total sobre la infraestructura, máxima transparencia y, por lo general, un mejor rendimiento y beneficio económico a largo plazo, especialmente si necesita una VPN para uso constante o para varios usuarios.

La elección de WireGuard self-hosted en un VPS se debe a las siguientes ventajas:

  • Control total: Usted es dueño del servidor y lo gestiona, nadie más tiene acceso a sus datos o registros.
  • Alto rendimiento: WireGuard es significativamente más rápido que otros protocolos VPN gracias a una base de código simplificada y primitivas criptográficas modernas.
  • Rentabilidad: El costo de alquilar un VPS es a menudo menor que una suscripción a una VPN comercial de calidad, especialmente para uso a largo plazo.
  • Flexibilidad: Puede configurar el servidor según sus necesidades específicas, por ejemplo, añadir bloqueo de anuncios o sus propios servidores DNS.

Qué configuración de VPS se necesita para esta tarea

Esquema: Qué configuración de VPS se necesita para esta tarea
Esquema: Qué configuración de VPS se necesita para esta tarea

WireGuard es conocido por su ligereza y bajos requisitos de sistema. Para la mayoría de los escenarios de uso, incluso con la conexión de varias decenas de clientes, WireGuard no requiere recursos significativos.

Requisitos mínimos:

  • CPU: 1 vCPU. Incluso el procesador más básico será suficiente, ya que WireGuard utiliza los recursos de manera muy eficiente.
  • RAM: 512 MB. WireGuard por sí mismo consume muy poca memoria RAM. El principal consumidor es el sistema operativo. 512 MB serán suficientes para Ubuntu Server y WireGuard.
  • Disco: 10-20 GB SSD. El sistema y WireGuard ocupan un espacio mínimo. SSD es preferible para la capacidad de respuesta general del sistema, pero incluso un HDD normal funcionará.
  • Red: 100 Mbps de uplink. Esto es más que suficiente para una o dos decenas de usuarios activos que realizan navegación web normal o streaming en HD. Para streaming 4K o un número muy grande de usuarios, se requerirá un canal más amplio.

Plan de VPS recomendado para la mayoría de los usuarios:

Para un trabajo cómodo y la posibilidad de escalar en el futuro, así como para alojar servicios adicionales (por ejemplo, un bloqueador de DNS), se recomienda el siguiente plan de configuración:

  • CPU: 1-2 vCPU
  • RAM: 1 GB RAM
  • Disco: 25-50 GB NVMe SSD (NVMe proporcionará un mejor rendimiento de E/S)
  • Red: 100 Mbps - 1 Gbps de uplink, con tráfico mensual ilimitado o suficiente (por ejemplo, 1-2 TB).

Puede considerar un VPS con las características indicadas para alquilar un VPS adecuado para su tarea.

Cuándo se necesita un dedicado y no un VPS:

Un servidor dedicado (dedicated server) se vuelve necesario si:

  • Tiene un número muy grande de clientes WireGuard (cientos o miles) que requieren el máximo ancho de banda.
  • Planea alojar en el mismo servidor otros servicios que consumen muchos recursos, que competirán con WireGuard por la CPU, RAM o las operaciones de disco.
  • Necesita un rendimiento garantizado sin "vecindad" con otros usuarios en el mismo servidor físico.
  • Se requieren configuraciones de hardware específicas no disponibles en un VPS (por ejemplo, aceleradores de hardware de cifrado).

Para la mayoría de los servidores VPN personales y de equipos pequeños, un VPS será una solución óptima y suficiente.

Ubicación del VPS: qué afecta

La elección de la ubicación geográfica de su servidor VPS tiene varios aspectos importantes:

  • Latencia (Latency): Cuanto más cerca esté físicamente el servidor de usted, menor será el ping y, en consecuencia, mayor la velocidad de respuesta. Para juegos o aplicaciones sensibles a la latencia, elija un servidor ubicado lo más cerca posible de su ubicación.
  • Disponibilidad de contenido: Si el objetivo de la VPN es acceder a contenido restringido regionalmente, elija un servidor en el país donde ese contenido esté disponible.
  • Jurisdicción legal: Diferentes países tienen diferentes leyes sobre retención de datos y privacidad. Tenga esto en cuenta al elegir la ubicación, si la anonimidad y la protección legal son críticas para usted.

Preparación del servidor

Esquema: Preparación del servidor
Esquema: Preparación del servidor

Antes de proceder con la instalación de WireGuard, es necesario realizar una preparación básica del servidor. Utilizaremos Ubuntu Server 24.04 LTS, actual para 2026, como una de las distribuciones más populares y estables para servidores.

1. Conexión al servidor por SSH

Utilice un cliente SSH para conectarse a su VPS. Reemplace your_user por el nombre de usuario (a menudo root o ubuntu) y your_vps_ip por la dirección IP de su servidor.


ssh your_user@your_vps_ip
    

Si utiliza claves SSH (lo cual es altamente recomendado), el comando se verá así:


ssh -i ~/.ssh/your_ssh_key your_user@your_vps_ip
    

2. Actualización del sistema

Siempre comience actualizando la lista de paquetes e instalando todas las actualizaciones disponibles. Esto garantiza que tendrá las versiones más recientes del software y los parches de seguridad.


sudo apt update && sudo apt upgrade -y
    

Después de la actualización, si el kernel fue actualizado, se recomienda reiniciar el servidor:


sudo reboot
    

Después del reinicio, reconéctese por SSH.

3. Creación de un nuevo usuario con permisos sudo (si ha iniciado sesión como root)

Trabajar con un usuario con privilegios limitados y usando sudo para tareas administrativas aumenta significativamente la seguridad. Si ha iniciado sesión como root, cree un nuevo usuario:


sudo adduser wgadmin
sudo usermod -aG sudo wgadmin
    

Luego, cierre la sesión de root y inicie sesión con el nuevo usuario wgadmin.


exit
ssh wgadmin@your_vps_ip
    

4. Configuración de claves SSH para el nuevo usuario (si no se ha hecho)

Si ha iniciado sesión con contraseña, se recomienda encarecidamente configurar claves SSH para un inicio de sesión sin contraseña y más seguro. En su máquina local, genere una clave (si no la tiene):


ssh-keygen -t ed25519 -C "[email protected]"
    

Luego, copie la clave pública al servidor:


ssh-copy-id wgadmin@your_vps_ip
    

Después de esto, puede deshabilitar la autenticación por contraseña para SSH en el archivo /etc/ssh/sshd_config, estableciendo PasswordAuthentication no y reiniciando el servicio SSH: sudo systemctl restart sshd.

5. Configuración del firewall (UFW)

UFW (Uncomplicated Firewall) es una interfaz conveniente para iptables. Lo configuraremos para permitir solo las conexiones necesarias:


sudo apt install ufw -y # Instalación de UFW, si no está instalado
sudo ufw allow OpenSSH # Permitimos SSH (puerto 22 por defecto)
sudo ufw enable # Habilitamos el firewall. Confirme 'y'.
sudo ufw status # Verificamos el estado de UFW
    

En este punto, su servidor está listo para la instalación de WireGuard. Permitiremos el puerto de WireGuard más tarde, después de su configuración.

6. Instalación de Fail2ban (opcional, pero recomendado)

Fail2ban ayuda a proteger el servidor de ataques de fuerza bruta (brute-force) mediante el bloqueo temporal de direcciones IP desde las cuales se producen intentos de inicio de sesión fallidos.


sudo apt install fail2ban -y # Instalación de Fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local # Creación de una copia local del archivo de configuración
sudo nano /etc/fail2ban/jail.local # Abrimos el archivo de configuración para editar
    

En el archivo jail.local, encuentre la sección [sshd] y asegúrese de que enabled = true. Puede configurar bantime (tiempo de bloqueo) y maxretry (número máximo de intentos). Guarde el archivo (Ctrl+O, Enter, Ctrl+X) y reinicie Fail2ban:


sudo systemctl enable fail2ban
sudo systemctl start fail2ban
sudo systemctl status fail2ban # Verificamos el estado del servicio
    

Instalación del software — paso a paso

Diagrama: Instalación del software — paso a paso
Diagrama: Instalación del software — paso a paso

Ahora que el servidor está preparado, pasemos a la instalación y configuración básica de WireGuard. Utilizaremos paquetes de los repositorios oficiales de Ubuntu, lo que garantiza la estabilidad y la actualidad de las versiones para el año 2026.

1. Instalación de WireGuard

WireGuard está disponible en los repositorios estándar de Ubuntu 24.04 LTS. Instálelo junto con las utilidades para trabajar con él.


sudo apt install wireguard -y # Instalación de WireGuard y utilidades asociadas
    

Este comando instalará el paquete wireguard, que incluye el kernel de WireGuard y la utilidad wg para la gestión.

2. Generación de un par de claves para el servidor WireGuard

Para una conexión segura, WireGuard utiliza claves criptográficas. Generaremos una clave privada y una pública para nuestro servidor.


wg genkey | sudo tee /etc/wireguard/privatekey # Generación y guardado de la clave privada del servidor
sudo chmod 600 /etc/wireguard/privatekey # Establecimiento de permisos de acceso estrictos para la clave privada
sudo cat /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey # Extracción y guardado de la clave pública a partir de la privada
    

Ahora tiene dos archivos: /etc/wireguard/privatekey (secreto) y /etc/wireguard/publickey (se puede compartir). Anote la clave pública del servidor, la necesitará para configurar los clientes.

3. Habilitación del reenvío de IP (IP forwarding)

Para que su VPS pueda reenviar el tráfico de los clientes de WireGuard a Internet, es necesario habilitar el reenvío de IP (IP forwarding).


sudo nano /etc/sysctl.conf # Abrimos el archivo de configuración de sysctl
    

En el archivo abierto, busque la línea #net.ipv4.ip_forward=1, descoméntela (elimine el #) y, si no existe, añádala al final del archivo:


net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1 # También recomendado para soporte de IPv6
    

Guarde el archivo (Ctrl+O, Enter, Ctrl+X) y aplique los cambios:


sudo sysctl -p # Aplicación de los cambios de sysctl
    

Asegúrese de que la salida del comando muestre net.ipv4.ip_forward = 1.

4. Determinación del nombre de la interfaz de red

Para configurar las reglas del firewall y NAT, necesitaremos el nombre de la interfaz de red principal de su VPS, a través de la cual el servidor accede a Internet. Normalmente es eth0, ens3 o enpXsY.


ip a # Muestra la lista de interfaces de red
    

Encuentre la interfaz que tiene su dirección IP pública. Memorice o anote su nombre (por ejemplo, eth0). Se utilizará en la configuración de WireGuard.

Configuración

Diagrama: Configuración
Diagrama: Configuración

En este paso, crearemos un archivo de configuración para el servidor WireGuard y un ejemplo de configuración para un cliente. Todas las configuraciones se almacenarán en el archivo /etc/wireguard/wg0.conf.

1. Creación del archivo de configuración del servidor (wg0.conf)

Abra el archivo para editarlo. Si no existe, se creará.


sudo nano /etc/wireguard/wg0.conf
    

Pegue el siguiente contenido, reemplazando los marcadores de posición con sus valores:

  • <SERVER_PRIVATE_KEY>: Contenido del archivo /etc/wireguard/privatekey.
  • <SERVER_PUBLIC_IP>: Dirección IP pública de su VPS.
  • <MAIN_NETWORK_INTERFACE>: Nombre de la interfaz de red principal que definió en el paso anterior (por ejemplo, eth0).

[Interface]
PrivateKey = <SERVER_PRIVATE_KEY>
Address = 10.0.0.1/24 # Dirección IP del servidor dentro del túnel VPN. /24 significa una subred para 254 clientes.
ListenPort = 51820 # Puerto en el que WireGuard aceptará conexiones (puede elegir cualquiera disponible)
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o <MAIN_NETWORK_INTERFACE> -j MASQUERADE; ip6tables -A FORWARD -i %i -j ACCEPT; ip6tables -t nat -A POSTROUTING -o <MAIN_NETWORK_INTERFACE> -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o <MAIN_NETWORK_INTERFACE> -j MASQUERADE; ip6tables -D FORWARD -i %i -j ACCEPT; ip6tables -t nat -D POSTROUTING -o <MAIN_NETWORK_INTERFACE> -j MASQUERADE

# Las secciones [Peer] para los clientes se añadirán a continuación
    

Explicaciones de PostUp/PostDown:

  • PostUp: Comandos ejecutados al activar la interfaz de WireGuard. Configuran las reglas del firewall para el reenvío de tráfico y NAT (MASQUERADE), de modo que el tráfico saliente de los clientes VPN parezca originarse en su VPS.
  • PostDown: Comandos para eliminar estas reglas al desactivar la interfaz.
  • %i: Se reemplaza automáticamente por el nombre de la interfaz de WireGuard (en nuestro caso wg0).

Guarde el archivo (Ctrl+O, Enter, Ctrl+X).

2. Adición de reglas de firewall para WireGuard

Ahora permitiremos las conexiones UDP entrantes en el puerto de WireGuard (por defecto 51820).


sudo ufw allow 51820/udp # Permitimos el tráfico UDP en el puerto 51820
sudo ufw status # Verificamos que la regla haya sido añadida
    

La salida de ufw status debería mostrar que 51820/udp está permitido.

3. Inicio del servidor WireGuard

Habilite e inicie el servicio WireGuard:


sudo systemctl enable wg-quick@wg0 # Añadir WireGuard al inicio automático
sudo systemctl start wg-quick@wg0 # Iniciar WireGuard
sudo systemctl status wg-quick@wg0 # Comprobar el estado del servicio
    

Si el servicio se inicia correctamente, verá el estado active (exited) o active (running). exited para wg-quick es normal, ya que el servicio solo configura la interfaz y no se ejecuta como un demonio constantemente.

4. Generación de la configuración para clientes

Cada cliente de WireGuard (su teléfono, portátil, tableta) requiere su propio par de claves y su propia configuración. Añadiremos un cliente como ejemplo.

Paso 4.1: Generar claves para el cliente

Ejecute estos comandos en el servidor para cada nuevo cliente. Por ejemplo, para client1:


wg genkey | sudo tee /etc/wireguard/client1_privatekey # Generación de la clave privada del cliente
sudo cat /etc/wireguard/client1_privatekey | wg pubkey | sudo tee /etc/wireguard/client1_publickey # Generación de la clave pública del cliente
    

Anote ambas claves para client1.

Paso 4.2: Añadir el cliente a la configuración del servidor

Abra /etc/wireguard/wg0.conf de nuevo:


sudo nano /etc/wireguard/wg0.conf
    

Añada una nueva sección [Peer] al final del archivo para cada cliente. Utilice la clave pública del cliente y asígnele una dirección IP única de la subred 10.0.0.0/24 (por ejemplo, 10.0.0.2 para el primer cliente, 10.0.0.3 para el segundo, etc.).


# ... configuración anterior del servidor ...

[Peer]
# Cliente 1 (por ejemplo, su portátil)
PublicKey = <CLIENT1_PUBLIC_KEY> # Clave pública de client1
AllowedIPs = 10.0.0.2/32 # Dirección IP de client1 dentro del túnel VPN
    

Guarde el archivo.

Después de cambiar la configuración del servidor WireGuard, es necesario reiniciarlo para aplicar los cambios:


sudo wg-quick down wg0 # Detener la interfaz de WireGuard
sudo wg-quick up wg0 # Iniciar la interfaz de WireGuard con la nueva configuración
    

O simplemente:


sudo systemctl restart wg-quick@wg0
    
Paso 4.3: Crear un archivo de configuración para el cliente

Cree el archivo client1.conf (por ejemplo, en su ordenador local o cópielo del servidor) con el siguiente contenido:

  • <CLIENT1_PRIVATE_KEY>: Clave privada de client1.
  • <SERVER_PUBLIC_KEY>: Clave pública del servidor (del archivo /etc/wireguard/publickey).
  • <SERVER_PUBLIC_IP>: Dirección IP pública de su VPS.

[Interface]
PrivateKey = <CLIENT1_PRIVATE_KEY>
Address = 10.0.0.2/32 # Dirección IP que asignó a client1 en wg0.conf
DNS = 8.8.8.8, 8.8.4.4 # Servidores DNS que utilizará el cliente (por ejemplo, Google DNS)

[Peer]
PublicKey = <SERVER_PUBLIC_KEY>
Endpoint = <SERVER_PUBLIC_IP>:51820 # IP pública y puerto de su VPS
AllowedIPs = 0.0.0.0/0, ::/0 # Todo el tráfico del cliente pasará por la VPN
PersistentKeepalive = 25 # Envía paquetes "vacíos" cada 25 segundos para mantener la conexión a través de NAT
    

Guarde este archivo como client1.conf. Puede usar un código QR para una importación conveniente en dispositivos móviles:


sudo apt install qrencode -y # Instalación de la utilidad para generar códigos QR
sudo cat /etc/wireguard/client1.conf | qrencode -t ansiutf8 # Mostrar el código QR en la terminal
    

Escanee este código QR con la aplicación WireGuard en su dispositivo móvil.

5. Verificación del funcionamiento

Después de configurar el cliente, conéctese a la VPN. Luego, realice las siguientes comprobaciones:


# En el servidor:
sudo wg show # Debería mostrar los peers (clientes) activos y sus claves públicas
    

# En el cliente (después de conectarse a la VPN):
ping 10.0.0.1 # Hacemos ping a la dirección IP del servidor VPN
curl ifconfig.me # Verificamos que su dirección IP pública haya cambiado a la IP de su VPS
    

Si ambas comprobaciones fueron exitosas, ¡su VPN WireGuard está funcionando!

Copias de seguridad y mantenimiento

Diagrama: Copias de seguridad y mantenimiento
Diagrama: Copias de seguridad y mantenimiento

Las copias de seguridad regulares y el mantenimiento oportuno son clave para el funcionamiento estable y seguro de cualquier servidor, incluido su WireGuard VPN.

1. Qué respaldar

Para WireGuard, es fundamental guardar los siguientes datos:

  • Archivos de configuración de WireGuard: /etc/wireguard/wg0.conf. Este archivo contiene la clave privada del servidor y las claves públicas de todos los clientes. ¡Es extremadamente importante mantenerlo seguro y cifrado!
  • Claves privadas de los clientes: Si las generó en el servidor y desea poder restaurar los dispositivos cliente, guarde los archivos /etc/wireguard/clientX_privatekey. De lo contrario, si las claves de cliente se generan en el lado del cliente, las claves públicas en wg0.conf son suficientes.

2. Script simple de copia de seguridad automática

Puede crear un script simple para copiar los archivos de configuración a un lugar seguro. Por ejemplo, cifrarlos y enviarlos a un almacenamiento remoto.


#!/bin/bash

# Каталог для временных файлов
BACKUP_DIR="/tmp/wireguard_backup_$(date +%Y%m%d%H%M%S)"
mkdir -p "$BACKUP_DIR"

# Копирование конфигов
cp /etc/wireguard/wg0.conf "$BACKUP_DIR/"
cp /etc/wireguard/_privatekey "$BACKUP_DIR/" 2>/dev/null # Копируем приватные ключи клиентов, если они есть

# Создание зашифрованного архива
# Замените 'YOUR_SECURE_PASSWORD' на надежный пароль
tar -czf "$BACKUP_DIR/wireguard_config.tar.gz" -C "$BACKUP_DIR" .
gpg --batch --passphrase 'YOUR_SECURE_PASSWORD' --symmetric --cipher-algo AES256 "$BACKUP_DIR/wireguard_config.tar.gz"
rm "$BACKUP_DIR/wireguard_config.tar.gz" # Удаляем незашифрованный архив

# Отправка на удаленное хранилище (пример с rsync на другой сервер)
# Замените 'backupuser@backup_server_ip:/path/to/backups/'
# scp "$BACKUP_DIR/wireguard_config.tar.gz.gpg" backupuser@backup_server_ip:/path/to/backups/

# Отправка на S3-совместимое хранилище (пример с aws cli, требуется установка и настройка)
# aws s3 cp "$BACKUP_DIR/wireguard_config.tar.gz.gpg" s3://your-s3-bucket/wireguard/

# Очистка временных файлов
rm -rf "$BACKUP_DIR"

echo "WireGuard backup completed."
    

Guarde este script como /usr/local/bin/backup_wireguard.sh, hágalo ejecutable (sudo chmod +x /usr/local/bin/backup_wireguard.sh) y configure su ejecución a través de cron.


sudo crontab -e # Abra crontab para el usuario root
    

Añada una línea para la copia de seguridad diaria (por ejemplo, a las 3:00 de la mañana):


0 3    /usr/local/bin/backup_wireguard.sh > /dev/null 2>&1
    

3. Dónde almacenar las copias de seguridad

Nunca guarde las copias de seguridad en el mismo servidor del que las está haciendo. Las opciones ideales son:

  • Almacenamiento externo compatible con S3: Los servicios en la nube (AWS S3, DigitalOcean Spaces, Backblaze B2) ofrecen almacenamiento fiable y económico.
  • VPS separado: Un pequeño VPS en otra ubicación puede servir como almacenamiento para las copias de seguridad.
  • Máquina local: Si los datos son pocos, puede enviar copias de seguridad cifradas a su ordenador doméstico.

4. Actualizaciones

Actualice regularmente el sistema operativo y el paquete de WireGuard para obtener las últimas correcciones de seguridad y mejoras de rendimiento.


sudo apt update && sudo apt upgrade -y # Actualización del sistema
    

Después de una actualización del kernel de Linux (lo que a menudo ocurre con apt upgrade), es absolutamente necesario reiniciar el servidor para que los cambios surtan efecto. WireGuard funciona a nivel del kernel, y sus módulos deben coincidir con la versión actual del kernel.

  • Actualizaciones continuas: Para la mayoría de los servidores VPN domésticos y pequeños, simplemente puede ejecutar apt upgrade una vez a la semana/mes y reiniciar el servidor.
  • Ventana de mantenimiento: Para sistemas críticos, planifique una ventana de mantenimiento para que el reinicio no interrumpa el trabajo de los usuarios en horas pico.

Antes de las actualizaciones importantes, siempre haga una copia de seguridad.

Solución de problemas + Preguntas frecuentes

Incluso con la configuración más cuidadosa, pueden surgir problemas. Esta sección le ayudará a diagnosticar y resolver los más comunes.

No hay conexión al servidor

Qué verificar: En primer lugar, asegúrese de que su VPS es accesible por SSH. Si no lo es, verifique su estado con el proveedor. Luego, en el servidor, verifique el estado del servicio WireGuard con el comando sudo systemctl status wg-quick@wg0. Asegúrese de que la interfaz de WireGuard esté activa: sudo wg show. Verifique las reglas del firewall UFW: sudo ufw status, asegúrese de que el puerto de WireGuard (por defecto 51820/udp) esté permitido. En el cliente, verifique la exactitud del Endpoint (dirección IP y puerto del servidor) en su archivo de configuración de cliente. Es posible que su proveedor de internet esté bloqueando el tráfico UDP en el puerto utilizado.

Cómo solucionar: Si WireGuard no está en ejecución, intente sudo systemctl start wg-quick@wg0. Si el puerto está bloqueado por UFW, ejecute sudo ufw allow 51820/udp. Asegúrese de que la dirección IP pública del servidor en la configuración del cliente sea correcta. Intente cambiar ListenPort en wg0.conf a otro puerto menos común (por ejemplo, 443/udp o 20000-65535), sin olvidar actualizar UFW y las configuraciones del cliente.

Los clientes no tienen acceso a internet

Qué verificar: Este es un problema común relacionado con un enrutamiento o NAT incorrecto. Asegúrese de que el reenvío de IP esté habilitado en el servidor: cat /proc/sys/net/ipv4/ip_forward debería devolver 1. Verifique las reglas PostUp en /etc/wireguard/wg0.conf, especialmente la parte con MASQUERADE y el nombre de su interfaz de red principal (por ejemplo, eth0). Asegúrese de que el nombre de la interfaz sea correcto. También verifique que AllowedIPs en la configuración del cliente esté establecido en 0.0.0.0/0, ::/0 para que todo el tráfico pase a través de la VPN.

Cómo solucionar: Si el reenvío de IP no está habilitado, añada net.ipv4.ip_forward=1 y net.ipv6.conf.all.forwarding=1 a /etc/sysctl.conf y ejecute sudo sysctl -p. Verifique el nombre de la interfaz de red principal con ip a y corríjalo en wg0.conf, luego reinicie WireGuard: sudo systemctl restart wg-quick@wg0. Asegúrese de que iptables esté instalado y funcionando correctamente.

Velocidad de conexión lenta

Qué verificar: La velocidad de la VPN depende de muchos factores. Verifique la velocidad de su servidor VPS (por ejemplo, con speedtest-cli en el servidor). Verifique su velocidad de internet local. Asegúrese de que la carga de CPU en el VPS no sea demasiado alta (htop o top). WireGuard es muy eficiente, pero si el servidor está sobrecargado con otras tareas, esto puede afectar la velocidad. Verifique el ping al servidor desde el cliente.

Cómo solucionar: Si el VPS tiene un ancho de banda bajo, quizás deba considerar actualizar el plan o cambiar de proveedor. Si la CPU está sobrecargada, optimice otros servicios en el VPS o muévalos. Asegúrese de que no haya pérdida de paquetes. A veces, cambiar ListenPort puede ayudar si su proveedor restringe el tráfico en ciertos puertos.

No puedo añadir un nuevo cliente

Qué verificar: Asegúrese de haber generado un par de claves único para el nuevo cliente. Verifique que la clave pública del nuevo cliente se haya añadido a /etc/wireguard/wg0.conf en la sección [Peer]. Cada cliente debe tener una dirección IP única en la subred de WireGuard (por ejemplo, 10.0.0.3/32). Después de añadir el cliente a wg0.conf, debe reiniciar WireGuard en el servidor: sudo systemctl restart wg-quick@wg0.

Cómo solucionar: Verifique que la clave pública del cliente en wg0.conf coincida con la clave pública generada para el cliente. Asegúrese de que la dirección IP del cliente en AllowedIPs (en el servidor) y Address (en el cliente) sea única y esté dentro del rango de su subred VPN. Reinicie WireGuard en el servidor para que actualice su configuración.

¿Qué configuración mínima de VPS es adecuada?

Para un WireGuard VPN que atienda hasta 20-30 usuarios activos, un VPS con 1 vCPU, 512 MB de RAM, 10-20 GB de disco SSD y un canal de red de 100 Mbps o más es suficiente. WireGuard es muy ligero y no exigente en recursos, por lo que incluso los planes VPS más básicos suelen ser más que suficientes para uso personal o un equipo pequeño. Lo principal es un canal de red estable.

¿Qué elegir: VPS o dedicado para esta tarea?

Para la mayoría de los escenarios de uso de WireGuard VPN, incluyendo uso personal, equipos pequeños o incluso proyectos medianos, un VPS es la elección óptima. Ofrece suficiente rendimiento, flexibilidad y economía. Un servidor dedicado solo debe considerarse en casos de carga muy alta (cientos o miles de usuarios simultáneos), la necesidad de alojar aplicaciones extremadamente intensivas en recursos en el mismo servidor, o si requiere el máximo rendimiento garantizado con control total sobre el hardware.

Conclusiones y próximos pasos

Diagrama: Conclusiones y próximos pasos
Diagrama: Conclusiones y próximos pasos

¡Felicidades! Ha configurado y lanzado con éxito su propio servidor WireGuard VPN en su VPS. Ahora tiene una forma segura, rápida y fiable de proteger su tráfico de internet, eludir la censura y garantizar la privacidad. Ha obtenido el control total sobre su infraestructura VPN, evitando la dependencia de proveedores externos.

Aquí tiene algunas ideas para el desarrollo y la optimización futuros de su sistema VPN:

  • Automatización de la gestión de clientes: Para facilitar la adición y eliminación de clientes, considere el uso de interfaces web, como WireGuard UI, o la creación de sus propios scripts para automatizar la generación de claves y configuraciones.
  • Integración con un bloqueador de DNS: Instale un bloqueador de DNS en el mismo VPS, como Pi-hole o AdGuard Home, y configúrelo como servidor DNS para sus clientes WireGuard. Esto permitirá bloquear anuncios, rastreadores y sitios web maliciosos a nivel de toda su red VPN.
  • Monitorización del servidor: Configure una monitorización básica de su VPS (por ejemplo, con Prometheus y Grafana o utilidades simples como Netdata) para rastrear el rendimiento, la carga de la red y el estado de WireGuard.

¿Te fue útil esta guía?

WireGuard VPN en VPS: configuración rápida del servidor y conexión de clientes
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.