Wprowadzenie
W tym artykule dowiesz się, jak ręcznie skonfigurować połączenie NordVPN OpenVPN w kontenerze Gluetun Docker. Gluetun to lekki kontener klienta VPN, który kieruje ruch z Twoich innych kontenerów Dockera przez NordVPN za pośrednictwem OpenVPN. Kluczowym krokiem, który sprawia trudności większości użytkowników, jest uwierzytelnianie: NordVPN nie akceptuje już Twojego adresu e-mail i hasła do aplikacji innych firm, więc zamiast tego musisz użyć poświadczeń usługi.
Zanim zaczniesz
- Działająca instalacja Dockera (i opcjonalnie Docker Compose).
- Twoje dane logowania do usługi NordVPN (nazwa użytkownika i hasło) – NIE są to Twój adres e-mail i hasło do Nord Account.
- Lokalizacje serwerów NordVPN OpenVPN, z którymi chcesz się połączyć (kraj, region lub miasto).
Oto co należy zrobić
Krok 1: Uzyskaj dane uwierzytelniające usługi
- Zaloguj się na swoje konto Nord Account.
- Kliknij NordVPN, a następnie przewiń w dół do Ustawień zaawansowanych (Konfiguracja ręczna) i kliknij Skonfiguruj NordVPN ręcznie (Set up NordVPN manually).
- Otrzymasz kod weryfikacyjny na adres e-mail, którego używasz do korzystania z NordVPN. Wprowadź kod, aby potwierdzić.
- Otwórz zakładkę Dane uwierzytelniające usługi. Skopiuj wyświetloną tam nazwę użytkownika i hasło – są to wartości, których potrzebuje Gluetun.
UWAGA: Dane logowania do usługi różnią się od zwykłych danych logowania do konta Nord Account. Jeśli później połączenie nie przejdzie uwierzytelniania, dokładnie sprawdź, czy skopiowano prawidłowe dane logowania do usługi.
Krok 2: Utwórz konfigurację Gluetun
W Gluetun NordVPN przez OpenVPN używa tych zmiennych środowiskowych:
VPN_SERVICE_PROVIDER=nordvpnVPN_TYPE=openvpn-
OPENVPN_USER– Twoja nazwa użytkownika do uwierzytelniania usługi -
OPENVPN_PASSWORD– Twoje hasło dostępu do usługi -
OPENVPN_PROTOCOL– opcjonalnie,udp(domyślnie) lubtcp
Opcjonalne zmienne wyboru serwera obejmują SERVER_COUNTRIES, SERVER_REGIONSi SERVER_CITIES (listy oddzielone przecinkami).
Krok 3: Uruchom za pomocą Docker Compose
Utwórz plik docker-compose.yml o następującej treści:
services: gluetun: image: qmcgaw/gluetun container_name: gluetun cap_add: - NET_ADMIN devices: - /dev/net/tun:/dev/net/tun ports: - 8000:8000 # Serwer sterujący Gluetun (opcjonalnie) 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
Zastąp YOUR_SERVICE_USERNAME i YOUR_SERVICE_PASSWORD danymi uwierzytelniającymi usługę z kroku 1 i dostosuj SERVER_COUNTRIES do preferowanej lokalizacji.
Krok 4: Uruchom i sprawdź połączenie
- Uruchom kontener:
- Sprawdź dzienniki, aby potwierdzić, że tunel został uruchomiony:
- Potwierdź, że Twój ruch wychodzi przez NordVPN, uruchamiając sprawdzenie adresu IP z wnętrza przestrzeni nazw sieci kontenera:
docker compose up -d
docker logs -f gluetun
docker exec gluetun wget -qO- https://ipinfo.io/ip
Zwrócony adres IP powinien być adresem IP serwera NordVPN, a nie Twoim prawdziwym adresem IP.
Krok 5: Przekieruj inne kontenery przez Gluetun
Aby przesłać ruch innego kontenera przez tunel, ustaw ten kontener tak, aby współdzielił sieć Gluetun i usuń jego własne porty (zamiast tego opublikuj je w usłudze Gluetun):
yourapp: image: your/app-image network_mode: "service:gluetun" depends_on: - gluetun
Dodatkowe wskazówki
- Jeśli widzisz błąd „AUTH_FAILED / Twoje dane uwierzytelniające mogą być nieprawidłowe”, prawie na pewno używasz adresu e-mail i hasła do konta Nord Account zamiast danych uwierzytelniających do usługi. Skopiuj je ponownie z karty Dane uwierzytelniające usługi.
- Jeśli domyślny protokół
udpjest zablokowany w sieciach o restrykcyjnych ograniczeniach, przełącz się naOPENVPN_PROTOCOL=tcpi utwórz kontener ponownie. - Gluetun ma wbudowaną funkcję Kill Switch, więc zależne kontenery tracą dostęp do internetu, jeśli połączenie VPN zostanie zerwane, co zapobiega wyciekom IP. (Na podstawie udokumentowanego domyślnego zachowania Gluetuna; sprawdź aktualną stronę wiki dla swojej wersji.)