> La lista completa de artículos está en [llms.txt](https://docs.f3cloud.com/llms.txt). Cada página tiene versión en Markdown, basta con añadir .md a su dirección. Esta página en Markdown: [https://docs.f3cloud.com/es/vpn-guide/wireguard-vpn-tutorial.md](https://docs.f3cloud.com/es/vpn-guide/wireguard-vpn-tutorial.md).

# Cómo instalar WireGuard en un VPS con Docker y el panel wg-easy

Cómo montar tu propia VPN con WireGuard en un VPS con el panel web wg-easy en Docker. Instalación en unos pocos comandos, primera configuración en el navegador, creación de clientes, conexión con archivo o código QR en el ordenador y el móvil, errores habituales.

**WireGuard** es un protocolo VPN rápido y sencillo. Apenas carga el servidor y se reconecta enseguida cuando el móvil cambia de red.

Para no tener que configurar WireGuard a mano, le instalaremos el panel web **wg-easy**. Con él creas clientes en un par de clics, y los ajustes de conexión te los da en un archivo o en un código QR. Hemos comprobado todos los pasos en un servidor de F3 Cloud con Debian 12 y wg-easy versión 15.4.

***

### Paso 1. Instala Docker

wg-easy funciona en Docker. Conéctate al servidor [por SSH](https://docs.f3cloud.com/es/vps/termius-connection.md) con el usuario root e instala Docker con el script oficial.

```bash
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
```

Si Docker ya está instalado en el servidor, puedes saltarte este paso. Puedes comprobarlo con el comando `docker --version`.

***

### Paso 2. Pon en marcha wg-easy

Crea una carpeta para el panel, descarga el archivo de configuración oficial y arranca wg-easy.

```bash
# Carpeta para los archivos del panel
mkdir -p /opt/wg-easy && cd /opt/wg-easy

# Archivo de configuración oficial de los desarrolladores de wg-easy
curl -fsSL -o docker-compose.yml https://raw.githubusercontent.com/wg-easy/wg-easy/master/docker-compose.yml

# Permitimos abrir el panel por http:// normal
sed -i -e 's/^    #environment:/    environment:/' -e 's/^    #  - INSECURE=false/      - INSECURE=true/' docker-compose.yml

# Lo ponemos en marcha
docker compose up -d
```

Sin el ajuste `INSECURE=true`, la versión nueva de wg-easy solo se abre por HTTPS, y para eso hacen falta un dominio y un certificado. El comando `sed` activa ese ajuste, y el panel estará disponible al momento en la dirección IP del servidor.

> **El panel se abre por HTTP, sin cifrado.**
>
> Al entrar, la contraseña del panel viaja por la red en texto claro. Ponle una contraseña robusta y no entres en el panel desde una wifi pública.

Si el servidor tiene activado el cortafuegos, abre en él el puerto **51820/UDP** para la VPN y el **51821/TCP** para el panel. Cómo hacerlo te lo enseñamos en el artículo [sobre el cortafuegos](https://docs.f3cloud.com/es/client-area/protect-vps-from-unauthorised-access/firewall.md).

***

### Paso 3. Configura el panel en el navegador

Abre `http://IP-del-servidor:51821` en el navegador. La primera vez que entres se abrirá el asistente de configuración en el idioma de tu navegador.

1. Pulsa <kbd>Continue</kbd>.
2. Elige un **nombre de usuario** y una **contraseña** de administrador y pulsa <kbd>Create Account</kbd>. Con estos datos entrarás en el panel.

<figure><img src="https://docs.f3cloud.com/img/wg-easy-setup-account.png" alt="Creación de la cuenta de administrador en el asistente de configuración de wg-easy"><figcaption><p>Creación del administrador del panel</p></figcaption></figure>

3. A la pregunta **«Do you have an existing setup?»**, responde <kbd>No</kbd>.
4. En el campo **Host**, indica la dirección IP del servidor. Lo más cómodo es elegirla con el botón <kbd>Suggest</kbd>, y necesitas la línea marcada como **IPv4 - Public**. Deja el puerto en **51820** y pulsa <kbd>Continue</kbd>.

<figure><img src="https://docs.f3cloud.com/img/wg-easy-setup-host.png" alt="Dirección del servidor y puerto en el asistente de configuración de wg-easy"><figcaption><p>Dirección del servidor y puerto de conexión</p></figcaption></figure>

5. Aparecerá el mensaje **«Setup successful»**. Pulsa <kbd>Sign In</kbd> y entra con la cuenta que acabas de crear.

***

### Paso 4. Crea un cliente

Un cliente es un perfil independiente para un dispositivo o una persona. Es mejor crear clientes distintos para el móvil y el portátil, porque así puedes desactivar cualquiera de ellos sin tocar los demás.

Pulsa <kbd>New</kbd>, escribe un nombre, por ejemplo `laptop`, y pulsa <kbd>Create Client</kbd>. El campo **Expire Date** puedes dejarlo vacío, y entonces el cliente funcionará sin fecha de caducidad.

<figure><img src="https://docs.f3cloud.com/img/wg-easy-client-new.png" alt="Ventana de creación de un cliente nuevo en wg-easy" width="320"><figcaption><p>Creación de un cliente</p></figcaption></figure>

El cliente aparecerá en la lista. A su derecha están los botones para gestionarlo.

<figure><img src="https://docs.f3cloud.com/img/wg-easy-client-list.png" alt="Lista de clientes de wg-easy con los botones de gestión"><figcaption><p>Cliente creado</p></figcaption></figure>

| Botón | Qué hace |
| --- | --- |
| Interruptor | Activa y desactiva el cliente |
| Lápiz | Abre los ajustes del cliente. Ahí también puedes borrarlo con el botón <kbd>Delete</kbd> |
| Código QR | Muestra el código QR para conectarte desde el móvil |
| Flecha hacia abajo | Descarga el archivo de configuración `.conf` para el ordenador |
| Enlace | Crea un enlace temporal al archivo de configuración, válido durante 5 minutos |

***

### Paso 5. Conéctate a la VPN

Para conectarte necesitas la app oficial de **WireGuard**.

#### Ordenador

1. Descarga WireGuard para Windows o macOS desde la [página de descargas](https://www.wireguard.com/install/) e instálalo.
2. En el panel wg-easy, descarga el archivo de configuración con el botón de la flecha hacia abajo.
3. En la app WireGuard, pulsa <kbd>Import tunnel(s) from file</kbd> y elige el archivo descargado.

<figure><img src="https://docs.f3cloud.com/img/wireguard-windows-import.png" alt="Importación de un túnel desde un archivo en WireGuard para Windows" width="490"><figcaption><p>Importación del archivo de configuración</p></figcaption></figure>

4. Pulsa <kbd>Activate</kbd>. Cuando en la línea **Status** aparezca **Active**, la VPN está funcionando.

<figure><img src="https://docs.f3cloud.com/img/wireguard-windows-active.png" alt="Túnel activo en WireGuard para Windows" width="490"><figcaption><p>Conexión establecida</p></figcaption></figure>

#### Móvil

1. Instala WireGuard desde la [App Store](https://apps.apple.com/app/wireguard/id1441195209) o [Google Play](https://play.google.com/store/apps/details?id=com.wireguard.android).
2. En el panel wg-easy, pulsa el botón del código QR del cliente que quieras.

<figure><img src="https://docs.f3cloud.com/img/wg-easy-client-qr.png" alt="Código QR de un cliente en el panel wg-easy" width="310"><figcaption><p>Código QR para el móvil</p></figcaption></figure>

3. En la app WireGuard, toca <kbd>+</kbd>, elige escanear un código QR y apunta la cámara a la pantalla.
4. Activa el interruptor junto al túnel que has añadido.

<figure><img src="https://docs.f3cloud.com/img/wireguard-iphone-tunnel.png" alt="Túnel activado en la app WireGuard en iPhone"><figcaption><p>VPN activada en el móvil</p></figcaption></figure>

Para comprobar que el tráfico pasa por la VPN, abre [api.ipify.org](https://api.ipify.org) en el navegador. Debe aparecer la dirección IP de tu servidor.

> **El archivo de configuración y el código QR son la llave de tu VPN.**
>
> Cualquiera que los tenga podrá conectarse a tu servidor. No los publiques ni los envíes por chats abiertos.

***

### Preguntas frecuentes

<details>

<summary>El panel no se abre</summary>

Comprueba con el comando `docker ps` que wg-easy está en marcha. En la lista debe aparecer el contenedor `wg-easy` con el estado `Up`. Asegúrate de que abres la dirección con `http://` y no con `https://`, y de que el puerto 51821/TCP está abierto en el cortafuegos.

</details>

<details>

<summary>La VPN no se conecta</summary>

Lo más habitual es que el puerto 51820/UDP esté cerrado en el cortafuegos del servidor. Comprueba también que en el asistente de configuración, en el campo **Host**, figura la dirección IP externa del servidor. Si ahí aparece una dirección interna como `10.42.42.42`, corrígela en la sección **Admin Panel → Config** y vuelve a descargar el archivo de configuración.

</details>

<details>

<summary>He olvidado la contraseña del panel</summary>

Puedes restablecer la contraseña de administrador con un comando en el servidor. Te pedirá que escribas una contraseña nueva.

```bash
cd /opt/wg-easy && docker compose exec -it wg-easy cli db:admin:reset
```

</details>

<details>

<summary>Cómo actualizar wg-easy</summary>

Ejecuta dos comandos. Los clientes y los ajustes se conservan al actualizar.

```bash
cd /opt/wg-easy && docker compose pull && docker compose up -d
```

</details>

<details>

<summary>WireGuard no funciona en mi red</summary>

Algunos proveedores y redes bloquean WireGuard. En ese caso, usa protocolos más difíciles de detectar, por ejemplo [Amnezia](https://docs.f3cloud.com/es/vpn-guide/setup-amnezia.md) o [VLESS Reality en 3X-UI](https://docs.f3cloud.com/es/vpn-guide/3x-ui-panel-guide.md).

</details>

***

### Nuestros recursos

**Canal de Telegram:** [https://t.me/f3cloud_news](https://t.me/f3cloud_news)\
**Web del hosting:** [https://f3cloud.com](https://f3cloud.com/es)
