Quieres un VPN que sea tuyo. Sin auditoría "no-logs" anual, sin IP compartida con 4.000 desconocidos, sin precio que se duplica al acabar la promo. Esta guía monta WireGuard en un VPS Contabo en 20 minutos cronometrados, desde el registro hasta el primer curl ifconfig.me que devuelve la IP de tu VPS alemán.
Es exactamente la config que recomendamos para un túnel self-host de producción. Contabo anuncia una conexión 200 Mbit/s, y la posición central de Núremberg en Europa mantiene una latencia baja para clientes FR/UE.
Consejo: si el túnel no conecta, la causa casi siempre es el puerto. Mira nuestra guía sobre el puerto por defecto de WireGuard (UDP 51820) y cómo abrirlo, redirigirlo o cambiarlo.
Por qué Contabo en lugar de Hetzner, OVH o DigitalOcean
La elección del proveedor VPS para un VPN self-host no es trivial y condiciona directamente la relación precio/rendimiento/jurisdicción que vas a obtener para los próximos 3 a 5 años. Comparando las specs publicadas de Contabo, Hetzner Cloud y OVH, el veredicto se resume en tres ejes: precio, rendimiento, jurisdicción.
En precio, Contabo Cloud VPS 10 a 5,50 €/mes (junio 2026) para 4 vCPU / 8 GB RAM / 200 Mbps+ sigue siendo imbatible en Europa. Hetzner CX22 propone un equivalente a 4,15 €/mes pero con solo 2 vCPU y 4 GB RAM, la mitad de margen si quieres alojar Nextcloud, Pi-hole o Vaultwarden además del VPN. OVH VPS Value a 4,50 €/mes propone 2 vCPU / 4 GB / 1 vCPU limitado al 20 % CPU steal en ciertos períodos - el peor deal de los tres en la práctica.
En rendimiento, ambos hosts anuncian ancho de banda de sobra para un VPN personal (Contabo una conexión 200 Mbit/s, Hetzner un puerto gigabit compartido). Para un VPN self-host, incluso una conexión 200 Mbit/s basta para saturar la mayoría de accesos domésticos: el caudal pico bruto rara vez es el factor decisivo - la jurisdicción y el precio suelen importar más. Lanza iperf3 tú mismo desde tu propia conexión si necesitas cifras exactas.
En jurisdicción, Contabo tiene su datacenter principal en Núremberg (Alemania), Hetzner en Falkenstein (Alemania también), OVH en Roubaix o Estrasburgo (Francia). Alemania y Francia tienen cuadros GDPR comparables y los dos están fuera del CLOUD Act US. Diferencia práctica: Contabo tiene su sociedad matriz en Alemania pura (GmbH Múnich), Hetzner también (GmbH Gunzenhausen), OVHcloud cotiza en bolsa de París desde 2021 lo que añade una capa de presión accionarial que los otros dos no tienen. Para un VPN privacy-first, preferimos ligeramente las GmbH alemanas no cotizadas.
El diferenciador final es el soporte por email. Contabo responde generalmente entre 4 y 24h en tickets, Hetzner entre 2 y 12h, OVH entre 24h y 5 días. Para un VPN personal donde puedes resolver la mayoría de problemas solo vía SSH, el soporte cuenta poco - excepto el día en que el VPS no arranca tras una actualización del kernel y necesitas acceso a la consola de rescate. Ese día, Hetzner gana fácil.
Paso 1 - Contratar el VPS Contabo
Ve a contabo.com vía nuestro enlace /go/contabo-vps-2y y elige:
- Plan: Cloud VPS 10 (4 vCPU, 8 GB RAM, 75 GB NVMe, 200 Mbps+ garantizados, tráfico ilimitado / fair-use)
- Plazo: 12 meses (5,50 €/mes, junio 2026); los plazos más largos reducen la tarifa mensual
- OS: Ubuntu 22.04 LTS (24.04 también funciona, pero 22.04 sigue siendo más estable para paquetes WireGuard)
- Datacenter: Núremberg (DE) - mejor latencia Francia/Europa + jurisdicción Alemania GDPR
- Contraseña root: genera una fuerte, guarda temporal en password manager (la borras tras crear usuario no-root)
- Add-ons: desmarca todo (backups Contabo no necesarios, hacemos los nuestros)
Total ~66 € para un plan de 12 meses (5,50 €/mes, junio 2026). Al activarse recibes email con IP pública y contraseña root. Calcula 5 minutos a 4 horas según hora. Las horas punta (18h-22h CET, martes/miércoles) son las más lentas.
Disclosure:
/go/contabo-vps-2yes un enlace patrocinado. Si contratas el VPS, ganamos una comisión sin coste para ti. Nuestra tarifa no se ve afectada. Solo recomendamos Contabo sobre la base de sus specs publicadas y su historial público, no de una comisión.
Paso 2 - Primer SSH y endurecimiento
En tu terminal local:
ssh root@TU.IP.PUBLICA
# Aceptar fingerprint, pegar contraseña root
Una vez conectado, actualizar primero:
apt update && apt upgrade -y
apt install -y curl wget unzip fail2ban
Crear usuario no-root (root SSH va a ser desactivado):
adduser eric
# Seguir prompts (contraseña fuerte, nombre completo opcional)
usermod -aG sudo eric
Copiar tu clave SSH pública desde tu MacBook local (en otro terminal):
ssh-copy-id eric@TU.IP.PUBLICA
# Si ssh-copy-id no existe: cat ~/.ssh/id_ed25519.pub | ssh root@IP "mkdir -p /home/eric/.ssh && cat >> /home/eric/.ssh/authorized_keys && chown -R eric:eric /home/eric/.ssh && chmod 700 /home/eric/.ssh && chmod 600 /home/eric/.ssh/authorized_keys"
Probar conexión no-root en nuevo terminal sin cerrar el primero:
ssh eric@TU.IP.PUBLICA
# Debes entrar solo con passphrase de tu clave SSH
Si funciona, desactiva SSH root y auth password en /etc/ssh/sshd_config (desde shell root):
sed -i 's/^#*PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config
sed -i 's/^#*PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
systemctl restart sshd
A este punto el puerto 22 sigue accesible pero solo vía clave SSH y solo para eric. No más riesgo de brute-force root.
Paso 3 - Firewall UFW
# Aún como root
apt install -y ufw
ufw default deny incoming
ufw default allow outgoing
ufw allow 22/tcp comment 'SSH'
ufw allow 51820/udp comment 'WireGuard'
ufw enable
# Responder y
ufw status verbose
UFW activo. Puedes desconectarte de la sesión root y seguir desde eric con sudo.
Paso 4 - Instalar WireGuard
# Conectado como eric con sudo
sudo apt install -y wireguard qrencode iptables-persistent
Generar claves servidor:
sudo bash -c 'umask 077 && wg genkey | tee /etc/wireguard/server.key | wg pubkey > /etc/wireguard/server.pub'
sudo cat /etc/wireguard/server.pub
# Anota la pubkey, la necesitarás para clientes
Identificar la interfaz pública (puede ser eth0, ens3, ens18):
ip route | awk '/default/ {print $5}'
# En Contabo suele ser eth0 o ens18
Paso 5 - Configurar /etc/wireguard/wg0.conf
Edita (ajusta eth0 si difiere arriba):
sudo nano /etc/wireguard/wg0.conf
Pega esto (reemplazando SERVER_PRIVATE_KEY por el contenido de /etc/wireguard/server.key):
[Interface]
PrivateKey = SERVER_PRIVATE_KEY
Address = 10.66.66.1/24
ListenPort = 51820
MTU = 1420
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT
PostUp = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT
PostDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
Activar ip_forward:
sudo bash -c 'echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf'
sudo sysctl -p
# Verificar: sysctl net.ipv4.ip_forward (debe decir 1)
Arrancar WireGuard:
sudo systemctl enable --now wg-quick@wg0
sudo wg show
# Debes ver interfaz wg0, public key, listening port
Paso 6 - Crear el primer peer (cliente)
En el servidor, genera clave cliente:
sudo mkdir -p /etc/wireguard/clients
sudo bash -c 'umask 077 && wg genkey | tee /etc/wireguard/clients/mac.key | wg pubkey > /etc/wireguard/clients/mac.pub'
sudo cat /etc/wireguard/clients/mac.pub
# Anota esta pubkey
Añadir el peer en wg0.conf servidor:
sudo bash -c 'cat >> /etc/wireguard/wg0.conf <<EOF
[Peer]
# MacBook
PublicKey = CLIENT_MAC_PUBKEY
AllowedIPs = 10.66.66.2/32
EOF'
Recargar sin parar:
sudo wg syncconf wg0 <(wg-quick strip wg0)
Generar el fichero cliente (transferir de forma segura al MacBook/iPhone):
sudo bash -c 'cat > /etc/wireguard/clients/mac.conf <<EOF
[Interface]
PrivateKey = $(cat /etc/wireguard/clients/mac.key)
Address = 10.66.66.2/24
DNS = 9.9.9.9, 149.112.112.112
MTU = 1420
[Peer]
PublicKey = $(cat /etc/wireguard/server.pub)
Endpoint = TU.IP.PUBLICA:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25
EOF'
Para iPhone / Android, codifica en QR:
sudo qrencode -t ansiutf8 < /etc/wireguard/clients/mac.conf
Escaneas el QR desde la app WireGuard (App Store, Play Store) y el túnel queda configurado.
Para macOS / Linux desktop, descarga el .conf localmente:
# En tu Mac
scp eric@TU.IP.PUBLICA:/etc/wireguard/clients/mac.conf ~/Downloads/
# Luego Import desde la app WireGuard oficial
Paso 7 - Probar contra fugas
Activa el túnel en cliente, luego en navegador:
- ipleak.net: tu IP pública debe ser la del VPS Contabo Núremberg. Geo = Alemania. Si ves tu IP original → el túnel no enruta, verifica
AllowedIPscliente. - dnsleaktest.com → botón "Extended test": los DNS devueltos deben ser Quad9 (9.9.9.9) o los del VPS. Si ves DNS de tu ISP → DNS leak, verifica
DNS = 9.9.9.9en.confcliente. - browserleaks.com/webrtc: ninguna IP local debe filtrarse vía WebRTC. Si fuga → desactiva WebRTC en navegador (uBlock Origin → opción "Prevent WebRTC from leaking").
curl ifconfig.medesde terminal cliente: debe devolver IP del VPS.
Si todo verde: tu VPN self-host funciona. Bienvenido.
Paso 8 - Backups y mantenimiento
El túnel funciona. Algunos buenos hábitos:
- Backup
/etc/wireguard/semanal:rsync -avz eric@VPS:/etc/wireguard/ ~/backup-wg/$(date +%F)/ - Actualizaciones mensuales:
sudo apt update && sudo apt upgrade -y && sudo reboot(downtime ~30s, ounattended-upgrades) - Monitoring: ver la guía Prometheus + Grafana para VPN VPS
- Kill switch lado cliente: ver la guía kill switch Linux iptables + systemd
- Plantillas para casos específicos: ver las 8 plantillas WireGuard listas
Coste total en 5 años
Para comparar honestamente con un servicio VPN comercial:
| Opción | Coste 1 año | Coste 5 años (extrapolado) | Ancho de banda |
|---|---|---|---|
| Contabo Cloud VPS 10 (self-host) | ~66 € | ~330 € | 200 Mbps+, ilimitado (fair-use) |
| NordVPN 2 años + renovación anual | 36 € | ~600 € | "Ilimitado" compartido |
| ExpressVPN 1 año + renovación | 100 € | ~750 € | "Ilimitado" compartido |
Y en el VPS Contabo puedes además alojar: Pi-hole DNS, Nextcloud, Vaultwarden, bot Discord, Mastodon personal. El VPN solo usa ~1% de CPU y RAM en uso personal normal.
Veredicto
WireGuard sobre Contabo Cloud VPS 10 a 5,50 €/mes (junio 2026) sigue siendo nuestra opción #1 para VPN self-host. Setup en ~20 min, conexión 200 Mbit/s+ anunciada, latencia baja desde Europa Occidental, jurisdicción Alemania GDPR. La única pega real: soporte solo por email, no ideal en avería urgente.
Para arrancar: Contabo Cloud VPS 10 vía nuestro enlace /go/contabo-vps-2y. Puedes cancelar en los primeros 30 días si la config no encaja, según las condiciones de Contabo.
Nuestra reseña completa de Contabo VPS detalla fortalezas y debilidades en 5 categorías (perf, precio, RAM/CPU, soporte, dashboard) con desglose de score.
★ Datacenter Núremberg GDPR · ✓ IPv4 dedicada incluida · 200+ Mbps garantizados
Aloja tu VPN en tu propio VPS → ContaboAcceso root completo · IPv4 pública · elige tu región→

