Jak ręcznie skonfigurować NordVPN na routerze OpenWRT?

Czy NordVPN działa na routerach z OpenWrt?

Użytkownicy zgłaszają nam, że routery z oprogramowaniem OpenWRT obsługują usługi VPN takie jak NordVPN. Pamiętaj jednak, że zespół NordVPN nie przetestował poniższej konfiguracji – zrobili to nasi wspaniali klienci, którzy przesłali nam te instrukcje. Zespół NordVPN chce przede wszystkim podziękować użytkownikowi o nicku Ulmwind ze społeczności OpenWrt za nieustanne wsparcie w przekazywaniu nam aktualnych instrukcji dla OpenWrt. Zajrzyj do naszego przewodnika, jeśli chcesz skonfigurować NordVPN z nordvpnlite.

Instrukcje dla GUI

Z tego przewodnika dowiesz się, jak skonfigurować połączenie z NordVPN na routerach z oprogramowaniem OpenWrt przez interfejs webowy LuCI. 

  1. Wejdź do interfejsu LuCI routera, wpisując lokalny adres IP routera w przeglądarce i logując się. Domyślny adres IP to 192.168.1.1, a nazwa użytkownika to root.



    WAŻNE: system nie ustawia domyślnego hasła, więc możesz zostawić to pole puste. Gdy się zalogujesz, wyświetli się komunikat z prośbą o ustawienie hasła.



    Aby to zrobić, kliknij System > Administration – tam ustawisz hasło.
     
  2. Gdy się zalogujesz, wybierz zakładkę System, a następnie Software.


     
  3. Kliknij przycisk Update lists, poczekaj na zakończenie procesu i kliknij Dismiss.
     
  4. Zainstaluj następujące pakiety, wpisując ich nazwę w polu Filter i klikając Install…
     
    1. openvpn-openssl
    2. ip-full
    3. luci-app-openvpn


       
  5. Zapisz i zastosuj ustawienia, klikając Save & Apply, a następnie odśwież stronę routera. Teraz powinna pojawić się nowa zakładka VPN. Kliknij ją i wybierz OpenVPN z menu rozwijanego.
     
  6. Teraz musisz pobrać pliki konfiguracyjne klienta OpenVPN. Na swoim NordKoncie masz narzędzie, które wybierze najlepszy serwer dla Ciebie.

    Wykonaj poniższe kroki, aby znaleźć dane uwierzytelniające do ręcznej konfiguracji połączenia:
    1.  
      1. Zaloguj się naswoje NordKonto, kliknij NordVPN, a w sekcji Konfiguracja ręczna (Manual setup) wybierz Dane uwierzytelniające (Service credentials). Tutaj znajdziesz nazwę użytkownika (Username) i hasło (Password) potrzebne do ręcznego połączenia.


         
      2. Teraz musisz pobrać pliki konfiguracyjne klienta OpenVPN.

        Wykonaj poniższe kroki, aby znaleźć najlepszy serwer dla Twojego połączenia:
        1. Zaloguj się na swoje NordKonto i kliknij NordVPN.


           
        2. Przewiń w dół do sekcji Ustawienia zaawansowane (Advanced Settings) i kliknij Skonfiguruj NordVPN ręcznie (Set up NordVPN manually).


           
        3. Wybierz zakładkę Zalecany serwer (Server recommendation). Na podstawie Twojej lokalizacji nasz algorytm poleci najlepszy serwer.


           
        4. Gdy naciśniesz Zaawansowane filtry (Advanced filters), możesz dodatkowo dostosować zalecane serwery, wybierając Typ serwera (Server type) i Protokół bezpieczeństwa (Security protocol).





          Jeśli chcesz wybrać konkretny serwer, wykonaj następujące kroki:
          1. W sekcji Skonfiguruj NordVPN ręcznie (Set up NordVPN manually) wybierz Pliki konfiguracyjne OpenVPN (OpenVPN configuration files).


             
          2. Możesz to także zrobić, wpisując serwer w okienku Szukaj (Search) lub przewijając stronę w dół. Teraz pobierz pliki, klikając Pobierz UDP (Download UDP) lub Pobierz TCP (Download TCP).



            W tym przewodniku używamy serwera us5104.nordvpn.com.
  7. W sekcji OVPN configuration file upload nazwij połączenie VPN w polu Instance name (na przykładzie nazwa to nordvpn_us). Następnie kliknij przycisk Choose File, znajdź pobrany plik serwera i kliknij Upload.


     
  8. W sekcji OpenVPN instances kliknij przycisk Edit obok utworzonego połączenia VPN.


     
  9. Wpisz dane uwierzytelniające do usługi NordVPN, czyli nazwę użytkownika i hasło, w polu poniżej, w osobnych wierszach.

    username
    password

    Dane uwierzytelniające NordVPN (nazwę użytkownika i hasło) znajdziesz na pulpicie NordKonta.

     

  10. Teraz skopiuj ścieżkę do pliku z danymi uwierzytelniającymi – zobaczysz ją nad polem z danymi uwierzytelniającymi – i wklej ją obok wiersza auth-user-pass w sekcji Config file powyżej.
    Powinno to wyglądać tak: auth-user-pass /etc/openvpn/nordvpn\_us.auth


     
  11. Aby połączyć się z serwerem VPN, kliknij opcję Enabled, a następnie przycisk Start obok nowo utworzonego połączenia NordVPN.


     
  12. Zapisz konfigurację, klikając przycisk Save & Apply na dole.
     
  13. Na górze menu nawigacyjnego najedź na System i wybierz Reboot. Otworzy się nowa strona. Kliknij przycisk Perform reboot i zaloguj się ponownie.
     
  14. Najedź kursorem na Network na górze strony i wybierz Interfaces:
     
    1. Kliknij Add new interface.
    2. W sekcji Name wpisz nordvpntun.
    3. Kliknij Protocol i wybierz Unmanaged.
    4. W menu rozwijanym Interface wpisz nazwę tun0 w polu -- custom -- na dole i naciśnij Enter.


     
  15. Kliknij Create interface oraz Save.
     
  16. Otwórz zakładkę Network na górze i przejdź do sekcji Firewall.
     
  17. Kliknij przycisk Add i wprowadź następujące ustawienia:
     
    1. W polu Name wpisz <0>vpnfirewall0>.
    2. W polu Input wybierz Reject.
    3. W polu Output zostaw Accept, a pole Forward powinno mieć opcję Reject.
    4. Zaznacz opcję Masquerading.
    5. Zaznacz opcję MSS clamping.
    6. W menu rozwijanym Covered Networks wybierz nordvpntun.
    7. W menu rozwijanym Allow forward from source zones wybierz lan.
    8. Zapisz konfigurację przyciskiem Save.


       
  18. W sekcji Zones znajdź lan i kliknij przycisk Edit.


     
  19. W menu rozwijanym Allow forward to destination zones zaznacz NordVPN.


     
  20. Ponownie wejdź do zakładki Network na górze strony i wybierz DHCP and DNS z menu rozwijanego.
     
  21. W zakładce General Settings znajdź opcję „DNS forwardings” i wpisz adresy DNS NordVPN. Adresy to: 103.86.96.100 i 103.86.99.100


     
  22. Przejdź do zakładki Resolv and Hosts Files, zaznacz pole Ignore resolve file i kliknij przycisk Save & Apply.


     
  23. Wróć do zakładki VPN > OpenVPN.
     
  24. W sekcji OpenVPN instances zaznacz opcję Enable obok NordVPN na liście i kliknij przycisk Save & Apply.


     
  25. Ponownie naciśnij Start, aby połączyć się z serwerem VPN.

