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.
- 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.
- Gdy się zalogujesz, wybierz zakładkę System, a następnie Software.
- Kliknij przycisk Update lists, poczekaj na zakończenie procesu i kliknij Dismiss.
- Zainstaluj następujące pakiety, wpisując ich nazwę w polu Filter i klikając Install…
- openvpn-openssl
- ip-full
- luci-app-openvpn
- 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.
- 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:-
-
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.
- Teraz musisz pobrać pliki konfiguracyjne klienta OpenVPN.
Wykonaj poniższe kroki, aby znaleźć najlepszy serwer dla Twojego połączenia:-
Zaloguj się na swoje NordKonto i kliknij NordVPN.
- Przewiń w dół do sekcji Ustawienia zaawansowane (Advanced Settings) i kliknij Skonfiguruj NordVPN ręcznie (Set up NordVPN manually).
- Wybierz zakładkę Zalecany serwer (Server recommendation). Na podstawie Twojej lokalizacji nasz algorytm poleci najlepszy serwer.
- 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:- W sekcji Skonfiguruj NordVPN ręcznie (Set up NordVPN manually) wybierz Pliki konfiguracyjne OpenVPN (OpenVPN configuration files).
- 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.
- W sekcji Skonfiguruj NordVPN ręcznie (Set up NordVPN manually) wybierz Pliki konfiguracyjne OpenVPN (OpenVPN configuration files).
-
Zaloguj się na swoje NordKonto i kliknij NordVPN.
-
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.
-
- 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.
- W sekcji OpenVPN instances kliknij przycisk Edit obok utworzonego połączenia VPN.
-
Wpisz dane uwierzytelniające do usługi NordVPN, czyli nazwę użytkownika i hasło, w polu poniżej, w osobnych wierszach.
username
passwordDane uwierzytelniające NordVPN (nazwę użytkownika i hasło) znajdziesz na pulpicie NordKonta.
- 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
- Aby połączyć się z serwerem VPN, kliknij opcję Enabled, a następnie przycisk Start obok nowo utworzonego połączenia NordVPN.
- Zapisz konfigurację, klikając przycisk Save & Apply na dole.
- Na górze menu nawigacyjnego najedź na System i wybierz Reboot. Otworzy się nowa strona. Kliknij przycisk Perform reboot i zaloguj się ponownie.
- 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.
- Kliknij Create interface oraz Save.
- Otwórz zakładkę Network na górze i przejdź do sekcji Firewall.
- Kliknij przycisk Add i wprowadź następujące ustawienia:
- W polu Name wpisz <0>vpnfirewall0>.
- W polu Input wybierz Reject.
- W polu Output zostaw Accept, a pole Forward powinno mieć opcję Reject.
- Zaznacz opcję Masquerading.
- Zaznacz opcję MSS clamping.
- W menu rozwijanym Covered Networks wybierz nordvpntun.
- W menu rozwijanym Allow forward from source zones wybierz lan.
- Zapisz konfigurację przyciskiem Save.
- W sekcji Zones znajdź lan i kliknij przycisk Edit.
- W menu rozwijanym Allow forward to destination zones zaznacz NordVPN.
- Ponownie wejdź do zakładki Network na górze strony i wybierz DHCP and DNS z menu rozwijanego.
- 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
- Przejdź do zakładki Resolv and Hosts Files, zaznacz pole Ignore resolve file i kliknij przycisk Save & Apply.
- Wróć do zakładki VPN > OpenVPN.
- W sekcji OpenVPN instances zaznacz opcję Enable obok NordVPN na liście i kliknij przycisk Save & Apply.
- 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/.
- 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.
-
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-fullDodatkowo możesz zainstalować komponent LuCI konfiguracji OpenVPN, ale jest to opcjonalne. Zrobisz to, wpisując następujące polecenie:
opkg install luci-app-openvpn -
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 - Teraz musisz pobrać pliki konfiguracyjne serwera. Oto jak to zrobić:
-
Zaloguj się na swoje NordKonto i kliknij NordVPN.
- Przewiń w dół do sekcji Ustawienia zaawansowane (Advanced Settings) i kliknij Skonfiguruj NordVPN ręcznie (Set up NordVPN manually).
- Wybierz zakładkę Zalecany serwer (Server recommendation). Na podstawie Twojej lokalizacji nasz algorytm poleci najlepszy serwer.
- 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:- W sekcji Skonfiguruj NordVPN ręcznie (Set up NordVPN manually) wybierz Pliki konfiguracyjne OpenVPN (OpenVPN configuration files).
- 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 sekcji Skonfiguruj NordVPN ręcznie (Set up NordVPN manually) wybierz Pliki konfiguracyjne OpenVPN (OpenVPN configuration files).
-
Zaloguj się na swoje NordKonto i kliknij NordVPN.
-
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.
-
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 nanoMoż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.ovpnNastępnie dodaj słowo secret do ciągu auth-user-pass. Gdy to zrobisz, wiersz powinien wyglądać tak:
auth-user-pass secretMusisz 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/secretW 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.
- Skonfiguruj OpenVPN za pomocą pobranego pliku konfiguracyjnego na jeden z dwóch sposobów:
-
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 -
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 openvpnGdy 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/openvpnMoż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.
-
-
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 networkPlik /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 -
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 firewallJeś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/firewallWyświetli się 13 ostatnich wierszy zawierających powyższe ciągi.
-
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/networkMoż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 commitDodane 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:
-
Otwórz plik zapory w edytorze tekstu:
sudo nano /etc/firewall.user -
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 -
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 -
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:
-
Edytuj plik zapory:
sudo nano /etc/firewall.user -
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 -
Następnie utwórz skrypt hotplug, aby funkcja Kill Switch włączała się automatycznie:
sudo nano /etc/hotplug.d/iface/99-prevent-leak -
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:
-
Otwórz plik /etc/rc.local w edytorze tekstu:
sudo nano /etc/rc.local -
Dodaj następujący wiersz:
/etc/openvpn/reconnect.sh & -
Utwórz plik reconnect.sh w katalogu /etc/openvpn, wpisując następujące polecenie:
sudo nano /etc/openvpn/reconnect.sh -
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