VPNSmith
self-host-vpnINFO

Configurar VPN Contabo VPS paso a paso (Ubuntu 22.04) - 2026

Tutorial completo: contratar Contabo Cloud VPS 10 (5,50 €/mes, junio 2026), endurecer SSH + UFW, instalar WireGuard, generar peers, probar fugas. 20 minutos, scripts incluidos.

Por Eric Gerard · Fundador · VPNSmith - Especialista en VPN self-host y VPS GDPR9 min de lecturaFoto vía Unsplash

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-2y es 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

Filas de servidores en un centro de datos
Filas de servidores en un centro de datos

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 &lt; /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:

  1. 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 AllowedIPs cliente.
  2. 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.9 en .conf cliente.
  3. 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").
  4. curl ifconfig.me desde 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:

Coste total en 5 años

Para comparar honestamente con un servicio VPN comercial:

OpciónCoste 1 añoCoste 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 anual36 €~600 €"Ilimitado" compartido
ExpressVPN 1 año + renovación100 €~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

Preguntas frecuentes

¿Cuánto tarda el setup completo?
Unos 20 minutos siguiendo esta guía, sin contar el tiempo de activación del VPS (de unos minutos a unas horas según hora de compra en Contabo).
¿Por qué Contabo en lugar de otro VPS?
5,50 €/mes (Cloud VPS 10, plan 12 meses, junio 2026) por 4 vCPU + 8 GB RAM + conexión 200 Mbit/s+ anunciada + IPv4 dedicada es imbatible en UE. Jurisdicción Alemania (GDPR). Ver [el comparativo Contabo vs Hetzner vs OVH](/es/blog/contabo-vs-hetzner-vs-ovh-vps-vpn-2026).
¿Cuánto cuesta el Cloud VPS 10?
5,50 €/mes en el plan de 12 meses (Cloud VPS 10, precio junio 2026, ~66 €/año). El plan incluye 4 vCPU, 8 GB RAM, 75 GB NVMe y tráfico ilimitado (fair-use). Consulta contabo.com para la tarifa y las opciones de plazo actuales.