Jak skonfigurować NordVPN na routerze z oprogramowaniem 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. Z tym że musisz pamiętać, ż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.

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. Zaloguj się na swoje 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). Nasz algorytm poleci najlepszy serwer dla Ciebie w oparciu o Twoją lokalizację.



        4. Gdy naciśniesz Zaawansowane filtry (Advanced filters), możesz 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. nazwa użytkownika
    hasło



    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ź 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 nazwę vpnfirewall. .
    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 nordvpntun.



     
  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). Nasz algorytm poleci najlepszy serwer dla Ciebie w oparciu o Twoją lokalizację.



    4. Gdy naciśniesz Zaawansowane filtry (Advanced filters), możesz 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).



  5. Dla przykładu użyliśmy serwera uk2054.nordvpn.com, ale Ty najlepiej użyj serwera polecanego 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ą alternatywnych 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.
  6. 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 naszym 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 do usługi NordVPN, a w drugim – hasło. Dane uwierzytelniające NordVPN (nazwę użytkownika i hasło) znajdziesz na pulpicie NordKonta:
  7. 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.
  8. 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 
    
  9. 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.
  10. Teraz musisz skonfigurować serwery DNS. Najprościej jest użyć DNS NordVPN dla interfejsu WAN routera. Wykonaj następujące polecenia, aby dodać DNS NordVPN:```` 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 dodanymi trzema ciągami na dole:  
    ```
    config interface 'wan'  
    <...>  
    option peerdns '0'  
    list dns '103.86.96.100'  
    list dns '103.86.99.100'
    ```
      
    Możesz to sprawdzić, wykonując następujące polecenie i szukając wan w wynikach:  
    ```
    cat /etc/config/network 
    ```
    Możesz też dodać inne adresy DNS, np. od Google wykonują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 wszystkie kroki z instrukcji zostały wykonane, połączenie powinno zostać nawiązane. Aby to sprawdzić, wejdź na stronę NordVPN – status na górze strony powinien być 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

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.