Introduzione
In questo articolo scoprirai come configurare una connessione manuale OpenVPN di NordVPN all'interno di un container Docker Gluetun. Gluetun è un container client VPN leggero che instrada il traffico degli altri tuoi container Docker attraverso NordVPN via OpenVPN. Il passaggio chiave che crea problemi alla maggior parte delle persone è l'autenticazione: NordVPN non accetta più la tua e-mail e la tua password per le app di terze parti, quindi devi invece utilizzare le credenziali del servizio.
Prima di iniziare
- Un'installazione funzionante di Docker (e facoltativamente di Docker Compose).
- Le tue credenziali del servizio NordVPN (nome utente e password): NON si tratta dell'e-mail e della password del tuo Nord-Account.
- La posizione (o le posizioni) del server OpenVPN di NordVPN a cui desideri connetterti (paese, regione o città).
Ecco cosa fare
Passaggio 1: ottieni le credenziali di servizio
- Accedi al tuo Nord-Account.
- Clicca su NordVPN, quindi scorri verso il basso fino a Impostazioni avanzate (Configurazione manuale) e clicca su Configura NordVPN manualmente.
- Riceverai un codice di verifica sull'indirizzo e-mail che usi per NordVPN. Inserisci il codice per confermare.
- Apri la scheda Credenziali del servizio. Copia l'Username e la Password che vedi: sono i valori di cui Gluetun ha bisogno.
NOTA: Le credenziali di servizio sono diverse dalle normali credenziali di accesso al tuo Nord-Account. Se in seguito la connessione non supera l'autenticazione, verifica di aver copiato le credenziali del servizio corrette.
Passaggio 2: crea la configurazione Gluetun
In Gluetun, NordVPN su OpenVPN utilizza queste variabili di ambiente:
VPN_SERVICE_PROVIDER=nordvpnVPN_TYPE=openvpn-
OPENVPN_USER- il nome utente delle tue credenziali di servizio -
OPENVPN_PASSWORD- la password delle tue credenziali di servizio -
OPENVPN_PROTOCOL- opzionale,udp(predefinito) otcp
Le variabili opzionali per la selezione del server includono SERVER_COUNTRIES, SERVER_REGIONSe SERVER_CITIES (elenchi separati da virgole).
Passaggio 3: esegui con Docker Compose
Crea un file docker-compose.yml come il seguente:
services: gluetun: image: qmcgaw/gluetun container_name: gluetun cap_add: - NET_ADMIN devices: - /dev/net/tun:/dev/net/tun ports: - 8000:8000 # Server di controllo Gluetun (opzionale) 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
Sostituisci YOUR_SERVICE_USERNAME e YOUR_SERVICE_PASSWORD con le credenziali del servizio del passaggio 1 e modifica SERVER_COUNTRIES con la tua posizione preferita.
Passaggio 4: Avvia e verifica la connessione
- Avvia il container:
- Controlla i log per confermare che il tunnel sia attivo:
- Verifica che il tuo traffico esca tramite NordVPN eseguendo un controllo IP dall'interno dello spazio dei nomi di rete del container:
docker compose up -d
docker logs -f gluetun
docker exec gluetun wget -qO- https://ipinfo.io/ip
L'IP restituito dovrebbe essere quello di un server NordVPN, non il tuo vero IP.
Step 5: instrada altri container attraverso Gluetun
Per inviare il traffico di un altro container attraverso il tunnel, imposta quel container in modo che condivida la rete di Gluetun e rimuovi le sue porte (pubblicale invece sul servizio Gluetun):
yourapp: image: your/app-image network_mode: "service:gluetun" depends_on: - gluetun
Ulteriori consigli
- Se visualizzi un errore "AUTH_FAILED / Le tue credenziali potrebbero essere errate", quasi certamente stai usando l'email e la password del tuo Nord-Account invece delle credenziali del servizio. Copiale nuovamente dalla scheda Credenziali del servizio.
- Se il protocollo predefinito
udpè bloccato su reti soggette a restrizioni, passa aOPENVPN_PROTOCOL=tcpe ricrea il container. - Gluetun include un Kill Switch integrato, quindi i container dipendenti perdono l'accesso a internet se la VPN si interrompe, prevenendo gli IP leak. (In base al comportamento predefinito documentato di Gluetun; verifica la tua versione nel wiki corrente.)