WireGuard: Tu propio VPN para servicios de IA
Qué cubre este artículo
- Qué es WireGuard y por qué resulta interesante para servicios de IA
- Cómo configurar tu propio servidor VPN como puerta de enlace
- Cómo conectar clientes y acceder de forma segura a tus redes
- Qué configuraciones necesitas para Ollama y otras herramientas
- Qué trampas acechan durante la instalación y cómo evitarlas
Introducción
Cuando ejecutas herramientas de IA como Ollama en casa o en un servidor pequeño, a menudo quieres acceder desde el exterior. En lugar de exponer servicios individuales directamente a internet, puedes usar una VPN. Una VPN, abreviatura de Virtual Private Network, establece un túnel cifrado entre tu dispositivo y tu servidor. De este modo, tu portátil, tablet o teléfono se comportan como si estuvieran en tu red local.
WireGuard es un estándar VPN moderno. Es ligero, rápido y mucho más sencillo de configurar que muchas soluciones VPN antiguas. Para servicios de IA, esto significa que puedes mantener tu instancia de Ollama en la red local sin necesidad de port forwarding ni proxy inverso. Una vez que te conectas a WireGuard, accedes a Ollama simplemente usando su dirección IP interna.
En este artículo te mostraré cómo instalar un servidor WireGuard en Ubuntu, crear tus primeros peers y acceder de forma segura a tus servicios de IA. Los fundamentos sobre Linux y redes te serán útiles. Si prefieres una solución de malla lista para usar, puedes considerar Tailscale.
¿Por qué WireGuard?
WireGuard se diseñó para ser rápido y fácil de entender. El código fuente es compacto, la criptografía es moderna y el rendimiento excepcional. Esto representa una gran ventaja frente a soluciones clásicas como OpenVPN o IPsec, que a menudo vienen acompañadas de enormes archivos de configuración y estructuras de certificados complejas.
Para servicios de IA, WireGuard es especialmente práctico porque no necesitas exponer servicios individuales. Te conectas a la VPN y luego accedes directamente a direcciones IP internas como 192.168.1.42:11434. Tu red local permanece oculta tras el servidor y, aun así, es accesible desde la distancia. Además, mientras viajas puedes enrutar tu tráfico de internet a través de tu conexión doméstica o servidor, lo que posibilita mayor privacidad y eludir restricciones.
WireGuard brevemente explicado
WireGuard trabaja con claves públicas y privadas. Cada participante, o peer, posee un par de claves. El servidor conoce la clave pública de los clientes y viceversa. En lugar de autenticarse con usuario y contraseña, los dispositivos se autentican mediante sus claves. La conexión se realiza sobre UDP y utiliza el puerto 51820 por defecto.
La configuración se almacena en archivos INI, uno por peer. En Linux, lo mejor es usar wg y wg-quick. wg es la herramienta de línea de comandos, y wg-quick facilita el inicio y cierre de túneles. En dispositivos móviles, hay aplicaciones oficiales que pueden leer el código QR de una clave.
Para quién es este artículo
Este artículo va dirigido a usuarios avanzados principiantes. Deberías estar familiarizado con la línea de comandos de Linux, ser capaz de administrar un sistema Ubuntu o Debian y entender conceptos básicos de redes. Si ya tienes un servidor, la configuración te llevará menos de una hora. Si aún no estás familiarizado con Linux, nuestro artículo sobre Ubuntu Server te ayudará.
Si lo prefieres más simple, usa Tailscale. También se basa en WireGuard, pero se encarga de gran parte del trabajo administrativo. El uso directo de WireGuard te proporciona control total y funciona sin infraestructura externa.
Términos importantes
| Término | Significado |
|---|---|
| VPN | Virtual Private Network, un túnel cifrado sobre una red pública. |
| Peer | Un participante en la red WireGuard, ya sea servidor o cliente. |
| Private Key | Una clave secreta que nunca debe compartirse. |
| Public Key | El equivalente público de la clave privada, que distribuyes. |
| Endpoint | La dirección pública y puerto de tu servidor. |
| AllowedIPs | Determina qué direcciones IP se enrutan a través del túnel. |
| PersistentKeepalive | Mantiene abiertas las conexiones NAT enviando paquetes periódicamente. |
| Handshake | El establecimiento de conexión entre dos peers. |
| Subnet | Un rango de direcciones IP, como 10.0.0.0/24. |
Requisitos previos y planificación
Necesitas un servidor con Ubuntu o Debian en el que tengas permisos de root. El servidor debe tener una dirección IP pública para que los clientes puedan conectarse desde el exterior. Alternativamente, puedes ejecutar WireGuard en tu red local en una Raspberry Pi y reenviar el puerto 51820 UDP en tu router a ese dispositivo.
Decide un subred VPN que no entre en conflicto. Un rango simple es 10.200.200.0/24. El servidor recibe entonces la IP 10.200.200.1, y los clientes reciben 10.200.200.2, 10.200.200.3 y así sucesivamente. Anota cada peer para mantener las direcciones IP y claves públicas organizadas.
En el firewall debe estar abierto el puerto 51820 UDP. El IP forwarding también debe estar habilitado en el kernel para que el servidor pueda reenviar el tráfico. Los comandos para esto vienen en la siguiente sección.
Instalar WireGuard
Actualiza tu sistema e instala WireGuard:
sudo apt update
sudo apt install -y wireguard wireguard-tools
Crea el directorio para las claves y cambia a él:
sudo mkdir -p /etc/wireguard
sudo chmod 700 /etc/wireguard
cd /etc/wireguard
Genera el par de claves para el servidor:
wg genkey | tee privatekey | wg pubkey > publickey
Establece los permisos y lee las claves:
sudo chmod 600 privatekey publickey
sudo cat privatekey
sudo cat publickey
Guarda ambos valores. La clave privada permanece únicamente en el servidor. Anota la clave pública, la necesitarás más adelante para los clientes.
Configuración del servidor
Crea el archivo /etc/wireguard/wg0.conf con el siguiente contenido. Reemplaza los marcadores de posición con tu clave privada real, tu dominio público o IP y la subred deseada.
[Interface]
PrivateKey = SERVER_PRIVATE_KEY
Address = 10.200.200.1/24
ListenPort = 51820
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer]
PublicKey = CLIENT_PUBLIC_KEY
AllowedIPs = 10.200.200.2/32
Reemplaza SERVER_PRIVATE_KEY con el contenido del archivo privatekey. Generarás CLIENT_PUBLIC_KEY más adelante en el cliente. Reemplaza eth0 por tu adaptador de red real, a menudo se llama ens18 o ens160. Verifica esto con ip link.
Habilita el reenvío de IP:
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
Inicia el túnel WireGuard:
sudo wg-quick up wg0
sudo systemctl enable wg-quick@wg0
Crear un cliente
En tu cliente (portátil, tableta o teléfono), generas también un par de claves. En Linux usas el mismo comando de antes:
wg genkey | tee privatekey | wg pubkey > publickey
Abre nuevamente la configuración en el servidor y añade otro bloque [Peer] para tu cliente. Anota la dirección IP, por ejemplo 10.200.200.2.
La configuración del cliente se vería así:
[Interface]
PrivateKey = CLIENT_PRIVATE_KEY
Address = 10.200.200.2/32
DNS = 1.1.1.1
[Peer]
PublicKey = SERVER_PUBLIC_KEY
AllowedIPs = 10.200.200.0/24, 192.168.1.0/24
Endpoint = meine-domain.de:51820
PersistentKeepalive = 25
CLIENT_PRIVATE_KEY viene del archivo privatekey en el cliente. SERVER_PUBLIC_KEY es la clave pública de tu servidor. AllowedIPs define qué tráfico pasa a través del túnel. Si solo necesitas acceder a la subred VPN y tu red doméstica, incluyes ambos rangos. Para encaminar todo a través del túnel, usa 0.0.0.0/0.
Acceder a Ollama a través de WireGuard
Una vez conectado el cliente, puedes acceder a Ollama simplemente usando su dirección IP interna. Si Ollama corre en un dispositivo en tu red doméstica con IP 192.168.1.42 en el puerto 11434, accedes a http://192.168.1.42:11434. No necesitas configurar un DNS público ni un proxy inverso, ya que el túnel WireGuard te coloca prácticamente dentro de la red.
Si quieres encaminar DNS e internet completo a través de tu servidor, cambia AllowedIPs a 0.0.0.0/0 y configura un resolvedor DNS en el servidor. Para usar solo servicios de IA normalmente basta tunelizar solo la subred interna.
Problemas comunes
-
Adaptador de red incorrecto en PostUp/PostDown:
eth0no siempre es el correcto. Verifica conip linkcuál es el nombre de tu interfaz. -
IP Forwarding no activado: Sin esta configuración, el servidor no encamina tráfico hacia tu red doméstica.
-
Firewall bloquea UDP 51820: El puerto debe estar abierto en el servidor y posiblemente en el router.
-
AllowedIPs incorrectas: Cuando solo partes de la red son accesibles, usualmente se debe a una configuración de AllowedIPs demasiado restrictiva.
-
Claves públicas intercambiadas: Servidor y cliente deben conocer cada uno la clave pública del otro. Los intercambios causan errores de conexión silenciosos.
-
Sin PersistentKeepalive: Detrás de Carrier Grade NAT o ciertos routers, la conexión se corta sin paquetes regulares.
-
DynDNS en lugar de IP fija: Si tu IP pública cambia, usa un dominio. El cliente entonces no necesita cambiar IP, solo actualizaciones DNS regulares.
-
Claves no guardadas de forma segura: Las claves privadas nunca deben compartirse por correo o chat. Si un dispositivo pierde su clave, elimina el peer inmediatamente.
-
Problemas de MTU: En algunas redes necesitas ajustar la MTU. El valor estándar es 1420, en caso de problemas prueba 1380 o 1360.
-
Conflictos con otras VPNs: Múltiples conexiones VPN activas pueden causar conflictos de enrutamiento. Desactiva otras VPNs para probar.
Hardware, costos y seguridad
WireGuard requiere muy pocos recursos. Incluso una Raspberry Pi 3 es suficientemente rápida para varios clientes. Si ejecutas cargas de trabajo de IA simultáneamente en el mismo dispositivo, necesitarás más RAM y CPU. Para un servidor VPN puro basta un VPS económico o una vieja minituadora.
Los costos surgen principalmente del hosting o la electricidad. Un pequeño servidor en la nube cuesta a menudo entre dos y cinco euros al mes. Con una Raspberry Pi en tu red doméstica solo hay costos de electricidad, usualmente menos de un euro mensual. El software es Open Source y gratuito.
Desde el punto de vista de seguridad, WireGuard es muy sólido. De todas formas, mantén actualizaciones regulares, reglas de firewall fuertes y claves seguras. Abre solo UDP 51820 y cierra todo lo demás que no necesites. Más información en Firewall.
Enlaces relacionados
- Descripción general de Self-Hosting
- Fundamentos de redes
- Tailscale como alternativa
- Conceptos básicos de Ubuntu Server
- Fundamentos de Firewall
- Acceso de red en Ollama
Preguntas frecuentes
-
¿Es WireGuard gratuito?
Sí, es Open Source y se puede usar gratuitamente. -
¿Es WireGuard más seguro que OpenVPN?
Utiliza criptografía más moderna y tiene mucho menos código fuente, lo que facilita su revisión. -
¿Necesito port-forwarding para WireGuard?
Sí, si usas un servidor doméstico. Con un VPS con IP pública normalmente no. -
¿Puedo usar WireGuard en mi smartphone?
Sí, hay aplicaciones oficiales para Android e iOS. -
¿Funciona WireGuard detrás de Carrier Grade NAT?
Sí, en la mayoría de casos.PersistentKeepaliveayuda a mantener la conexión. -
¿Cuántos clientes puede servir un servidor WireGuard?
Depende del hardware. Con tráfico bajo decenas de clientes sin problemas. -
¿Debo mantener el servidor siempre encendido?
Sí, si quieres tener acceso en todo momento. -
¿Puedo tunelizar todo mi tráfico de internet?
Sí, estableceAllowedIPsa0.0.0.0/0y asegúrate de que MASQUERADE funcione correctamente. -
¿Qué pasa si cambia mi IP pública?
Usa un sistema DynDNS que mantenga tu dominio actualizado. El cliente generalmente detecta el cambio automáticamente. -
¿Es WireGuard adecuado para servicios de IA?
Sí, accedes simplemente a IPs internas como en tu red doméstica, sin exponer servicios públicamente. -
¿Cómo elimino un peer perdido?
Borra el bloque[Peer]en la configuración del servidor y reiniciawg-quick. -
¿Debo reconfigurar el cliente en cada conexión?
No, el archivo de configuración se guarda y puede transferirse rápidamente a nuevos dispositivos mediante código QR o archivo.
Fuentes
- Sitio web oficial de WireGuard: wireguard.com
- WireGuard Whitepaper de Jason A. Donenfeld
- Ubuntu Community Wiki: WireGuard
- Documentación oficial de Ollama: ollama.com
- IETF RFC sobre WireGuard y Noise Protocol Framework


