Ejecuta tu propio VPN en un VPS offshore
Los VPN comerciales te piden confiar en una política de no registros escrita por su departamento de marketing. Tu propio VPS no tiene nada que registrar salvo lo que tú configures. Aquí está la configuración completa de WireGuard — y una lista honesta de las compensaciones.
Por qué el autoalojado supera a un VPN comercial
El "no registros" de un VPN comercial es una política. El no registros de tu propio VPS es una arquitectura. Esa diferencia importa más que cualquier sello de auditoría:
- Un proveedor de VPN lo ve todo por diseño. El tráfico de miles de usuarios termina en servidores que la empresa controla por completo. Una orden sellada más un cambio silencioso en el registro son invisibles para usted — y ya ha ocurrido antes, en proveedores de los que ha oído hablar.
- En tu propio VPS, controlas toda la pila. Tu sshd, tu disco, tu configuración de WireGuard. Nosotros no ejecutamos nada dentro de tu invitado y no mantenemos registros de actividad ni de conexión en el lado de la red. No podemos ver dentro de tu VPS; una empresa de VPN se define por ver dentro de su túnel.
- La jurisdicción trabaja a tu favor. Tu salida vive donde la despliegas — fuera de las alianzas de vigilancia si eliges, regida por los tribunales de la jurisdicción de alojamiento en lugar del país de origen de una empresa de VPN.
Y el contrapeso honesto: un VPN autoalojado tiene una IP dedicada que es solo tuya. Los sitios web no la marcarán como VPN (una mejora genuina de calidad de vida), pero todo tu tráfico comparte una sola dirección — no te mezclas en una multitud de miles. Si el anonimato de multitud es el requisito, usa Tor. Si la infraestructura confiable es el requisito, nada supera una máquina que controlas.
Qué estamos construyendo
Teléfono y portátil → túnel WireGuard → un SV-Pro en tu ubicación elegida → el internet abierto. Reenvío de IPv4 con NAT en el servidor, enrutamiento de túnel completo en los clientes (0.0.0.0/0), DNS vía 9.9.9.9. IP de servidor de ejemplo en todo el texto: 185.220.101.14 — sustituye la tuya. El sistema base es Debian 13; si aún no has endurecido la máquina, haz la lista de verificación de 30 minutos primero, luego vuelve.
Configuración del servidor en Debian 13
Instalar y generar claves
apt update && apt install -y wireguard qrencode
cd /etc/wireguard
umask 077
# server keypair
wg genkey | tee server.key | wg pubkey > server.pub
# one keypair per client device (laptop shown; repeat for phone)
wg genkey | tee laptop.key | wg pubkey > laptop.pub
Generar claves de cliente en el servidor es aceptable para una primera configuración, ya que de todos modos transfieres configuraciones por SSH. Para una higiene más estricta, genera claves en cada dispositivo y pega solo las claves públicas en la configuración del servidor.
Escribir wg0.conf
# /etc/wireguard/wg0.conf
[Interface]
Address = 10.10.0.1/24
ListenPort = 51820
PrivateKey = <contents of server.key>
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
# laptop
[Peer]
PublicKey = <contents of laptop.pub>
AllowedIPs = 10.10.0.2/32
# phone — repeat the block with 10.10.0.3/32
Verifica el nombre de tu interfaz de enlace ascendente con ip route | grep default — en las imágenes de VPSRento es eth0, pero si la tuya difiere, ajusta las líneas MASQUERADE.
Habilitar el reenvío y arrancar
# turn on IPv4 forwarding, persist across reboots
echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/99-wireguard.conf
sysctl -p /etc/sysctl.d/99-wireguard.conf
# firewall: one UDP port, nothing else
ufw allow 51820/udp comment 'WireGuard'
# bring it up, now and on boot
systemctl enable --now wg-quick@wg0
wg show
wg show debería imprimir la interfaz, el puerto de escucha y tus pares. Aún no hay líneas de handshake — aparecen cuando un cliente se conecta.
Configuración del cliente
En el portátil, laptop.conf:
[Interface]
PrivateKey = <contents of laptop.key>
Address = 10.10.0.2/32
DNS = 9.9.9.9
[Peer]
PublicKey = <contents of server.pub>
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = 185.220.101.14:51820
PersistentKeepalive = 25
AllowedIPs = 0.0.0.0/0, ::/0 enruta todo a través del túnel — cámbialo a un túnel dividido más tarde si alguna vez lo quieres. PersistentKeepalive mantiene el camino activo a través del NAT doméstico. Para el teléfono, no escriba nada: genere el archivo de configuración del teléfono en el servidor y muéstrelo como un código QR en su terminal:
# prints a scannable QR in the terminal — scan it with the WireGuard app
qrencode -t ansiutf8 < phone.conf
Actívalo y luego verifícalo desde cualquier cliente: curl ifconfig.me debería responder con la IP de tu VPS, y una prueba de fuga DNS debería mostrar al operador de 9.9.9.9 — no a tu ISP.
Notas de rendimiento
WireGuard vive en el kernel y habla ChaCha20 — en los nodos AMD EPYC, un solo túnel mueve de forma realista 600–900 Mbps a través del NAT, es decir, satura el puerto mucho antes de exigir la CPU. La restricción vinculante nunca es el cifrado; son las condiciones de ancho de banda del plan. Una VPN es puramente de ancho de banda: cada gigabyte que descarga cuenta una vez entrante y una vez saliente. En los planes con límite, esa aritmética importa. En el SV-Pro — $19.99/mes, sin medir a 1 Gbps — no importa, por eso el SV-Pro es el plan que recomendamos para construir VPNs. Un cliente ejecuta una configuración familiar completa en un solo SV-Pro en Ámsterdam y aún no ha encontrado su límite.
Multi-salto: entra en Ámsterdam, sal en Reikiavik
Para una segunda capa, encadena dos VPS en distintas jurisdicciones. Nodo de entrada en los Países Bajos (latencia barata para ti), túnel WireGuard entre los dos servidores, nodo de salida en Islandia (la jurisdicción desde la que realmente quieres que se origine tu tráfico). Tus dispositivos ven un solo endpoint en Ámsterdam; internet ve una IP en Reikiavik; el nodo de entrada solo ve texto cifrado de paso. Mecánicamente son las mismas configuraciones que acabas de escribir, dos veces — una segunda interfaz wg en el nodo de entrada cuya ruta por defecto apunta al túnel de salida. El costo es aproximadamente 40–60ms de latencia añadida y un $5.99–6.89 VPS más. Vale la pena cuando tu modelo de amenaza tiene presupuesto; decoración cuando no lo tiene.
Limitaciones honestas
- Ahora eres el operador. Las actualizaciones, la rotación de claves y el tiempo de actividad son tuyos. unattended-upgrades y la lista de verificación de endurecimiento cubren la mayor parte; el resto es un apt upgrade ocasional un domingo.
- Una IP es una identidad. Los observadores pueden correlacionar todo lo que sale de tu dirección. Cuando importe, redespliega en otra ubicación — 55 segundos después tienes una salida nueva y una IP nueva verificada contra más de 40 listas negras.
- Un VPS no es Tor. Esta configuración te protege de tu ISP, de Wi-Fi hostil y de empresas VPN. Contra un adversario a nivel estatal que observa ambos extremos del túnel, existe la correlación temporal. Sabes en qué pelea estás.