Introducción
En este artículo, aprenderás a configurar una conexión manual de OpenVPN de NordVPN dentro de un contenedor Docker de Gluetun. Gluetun es un contenedor cliente VPN ligero que enruta el tráfico de tus otros contenedores Docker a través de NordVPN mediante OpenVPN. El paso clave con el que tropieza la mayoría de la gente es la autenticación: NordVPN ya no acepta tu correo electrónico y tu contraseña para aplicaciones de terceros, por lo que debes usar en su lugar las credenciales del servicio.
Antes de empezar
- Una instalación de Docker (y opcionalmente de Docker Compose) que funcione.
- Tus credenciales de servicio de NordVPN (nombre de usuario y contraseña): NO son tu correo electrónico ni tu contraseña de Nord Account.
- La ubicación o ubicaciones del servidor OpenVPN de NordVPN al que quieres conectarte (país, región o ciudad).
¿Qué tienes que hacer?
Paso 1: Obtén tus credenciales de servicio
- Inicia sesión en tu Nord Account.
- Haz clic en NordVPN, desplázate hacia abajo hasta Configuración avanzada (Configuración manual) y haz clic en Configurar NordVPN manualmente (Set up NordVPN manually).
- Recibirás un código de verificación en el correo electrónico que utilices para NordVPN. Introduce el código para confirmar.
- Abre la pestaña Credenciales de servicio. Copia el Nombre de usuario y la Contraseña que aparecen allí: estos son los valores que necesita Gluetun.
NOTA: Las credenciales de servicio son diferentes del inicio de sesión habitual de tu Nord Account. Si tu conexión no supera la autenticación más adelante, comprueba que hayas copiado las credenciales de servicio correctas.
Paso 2: Crea la configuración de Gluetun
En Gluetun, NordVPN sobre OpenVPN utiliza estas variables de entorno:
VPN_SERVICE_PROVIDER=nordvpnVPN_TYPE=openvpn-
OPENVPN_USER- el nombre de usuario de tus credenciales de servicio -
OPENVPN_PASSWORD- la contraseña de sus credenciales de servicio -
OPENVPN_PROTOCOL- opcional,udp(predeterminado) otcp
Las variables opcionales de selección de servidor incluyen SERVER_COUNTRIES, SERVER_REGIONSy SERVER_CITIES (listas separadas por comas).
Paso 3: Ejecuta con Docker Compose
Crea un archivo docker-compose.yml como el siguiente:
services: gluetun: image: qmcgaw/gluetun container_name: gluetun cap_add: - NET_ADMIN devices: - /dev/net/tun:/dev/net/tun ports: - 8000:8000 # Servidor de control de Gluetun (opcional) environment: - VPN_SERVICE_PROVIDER=nordvpn - VPN_TYPE=openvpn - OPENVPN_USER=YOUR_SERVICE_USERNAME - OPENVPN_PASSWORD=YOUR_SERVICE_PASSWORD - OPENVPN_PROTOCOL=udp - SERVER_COUNTRIES=United States restart: unless-stopped
Sustituya YOUR_SERVICE_USERNAME y YOUR_SERVICE_PASSWORD por las credenciales de servicio del paso 1 y ajuste SERVER_COUNTRIES a la ubicación que prefiera.
Paso 4: Inicia y verifica la conexión
- Inicia el contenedor:
- Comprueba los registros para confirmar que el túnel se ha activado:
- Confirma que tu tráfico sale a través de NordVPN realizando una comprobación de IP desde el espacio de nombres de la red del contenedor:
docker compose up -d
docker logs -f gluetun
docker exec gluetun wget -qO- https://ipinfo.io/ip
La IP devuelta debe ser la de un servidor NordVPN, no la tuya real.
Paso 5: Enrutar otros contenedores a través de Gluetun
Para enviar el tráfico de otro contenedor a través del túnel, configura ese contenedor para que comparta la red de Gluetun y elimina sus propios puertos (en su lugar, publícalos en el servicio Gluetun):
yourapp: image: your/app-image network_mode: "service:gluetun" depends_on: - gluetun
Consejos adicionales
- Si ves un error «AUTH_FAILED / Your credentials might be wrong», es casi seguro que estás utilizando el correo electrónico y la contraseña de tu Nord Account en lugar de las credenciales de servicio. Vuelve a copiarlas desde la pestaña Credenciales de servicio.
- Si el protocolo predeterminado
udpestá bloqueado en redes restrictivas, pásate aOPENVPN_PROTOCOL=tcpy vuelve a crear el contenedor. - Gluetun incluye una función Kill Switch integrada, por lo que los contenedores dependientes pierden el acceso a internet si la VPN falla, evitando así filtraciones de direcciones IP. (Según el comportamiento predeterminado documentado de Gluetun; verifica tu versión en la wiki actual).