Instrukcje dla CLI

Jeśli szukasz przewodnika dla bardziej zaawansowanych użytkowników, czytaj dalej. Aby korzystać z VPN na routerze z OpenWrt, musisz mieć router z oprogramowaniem OpenWrt oraz włączonym klientem OpenVPN. Główna strona oprogramowania to https://openwrt.org/

  1. Najpierw musisz wejść do panelu sterowania routera przez SSH, używając adresu IP LAN. Domyślny adres IP to 192.168.1.1, a nazwa użytkownika to root, ale adres IP może być inny, jeśli wartości domyślne były kiedyś zmieniane.
     
  2. Router nie posiada pakietu OpenVPN w pliku obrazu oprogramowania. Aby go zainstalować, wpisz następujące polecenia:

    opkg update
    			opkg install openvpn-openssl
    			opkg install ip-full

    Dodatkowo możesz zainstalować komponent LuCI konfiguracji OpenVPN, ale jest to opcjonalne. Zrobisz to, wpisując następujące polecenie:

    opkg install luci-app-openvpn
  3. Gdy zainstalujesz pakiet OpenVPN, możesz ustawić go tak, by uruchamiał się automatycznie po każdym uruchomieniu routera. Wpisz następujące polecenie:

    /etc/init.d/openvpn enable
  4. Teraz musisz pobrać pliki konfiguracyjne serwera. Oto jak to zrobić:
    1. Zaloguj się na swoje NordKonto i kliknij NordVPN.


       
    2. Przewiń w dół do sekcji Ustawienia zaawansowane (Advanced Settings) i kliknij Skonfiguruj NordVPN ręcznie (Set up NordVPN manually).


       
    3. Wybierz zakładkę Zalecany serwer (Server recommendation). Na podstawie Twojej lokalizacji nasz algorytm poleci najlepszy serwer.


       
    4. Gdy naciśniesz Zaawansowane filtry (Advanced filters), możesz dodatkowo dostosować zalecane serwery, wybierając Typ serwera (Server type) i Protokół bezpieczeństwa (Security protocol).





      Jeśli chcesz wybrać konkretny serwer, wykonaj następujące kroki:
      1. W sekcji Skonfiguruj NordVPN ręcznie (Set up NordVPN manually) wybierz Pliki konfiguracyjne OpenVPN (OpenVPN configuration files).


         
      2. Możesz to także zrobić, wpisując serwer w okienku Szukaj (Search) lub przewijając stronę w dół. Teraz pobierz pliki, klikając Pobierz UDP (Download UDP) lub Pobierz TCP (Download TCP).


         
  1. Dla przykładu użyliśmy serwera uk2054.nordvpn.com, ale Ty najlepiej wybierz serwer polecany na NordKoncie.

    Aby pobrać plik serwera, wybierz kraj, z którym chcesz się połączyć, kliknij „Pokaż dostępne protokoły (Show available protocols)”, kliknij „Uzyskaj konfigurację (Download config)” prawym przyciskiem myszy dla „OpenVPN TCP” lub „OpenVPN UDP” i wybierz „Kopiuj adres linku (Copy link address)”.

    Następnie wróć do sesji SSH i wpisz następujące polecenie:

    wget -P /etc/openvpn https://downloads.nordcdn.com/configs/files/ovpn_udp/servers/uk2054.nordvpn.com.udp.ovpn


    Pamiętaj, żeby wpisać skopiowany link dla wybranego pliku serwera. Za pomocą tego polecenia plik konfiguracyjny zostanie pobrany do katalogu /etc/openvpn.

    Alternatywnie możesz pobrać plik konfiguracyjny serwera na innym urządzeniu i przesłać go do routera OpenWrt za pomocą innych metod, takich jak protokoły SCP lub SFTP.

    Starsze wersje OpenWrt:
    Pobierz archiwum z tej lokalizacji: https://downloads.nordcdn.com/configs/archives/certificates/servers.zip. W pobranym archiwum znajdziesz odpowiedni pliki z rozszerzeniami .crt i .key. Te pliki są specyficzne dla każdego serwera VPN.
     

  2. OpenVPN dla NordVPN wymaga wpisywania danych uwierzytelniających do usługi NordVPN za każdym razem, gdy OpenVPN się uruchamia. Wprowadzimy jednak zmiany w konfiguracji, aby dane były podawane automatycznie.

    Najpierw, aby ułatwić cały proces, musisz zainstalować edytor tekstu nano, wpisując następujące polecenie:

    opkg install nano

    Możesz też użyć wbudowanego edytora tekstu vi. Więcej informacji na temat edytorów tekstu znajdziesz w następującym artykule.

    Teraz otwórz pobrany plik konfiguracyjny serwera w edytorze tekstu nano. W naszym przykładzie polecenie wygląda tak:

    nano /etc/openvpn/uk2054.nordvpn.com.udp.ovpn

    Następnie dodaj słowo secret do ciągu auth-user-pass. Gdy to zrobisz, wiersz powinien wyglądać tak:

    auth-user-pass secret

    Musisz utworzyć nowy plik secret, w którym będą przechowywane dane uwierzytelniające do NordVPN. W tym celu wykonaj następujące polecenie:

    nano /etc/openvpn/secret

    W ten sposób utworzysz nowy plik, który otworzy się w edytorze tekstu nano.

    W pierwszym wierszu pliku wpisz nazwę użytkownika usługi NordVPN, a w drugim – hasło.

    Dane uwierzytelniające NordVPN (nazwę użytkownika i hasło) znajdziesz na pulpicie NordKonta.

  3. Skonfiguruj OpenVPN za pomocą pobranego pliku konfiguracyjnego na jeden z dwóch sposobów:
     
    1. Zmień rozszerzenie pliku z .ovpn na .conf, dzięki czemu OpenVPN będzie go znajdować automatycznie po rozszerzeniu.
      W tym celu możesz użyć polecenia mv:

      mv /etc/openvpn/uk2054.nordvpn.com.udp.ovpn /etc/openvpn/uk2054.nordvpn.com.udp.conf

       

    2. Określ nazwę pliku w /etc/config/openvpn, używając następujących poleceń uci:

      uci set openvpn.nordvpn=openvpn
      			uci set openvpn.nordvpn.enabled='1'
      			uci set openvpn.nordvpn.config='/etc/openvpn/uk2054.nordvpn.com.udp.ovpn'
      			uci commit openvpn

      Gdy to zrobisz, plik /etc/config/openvpn powinien zawierać następujące dodatkowe ciągi:

      config openvpn 'nordvpn'
      			option enabled '1'
      			option config '/etc/openvpn/uk2054.nordvpn.com.udp.ovpn'

      Możesz to sprawdzić, wpisując następujące polecenie:

      tail /etc/config/openvpn

      Możesz też zmienić rozszerzenie pliku z .ovpn na .conf i określić to w pliku „/etc/config/openvpn” – jednak w takim przypadku OpenVPN tylko raz uruchomi się z tego pliku konfiguracyjnego.
       

  4. Utwórz nowy interfejs sieciowy, wykonując następujące polecenia:

    uci set network.nordvpntun=interface
    			uci set network.nordvpntun.proto='none'
    			uci set network.nordvpntun.ifname='tun0'
    			uci commit network

    Plik /etc/config/openvpn będzie zawierać następujące dodatkowe ciągi:

    config interface 'nordvpntun'
    			option proto 'none'
    			option ifname 'tun0'

    Możesz to sprawdzić, wpisując następujące polecenie:

     tail /etc/config/network 
  5. Utwórz nową strefę zapory sieciowej i dodaj regułę przekazywania z LAN do VPN, wpisując następujące polecenia:

    uci add firewall zone
    			uci set firewall.@zone[-1].name='vpnfirewall'
    			uci set firewall.@zone[-1].input='REJECT'
    			uci set firewall.@zone[-1].output='ACCEPT'
    			uci set firewall.@zone[-1].forward='REJECT'
    			uci set firewall.@zone[-1].masq='1'
    			uci set firewall.@zone[-1].mtu_fix='1'
    			uci add_list firewall.@zone[-1].network='nordvpntun'
    			uci add firewall forwarding
    			uci set firewall.@forwarding[-1].src='lan'
    			uci set firewall.@forwarding[-1].dest='vpnfirewall'
    			uci commit firewall

    Jeśli wszystkie kroki zostały wykonane prawidłowo, plik /etc/config/firewall powinien zawierać następujące dodatkowe ciągi:

    config zone
    			option name 'vpnfirewall'
    			option input 'REJECT'
    			option output 'ACCEPT'
    			option forward 'REJECT'
    			option masq '1'
    			option mtu_fix '1'
    			list network 'nordvpntun'
    			config forwarding
    			option src 'lan'
    			option dest 'vpnfirewall'

    Możesz to sprawdzić, wpisując następujące polecenie:

    tail -13 /etc/config/firewall

    Wyświetli się 13 ostatnich wierszy zawierających powyższe ciągi.

  6. Teraz musisz skonfigurować serwery DNS. Najprościej jest użyć DNS NordVPN dla interfejsu WAN routera. Aby dodać DNS NordVPN, wykonaj następujące polecenia:

    uci set network.wan.peerdns='0'
    			uci del network.wan.dns
    			uci add_list network.wan.dns='103.86.96.100'
    			uci add_list network.wan.dns='103.86.99.100'
    			uci commit


    WAŻNE: jeśli wyświetli się komunikat „uci: Entry not found” po wykonaniu polecenia uci del network.wan.dns, możesz go zignorować.

    Plik „/etc/config/network” powinien zawierać sekcję „wan” z trzema poniższymi ciągami znaków na końcu:

    config interface 'wan'
    			<...>
    			option peerdns '0'
    			list dns '103.86.96.100'
    			list dns '103.86.99.100'


    Możesz to sprawdzić, wyszukując interfejs „wan” w wynikach:

    cat /etc/config/network 

    Możesz też dodać różne adresy DNS, np. od Google, wpisując następujące polecenia:

    uci set network.wan.peerdns='0'
    			uci del network.wan.dns
    			uci add_list network.wan.dns='8.8.8.8'
    			uci add_list network.wan.dns='8.8.4.4'
    			uci commit

    Dodane ciągi powinny być podobne do poprzednich.
     

