Entre las redes Wi-Fi públicas no seguras y las restricciones de red en el extranjero, nada mejor que acceder directamente a tu propia red local. Con WireGuard y un sencillo servidor Ubuntu, puedes conectarte a distancia como si estuvieras físicamente en casa. Impresoras, domótica y discos compartidos: todo queda accesible mediante una conexión cifrada, rápida y discreta. Así puedes crear tu propia VPN personal o profesional.
En este artículo
- ¿Por qué crear tu propia VPN WireGuard?
- Requisitos para crear tu VPN WireGuard
- Instalar WireGuard en Ubuntu
- Configuración básica del servidor WireGuard
- Instalar Docker y Docker Compose
- Desplegar la interfaz WGDashboard con Docker Compose
- Iniciar la interfaz web
- Acceder a la interfaz web de WGDashboard
- Crear un cliente VPN (peer)
- Instalar el cliente WireGuard
¿Por qué crear tu propia VPN WireGuard?
Configurar tu propio servidor VPN con WireGuard en Ubuntu es mucho más que un simple proyecto técnico: significa recuperar el control total de tus conexiones, tus datos y tu red. A diferencia de las VPN comerciales, que prometen anonimato pero imponen sus propias reglas (y a veces sus limitaciones), un servidor WireGuard autoalojado ofrece una solución personalizada, transparente y muy segura. Sus ventajas son numerosas:
- Mayor seguridad: el cifrado moderno de WireGuard se basa en protocolos seguros (Curve25519, ChaCha20…) y en una base de código muy ligera, lo que reduce considerablemente el riesgo de vulnerabilidades.
- Privacidad bajo control: ningún tercero interviene en la transmisión de tus datos.
- Acceso remoto a tu red local: estés al otro lado del mundo o simplemente fuera de casa, puedes acceder a todos tus dispositivos como si estuvieras en casa: NAS, impresoras, equipos domóticos, cámaras IP y mucho más.
- Eludir las restricciones de red: en algunos lugares (hoteles, empresas o países), el acceso a ciertos servicios puede estar bloqueado. Con tu propia VPN, todo tu tráfico pasa por tu conexión doméstica como si nunca hubieras salido del sofá.
Frente a alternativas como OpenVPN (más pesado y complejo de configurar) o PPTP (obsoleto y poco seguro), WireGuard destaca por su rapidez y solidez.
Requisitos para crear tu VPN WireGuard
Antes de empezar, asegúrate de tener:
- Un servidor Ubuntu 22.04+ (un servidor o un ordenador de placa única)
- Una conexión a Internet con una IP pública
- El puerto UDP 51820 redirigido al servidor (a través de tu router)
Instalar WireGuard en Ubuntu
El primer paso para configurar tu VPN es instalar WireGuard, un protocolo VPN moderno, rápido y seguro.
Empieza actualizando el sistema para asegurarte de que todos los paquetes están al día:
sudo apt update && sudo apt upgrade -y
A continuación, instala WireGuard y sus herramientas:
sudo apt install wireguard wireguard-tools -y
El reenvío de IP es necesario para que los clientes de la VPN puedan acceder a Internet a través del servidor. Actívalo con el siguiente comando:
echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
Configuración básica del servidor WireGuard
Crea las claves privada y pública del servidor. Son necesarias para establecer un canal de comunicación cifrado:
cd /etc/wireguard
umask 077
sudo wg genkey | tee server_private.key | wg pubkey > server_public.key
A continuación, recupera la clave privada (la necesitarás para la configuración):
cat /etc/wireguard/server_private.key
Crea el archivo de configuración principal de la interfaz VPN:
sudo nano /etc/wireguard/wg0.conf
Pega el siguiente contenido y sustituye <COLLEZ_ICI_LE_CONTENU_DE_server_private.key> por tu clave privada:
[Interface]
Address = 10.10.0.1/24
PrivateKey = <COLLEZ_ICI_LE_CONTENU_DE_server_private.key>
ListenPort = 51820
SaveConfig = true
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
Nota: si tu interfaz de red principal no es eth0 (por ejemplo, en un VPS), sustitúyela por el nombre correcto (puedes comprobarlo con el comando ip route show default | grep '^default' | awk '{print $5}').
Inicia el servicio WireGuard y configúralo para que arranque automáticamente al iniciar el sistema:
sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0
Comprueba que la VPN funciona correctamente:
sudo wg show
Instalar Docker y Docker Compose
Para utilizar una interfaz gráfica de gestión como WGDashboard, necesitas Docker. Instálalo de la siguiente manera:
sudo apt install docker.io docker-compose -y
sudo systemctl enable docker
sudo systemctl start docker
Instalar el binario de Docker Compose (según la arquitectura)
Primero, crea el directorio donde se guardará el binario de Docker Compose:
sudo mkdir -p /usr/local/lib/docker/cli-plugins
Después, descarga la versión adecuada para tu sistema:
- Para sistemas ARM64 (Raspberry Pi, servidores ARM, etc.):
sudo curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-aarch64 -o /usr/local/lib/docker/cli-plugins/docker-compose
- Si utilizas un PC o un VPS (x86_64):
sudo curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-x86_64 -o /usr/local/lib/docker/cli-plugins/docker-compose
Haz ejecutable el binario:
sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
Comprueba las versiones instaladas:
docker --version docker compose version
Desplegar la interfaz WGDashboard con Docker Compose
Crea un directorio nuevo para guardar los archivos de configuración de WGDashboard:
mkdir ~/wg-dashboard && cd ~/wg-dashboard
nano docker-compose.yml
Pega el siguiente contenido en el archivo docker-compose.yml:
version: "3.8"
services:
wg-dashboard:
container_name: wg-dashboard
image: ghcr.io/donaldzou/wgdashboard:latest
ports:
- "10086:10086"
volumes:
- ./data:/app/db
- /etc/wireguard:/etc/wireguard
restart: unless-stopped
environment:
- WG_CONF_DIR=/etc/wireguard
cap_add:
- NET_ADMIN
- SYS_MODULE
network_mode: "host"
Iniciar la interfaz web
Inicia el contenedor:
docker compose up -d
A continuación, comprueba que el contenedor está en ejecución:
docker ps
Acceder a la interfaz web de WGDashboard
Una vez instalado y funcionando WGDashboard, puedes gestionarlo desde una interfaz web accesible con cualquier navegador. Introduce la siguiente dirección en la barra de direcciones:
http://<IP-de-votre-serveur>:10086
De forma predeterminada, la interfaz está protegida por un usuario y una contraseña definidos inicialmente como:
- Usuario:
admin - Contraseña:
admin
En el primer inicio de sesión, se te pedirá que personalices estas credenciales para proteger el acceso.

