Cómo instalar un servidor VPN WireGuard en un VPS Linux
WireGuard es un protocolo VPN moderno, rápido y seguro. Está integrado directamente en el kernel de Linux desde la versión 5.6, lo que le otorga un excelente rendimiento.
¿Por qué elegir WireGuard?
| Ventaja | Detalle |
|---|---|
| ⚡ Ultra rápido | 2 a 5 veces más rápido que OpenVPN |
| 🔒 Muy seguro | Criptografía moderna (ChaCha20, Curve25519) |
| 📝 Sencillo | Solo ~4,000 líneas de código (vs 600,000 de OpenVPN) |
| 📱 Código QR | Configuración móvil en 10 segundos |
| 🔋 Económico | Menos consumo de batería en dispositivos móviles |
Requisitos previos
Sistema operativo compatible
| Distribución | Versiones compatibles |
|---|---|
| Debian | 11 (Bullseye), 12 (Bookworm), 13 (Trixie) ✨ |
| Ubuntu | 22.04 LTS, 24.04 LTS, 25.04, 25.10 |
💡 Recomendación: Utilice Debian 13 o Ubuntu 24.04 LTS para aprovechar WireGuard integrado en el kernel.
Configuración mínima
| Elemento | Requerido |
|---|---|
| RAM | 512 MB mínimo |
| CPU | 1 vCPU |
| Almacenamiento | 5 GB |
| Puerto | 51820 UDP abierto |
⚠️ Importante: Abra el puerto 51820/UDP en el firewall de su proveedor de alojamiento (panel cloud) antes de comenzar.
Instalación del servidor WireGuard
Etapa 1: Conexión al servidor
Conéctese por SSH a su VPS:
ssh root@su-ip-servidor
Etapa 2: Actualización del sistema
apt update && apt upgrade -y
Etapa 3: Descarga y ejecución del script
curl -O https://raw.githubusercontent.com/angristan/wireguard-install/master/wireguard-install.sh
chmod +x wireguard-install.sh
./wireguard-install.sh
Etapa 4: Responder a las preguntas
El script hace algunas preguntas simples:
Bienvenido al instalador de WireGuard!
Necesito hacerte algunas preguntas antes de comenzar la configuración.
Dirección pública IPv4 o IPv6: [Presione Enter]
Respuestas recomendadas:
| Pregunta | Respuesta | Explicación |
|---|---|---|
| Dirección pública | Entrada | Auto-detectada |
| Interfaz pública | Entrada | Auto-detectada |
| Nombre de la interfaz WireGuard | wg0 | Nombre por defecto |
| IPv4 del servidor WireGuard | 10.66.66.1 | Red VPN |
| Puerto del servidor WireGuard | 51820 | Puerto estándar |
| Primer resolvedor DNS | 1.1.1.1 | Cloudflare (rápido) |
| Segundo resolvedor DNS | 1.0.0.1 | Respaldo de Cloudflare |
| Nombre del cliente | mi-pc | Nombre de su elección |
Etapa 5: Obtener la configuración del cliente
Al finalizar la instalación, el script muestra:
- Un código QR (para smartphone) 📱
- La ruta del archivo de configuración
También está disponible en /root/wg0-client-mi-pc.conf
Si desea agregar más clientes, ejecute este script nuevamente.
Para smartphones: Escanee directamente el código QR mostrado en la terminal con la app WireGuard.
Para computadoras: Descargue el archivo .conf:
# Desde su PC local
scp root@su-ip-servidor:/root/wg0-client-mi-pc.conf ~/Escritorio/
Agregar otros dispositivos
Para crear perfiles para sus otros dispositivos, vuelva a ejecutar el script:
./wireguard-install.sh
Menú mostrado:
WireGuard ya está instalado.
Seleccione una opción:
1) Agregar un nuevo cliente
2) Eliminar un cliente existente
3) Eliminar WireGuard
4) Salir
Elija 1 e ingrese un nuevo nombre (por ejemplo: iphone, tablette).
💡 Consejo: ¡Un código QR se genera automáticamente para cada nuevo cliente!
Conexión al VPN
Windows
- Descargue WireGuard para Windows
- Instale y abra la aplicación
- Haga clic en "Importar un túnel desde un archivo"
- Seleccione su archivo
.conf - Haga clic en "Activar"
macOS
- Descargue WireGuard en la App Store
- Abra la aplicación
- Haga clic en "Importar un túnel desde un archivo"
- Seleccione su archivo
.conf - Haga clic en "Activar"
Linux (Debian/Ubuntu)
# Instalación del cliente
sudo apt install wireguard resolvconf
# Copiar el archivo de configuración
sudo cp mi-pc.conf /etc/wireguard/wg0.conf
# Conexión
sudo wg-quick up wg0
# Desconexión
sudo wg-quick down wg0
Para una conexión automática al inicio:
sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0
Android 📱
- Instale WireGuard desde Play Store
- Abra la aplicación
- Toque el "+" → "Escanear un código QR"
- Escanee el código QR mostrado en la terminal del servidor
- Toque el interruptor para activar
iOS (iPhone/iPad) 📱
- Instale WireGuard desde la App Store
- Abra la aplicación
- Toque "+" → "Crear a partir de un código QR"
- Escanee el código QR
- Autorice la configuración VPN
- Toque el interruptor para activar
Verificar que funcione
Una vez conectado al VPN:
- Vaya a whatismyip.com
- La dirección IP mostrada debe ser la de su VPS
✅ Si es así, su VPN está funcionando!
Verificar el estado del servidor
sudo wg show
Resultado esperado:
interface: wg0
public key: aBcDeFgH...
private key: (oculto)
listening port: 51820
peer: xYzAbCdE...
endpoint: 203.0.113.50:51820
allowed ips: 10.66.66.2/32
latest handshake: hace 1 minuto, 30 segundos
transfer: 15.24 MiB recibidos, 92.38 MiB enviados
Comandos útiles
| Acción | Comando |
|---|---|
| Ver el estado de la VPN | sudo wg show |
| Iniciar WireGuard | sudo systemctl start wg-quick@wg0 |
| Detener WireGuard | sudo systemctl stop wg-quick@wg0 |
| Reiniciar WireGuard | sudo systemctl restart wg-quick@wg0 |
| Ver los registros | sudo journalctl -u wg-quick@wg0 -f |
| Agregar/Eliminar un cliente | ./wireguard-install.sh |
| Mostrar el código QR de un cliente | qrencode -t ansiutf8 < /root/wg0-client-nom.conf |
Resolución de problemas rápida
❌ El cliente no se conecta
Verificaciones :
- ¿Está abierto el puerto 51820 UDP en el firewall de su proveedor de alojamiento?
- ¿Está ejecutándose WireGuard en el servidor?
sudo wg show
Si no se muestra nada :
sudo systemctl start wg-quick@wg0
❌ Conectado pero sin Internet
Verifique el reenvío de IP :
cat /proc/sys/net/ipv4/ip_forward
Si muestra 0, actívelo :
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
Verifique las reglas NAT :
sudo iptables -t nat -L POSTROUTING
❌ El código QR no se muestra
Instale qrencode :
apt install qrencode
Luego muestre el código QR :
qrencode -t ansiutf8 < /root/wg0-client-mon-pc.conf
❌ Latencia alta o desconexiones
Agregue un keepalive en la configuración del cliente. Edite el archivo .conf y agregue debajo de [Peer] :
PersistentKeepalive = 25
WireGuard vs OpenVPN
| Criterio | WireGuard | OpenVPN |
|---|---|---|
| Velocidad | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
| Simplicidad | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
| Líneas de código | ~4 000 | ~600 000 |
| Criptografía | Moderna (ChaCha20) | Clásica (AES) |
| Soporte móvil | Excelente + QR | Bueno |
| Atraviesa firewalls | Medio (UDP) | Excelente (TCP 443) |
| Madurez | Reciente (2020) | Probado (2001) |
💡 Nuestro consejo : Utilice WireGuard para la velocidad y la simplicidad. Mantenga OpenVPN como respaldo si necesita atravesar firewalls restrictivos (puerto TCP 443).
Recursos útiles
| Recurso | Enlace |
|---|---|
| Sitio oficial de WireGuard | wireguard.com |
| WireGuard Windows | wireguard.com/install |
| WireGuard macOS | App Store |
| WireGuard Android | Play Store |
| WireGuard iOS | App Store |
| Script de instalación | github.com/angristan/wireguard-install |
Resumen
| Paso | Acción |
|---|---|
| 1 | Conéctese por SSH al VPS |
| 2 | Actualizar el sistema |
| 3 | Descargar y ejecutar el script de instalación |
| 4 | Responder a las preguntas (o mantener los valores predeterminados) |
| 5 | Escanear el código QR (móvil) o recuperar el archivo .conf (PC) |
| 6 | Importar en la aplicación WireGuard |
| 7 | ¡Activar y disfrutar! 🎉 |