(Opcja) Funkcja Kill Switch dla OpenWRT 22.02 lub starszych wersji (iptables)

Aby zapobiec wyciekom ruchu w przypadku rozłączenia tunelu VPN, wykonaj następujące kroki:

  1. Otwórz plik zapory w edytorze tekstu:

    sudo nano /etc/firewall.user
  2. Dodaj następującą treść:

    # This file is interpreted as a shell script.
    			# Put your custom iptables rules here, and they will be executed with each firewall (re-)start
    			# Internal uci firewall chains are flushed and recreated on reload, so
    			# put custom rules into the root chains, e.g. INPUT or FORWARD, or into the
    			# special user chains, e.g. input_wan_rule or postrouting_lan_rule.
    
    			if (! ip a s tun0 up) && (! iptables -C forwarding_rule -j REJECT); then
    
    			iptables -I forwarding_rule -j REJECT
    
    			fi
  3. Otwórz plik o nazwie 99-prevent-leak w folderze /etc/hotplug.d/iface, wykonując następujące polecenie:

    nano /etc/hotplug.d/iface/99-prevent-leak
  4. Dodaj następującą treść do skryptu:
     

    #!/bin/sh
    
    			if [ "$ACTION" = ifup ] && (ip a s tun0 up) && (iptables -C forwarding_rule -j REJECT); then
    
    			iptables -D forwarding_rule -j REJECT
    
    			fi
    
    			if [ "$ACTION" = ifdown ] && (! ip a s tun0 up) && (! iptables -C forwarding_rule -j REJECT); then
    
    			iptables -I forwarding_rule -j REJECT
    
    			fi