También se recomienda activar la autenticación de dos factores (2FA), disponible en los ajustes, para reforzar la protección frente a accesos no autorizados.

No dejes que el algoritmo decida por ti
Añade Assistouest a tus fuentes preferidas en Google para encontrar nuestras guías más rápido cuando busques una solución informática.
Crear un cliente VPN (peer)
Desde la interfaz principal verás la conexión VPN activa.

Para añadir un cliente nuevo, haz clic en esta conexión y después en la pestaña «Peer».

Entonces podrás crear un nuevo cliente VPN y asignarle un nombre (por ejemplo: Ordenador de trabajo, Portátil, Smartphone, etc.).

Una vez creado el peer, WGDashboard genera automáticamente el archivo de configuración correspondiente. Después podrás descargarlo en formato .conf.

Este archivo está diseñado para utilizarse directamente con los clientes WireGuard, pero a veces requiere una pequeña modificación, sobre todo si el servidor utiliza una dirección IPv6.
Veamos un ejemplo de archivo generado automáticamente:
[Interface] PrivateKey = MEWI0s1Va/Hmv9bIjMThg1HShP8XIs069hDOafLtgWM= Address = 10.10.0.2/32 MTU = 1420 DNS = 9.9.9.9 [Peer] PublicKey = itwr+yW2BpsVJgCMPiNXA5HglNwgoydEyHh1RGCxPRQ= AllowedIPs = 0.0.0.0/0 Endpoint = 2a01:e0a:4b7:2500:dea6:32ff:fe02:4409:51820 PersistentKeepalive = 21
En este ejemplo, el campo Endpoint contiene una dirección IPv6. Para que el cliente WireGuard la interprete correctamente, esta dirección debe estar obligatoriamente entre corchetes. De lo contrario, el cliente rechazará la importación o mostrará un error.
Por tanto, el archivo corregido debería tener este aspecto:
[Interface] PrivateKey = MEWI0s1Va/Hmv9bIjMThg1HShP8XIs069hDOafLtgWM= Address = 10.10.0.2/32 MTU = 1420 DNS = 9.9.9.9 [Peer] PublicKey = itwr+yW2BpsVJgCMPiNXA5HglNwgoydEyHh1RGCxPRQ= AllowedIPs = 0.0.0.0/0 Endpoint = [2a01:e0a:4b7:2500:dea6:32ff:fe02:4409]:51820 PersistentKeepalive = 21
Este sencillo ajuste evita errores al importar el archivo en el cliente WireGuard.
⚠️ Este archivo contiene las claves privadas y los datos de conexión al servidor VPN. Permite acceder directamente a tu red local. Por eso, nunca lo compartas con terceros. En este ejemplo se utilizó un entorno de prueba y el servidor ya está desactivado.
Instalar el cliente WireGuard
Para establecer la conexión VPN, ahora debes instalar el cliente WireGuard en el dispositivo que quieras conectar (ordenador, smartphone, etc.).
Visita el sitio web oficial de WireGuard y descarga el cliente adecuado para tu sistema operativo (Windows, macOS, Linux, Android o iOS).
Instala la aplicación y ábrela.

Haz clic en «Importar túnel(es) desde un archivo» y selecciona el archivo .conf que has modificado previamente.
Una vez importado, haz clic en «Activar» para establecer la conexión VPN.

Una vez activada la conexión, todo tu tráfico pasará por el túnel WireGuard. Puedes comprobar que está activa consultando tu dirección IP pública mediante un servicio en línea como ifconfig.me. Si todo está bien configurado, la dirección IP mostrada será la de tu servidor VPN y no la de tu conexión habitual a Internet.
El contenido se desbloqueará automáticamente después de la verificación.