(Opcja) Funkcja Kill Switch dla OpenWRT 22.03 lub nowszych wersji (nftables)

Aby zapobiec wyciekom ruchu w przypadku rozłączenia tunelu VPN, wykonaj następujące kroki:

  1. Edytuj plik zapory:

    sudo nano /etc/firewall.user
  2. Dodaj następującą treść:

    # when tun0 interface is down and within nftables no chain "forwarding_rule" exists, then do the following.
    			if (! ip a s tun0 up) && (! nft list chain inet fw4 forwarding_rule; then
    			# add new chain named forwarding_rule
    			   nft add chain inet fw4 forwarding_rule
    			# add rule within chain forward to jump to chain forwarding_rule
    			   nft add rule inet fw4 forward jump forwarding_rule
    
    			# add rule within chain forward_rule to reject all traffic
    			   nft add rule inet fw4 forwarding_rule reject
    			fi
  3.  Następnie utwórz skrypt hotplug, aby funkcja Kill Switch włączała się automatycznie:

    sudo nano /etc/hotplug.d/iface/99-prevent-leak
  4. Dodaj następującą treść do skryptu:

    #!/bin/sh
    
    			# if action ifup is triggered, interface tun0 is up and the nftables chain "forwarding_rule" contains text "reject", then flush that chain in order to allow traffic.
    			if [ "$ACTION" = ifup ] && (ip a s tun0 up) && (nft list chain inet fw4 forwarding_rule | grep -q 'reject'); then
    			nft flush chain inet fw4 forwarding_rule
    			fi
    
    
    			# if action ifdown is triggered, interface tun0 is not up and the nftables chain "forwarding_rule" does not contain text "reject", then add a rule to that chain in order to reject all traffic.
    			if [ "$ACTION" = ifdown ] && (! ip a s tun0 up) && (! nft list chain inet fw4 forwarding_rule | grep -q 'reject'); then
    			nft add rule inet fw4 forwarding_rule reject
    			fi

Automatyczne ponowne łącznie skryptu

W niektórych przypadkach połączenie OpenVPN może zostać przerwane z komunikatem typu couldn’t resolve host…. W takim przypadku tunel VPN nadal działa, ale bez połączenia. Aby utworzyć skrypt do automatycznego ponownego łączenia, wykonaj następujące kroki:

  1. Otwórz plik /etc/rc.local w edytorze tekstu:

    sudo nano /etc/rc.local
  2. Dodaj następujący wiersz:

    /etc/openvpn/reconnect.sh &
  3. Utwórz plik reconnect.sh w katalogu /etc/openvpn, wpisując następujące polecenie:

    sudo nano /etc/openvpn/reconnect.sh
  4. W pliku dodaj następujące ciągi:

    #!/bin/sh
    
    			n=10
    
    			while sleep 50; do
    
    			t=$(ping -c $n 8.8.8.8 | grep -o -E '[0-9]+ packets r' | grep -o -E '[0-9]+')
    
    			if [ "$t" -eq 0 ]; then
    
    			/etc/init.d/openvpn restart
    
    			fi
    
    			done

Status połączenia

Jeśli wykonano wszystkie kroki z instrukcji, połączenie powinno zostać nawiązane.Aby to sprawdzić, wejdź na stronę NordVPN – na górze strony powinien być widoczny status „Chroniony (Protected)”.

Jeśli chcesz rozłączyć VPN, kliknij przycisk Stop obok opcji NordVPN w sekcji VPN > OpenVPN > OpenVPN instances w przypadku GUI. Jeśli chcesz rozłączyć się z VPN, wykonaj następujące polecenie:

service openvpn stop
Czy ten artykuł był pomocny?

Nadal masz problemy?

  • Czat na żywo

  • Formularz e-mail

Klikając „Napisz do nas na czacie”, wyrażasz zgodę na nasze Warunki świadczenia usług i potwierdzasz zapoznanie się z naszą Polityką prywatności. Korzystanie z czatu wymaga użycia plików cookie. Rozpoczynając czat, wyrażasz zgodę na ich stosowanie. Dowiedz się więcej w naszej Polityce plików cookie.