Ustawienie domeny dla zmiennego adresu IP (OpenWrt i DDNS)

Zawarto┼Ť─ç

Dzisiaj zamierzam poruszy─ç temat, kt├│ry dla os├│b posiadaj─ůcych ┼é─ůcze internetowe bez sta┼éego zewn─Ötrznego adresu IP powoduje problemy, je┼╝eli na naszym ┼é─ůczu chcemy uruchomi─ç serwer VPN, tak jak opisa┼éem we wpisie Instalacja serwera VPN na routerze z OpenWrt (WireGuard).

Liczba adres├│w IP w 4-tej wersji tego protoko┼éu jest praktycznie wyczerpana, w zwi─ůzku z tym oczekiwanie od naszego operatora sta┼éego adresu IP b─Ödzie coraz trudniejsze, szczeg├│lnie dla u┼╝ytkownik├│w domowych.

W zwi─ůzku z tym chcia┼ébym rozwi─ůza─ç ten problem, uruchamiaj─ůc DDNS na naszym routerze. Dzi─Öki czemu przypiszemy mu (naszemu zewn─Ötrznemu adresowi IP) domen─Ö, kt├│ra b─Ödzie kierowa┼éa na nasz router. W momencie, gdy nasz adres IP ulegnie zmianie, zostanie ona automatycznie od┼Ťwie┼╝ona, aby wskazywa─ç na aktualny, nowy adres IP.

W tym celu chcia┼ébym wykorzysta─ç posiadan─ů przeze mnie domen─Ö, kt├│rej wpisy DNS obs┼éuguj─Ö za po┼Ťrednictwem CloudFlare.

Osobi┼Ťcie nie s─ůdzi┼éem, ┼╝e CloudFlare posiada tak─ů opcj─Ö, szczeg├│lnie dla u┼╝ytkownik├│w darmowej wersji us┼éugi. Poszuka┼éem, poczyta┼éem i stwierdzi┼éem, ┼╝e spr├│buje. Oczywi┼Ťcie, je┼╝eli nie posiadasz domeny zarz─ůdzanej (wpisy DNS) przez CloudFlare, dost─Öpne s─ů r├│wnie┼╝ inne strony, kt├│re oferuj─ů tego typu us┼éug─Ö, chocia┼╝by NoIP.com.

Nim zaczniemy, warto zaznaczy─ç, ┼╝e je┼╝eli posiadamy ┼é─ůcze internetowe przez 4G/LTE i tego typu podobne, nasz router z regu┼éy nie otrzymuje zewn─Ötrznego adresu IP. W tym przypadku jeste┼Ťmy za tak zwanym NATÔÇÖem operatora lub te┼╝ podw├│jnym NATÔÇÖem, co uniemo┼╝liwia nam prawid┼éowe przekierowanie po┼é─ůcze┼ä przychodz─ůcych na nasz router. Mimo ┼╝e b─Ödziemy mogli ustawi─ç domen─Ö, to i tak nie b─Ödziemy mogli si─Ö po┼é─ůczy─ç z naszym VPNÔÇÖem.

Nie ka┼╝dy operator stosuje tego typu rozwi─ůzania (w UK prawie ka┼╝dy), wi─Öc warto sprawdzi─ç. W tym celu mo┼╝emy u┼╝y─ç rozwi─ůzania online tj. Port Forwarding Tester. Na naszym routerze musimy w regu┼éach zapory sieciowej (Firewall) otworzy─ç dowolny port i sprawdzi─ç, czy ta strona widzi go jako otwarty. Je┼╝eli tak, to istnieje du┼╝a szansa, ┼╝e wszystko b─Ödzie dzia┼éa─ç.

Zaczynamy…

Sprawdzone w wersji OpenWrt 21.02 oraz OpenWrt 22.03


Instalacja niezb─Ödnych pakiet├│w #

W tym celu mo┼╝emy to zrobi─ç z poziomu przegl─ůdarki (System > Software), od┼Ťwie┼╝aj─ůc list─Ö pakiet├│w (Update lists) i instaluj─ůc luci-app-ddns.

Z poziomu terminala SSH mo┼╝emy to zrobi─ç w nast─Öpuj─ůcy spos├│b:

opkg update
opkg install luci-app-ddns

Instaluj─ůc pakiet lubi-app-ddns automatycznie zainstalowany zostanie pakiet podstawowy do obs┼éugi DDNS, czyli ddns-scripts.

Nast─Öpnie musimy zainstalowa─ç pakiet do obs┼éugi DDNS przez CloudFlare ddns-scripts-cloudflare. Dokonujemy tego z poziomu przegl─ůdarki w analogiczny spos├│b lub terminala:

opkg install ddns-scripts-cloudflare

Opr├│cz CloudFlare dost─Öpne s─ů pakiety dla r├│┼╝nych us┼éug. List─Ö tych dost─Öpnych znajdziecie tutaj.

Po pomy┼Ťlnej instalacji i od┼Ťwie┼╝eniu naszego panelu administracyjnego w przegl─ůdarce internetowej, w sekcji Us┼éug (Services) zobaczymy opcj─Ö dynamicznego DNS (Dynamic DNS), do kt├│rej przechodzimy.

OpenWrt DDNS - 1

Jako ┼╝e obecnie ca┼éa komunikacja, w tym od┼Ťwie┼╝anie adresu IP odbywa si─Ö przez bezpieczne po┼é─ůczenie HTTPS (SSL), a domy┼Ťlnie wbudowane opcje na naszym routerze nie wspieraj─ů tego w pe┼éni, w zwi─ůzku z tym nale┼╝y zainstalowa─ç r├│wnie┼╝ zewn─Ötrzny pakiet wget lub curl. Mo┼╝e okaza─ç si─Ö, ┼╝e curl posiadacie ju┼╝ w systemie (pakiet ddns-scripts instaluje go domy┼Ťlnie), w zwi─ůzku z tym nie ma potrzeby instalacji wget (kt├│ry z regu┼éy te┼╝ jest dost─Öpny w systemie).


Ustawienie domeny na CloudFlare #

Na tym etapie ustawimy nasz─ů domen─Ö dla naszego routera. Zak┼éadaj─ůc, ┼╝e posiadamy domen─Ö mojadomena.cosik, nasz router b─Ödzie u┼╝ywa─ç pod-domeny (sub-domeny) vpn.mojadomena.cosik.

Logujemy si─Ö na nasze konto CloudFlare i wybieramy nasz─ů domen─Ö.

W zakładce DNS dodajemy nowy rekord (+ Add Record).

OpenWrt DDNS - 2

Wybieramy rekord typu A, wprowadzamy nazw─Ö naszej sub-domeny vpn oraz wstawiamy adres IP. Tutaj mo┼╝emy ustawi─ç, co chcemy.

Zalecam NIE-wstawianie naszego aktualnego adresu IP, gdyż musimy się upewnić, że nasza aplikacja działa i po zakończeniu ustawiania, adres IP zostanie podany przez nasz router. Wówczas będzie on taki jak trzeba.

Klikamy r├│wnie┼╝ na ikon─Ö chmurki CloudFlare i z Proxied ustawiamy na DNS only.

OpenWrt DDNS - 3

W momencie, gdy wykonamy ping na nasz─ů domen─Ö b─Ödziemy widzieli odpowied┼║ z przypisanego adresu IP, a nie adresu z us┼éugi CloudFlare. W przypadku VPN polecam pozostawienie tego w trybie DNS only.

To jeszcze nie wszystkoÔÇŽ

Nim przejdziemy do konfiguracji naszego routera potrzebujemy dane do komunikacji i uwierzytelnienia pomiędzy routerem a CloudFlare. W tym przypadku nie używamy nazwy użytkownika i hasła tylko API. W tym celu potrzebować będziemy nasz klucz API (API keys), które znajdziemy w ustawieniach naszego profilu (My Profile), w sekcji tokeny API (API Tokens).

OpenWrt DDNS - 4

OpenWrt DDNS - 5

Następnie klikamy na przycisk View (zobacz) przy Global API key (będziemy potrzebowali ponownie wprowadzić hasło do CloudFlare). W następnym oknie otrzymamy klucz, który kopiujemy i zapisujemy na boku, gdyż będzie nam potrzebny na dalszym etapie.

Wracamy do naszego routeraÔÇŽ


Konfiguracja #

Przechodzimy do konfiguracji. Dla wygody odbywa─ç si─Ö b─Ödzie przez przegl─ůdark─Ö internetow─ů (Services > Dynamic DNS).

OpenWrt DDNS - 6

Na tym etapie skupimy si─Ö na ustawieniu naszego adresu IPv4, wi─Öc edycj─Ö rozpoczniemy od myddns_ipv4.

Oczywi┼Ťcie, CloudFlare obs┼éuguje r├│wnie┼╝ DNS po IPv6 i je┼╝eli nasz us┼éugodawca dostarcza nam r├│wnie┼╝ t─ů pul─Ö adresow─ů, warto doda─ç odpowiedni─ů domen─Ö z rekordem typu AAAA.

Klikamy przycisk edytuj (Edit), przy myddns_ipv4 lub tworzymy now─ů konfiguracj─Ö, wprowadzaj─ůc jej nazw─Ö i klikaj─ůc przycisk dodaj (Add).

W moim przypadku utworzyłem cloudflare_ipv4.

W pierwszym kroku przechodzimy do sekcji DDNS Service provider i wybieramy cloudflare.com-v4. Mo┼╝emy zosta─ç poproszeni o potwierdzenie zmiany (Really change DDNS provider?), co potwierdzamy klikaj─ůc w przycisk Change provider.

OpenWrt DDNS - 7

Nast─Öpnie zaznaczmy nasz─ů us┼éug─Ö jako w┼é─ůczon─ů (Enabled).

W Lookup Hostname wprowadzamy nasz─ů domen─Ö vpn.mojadomena.cosik

W sekcji domena (Domain), wprowadzamy to, co powy┼╝ej, z tym wyj─ůtkiem zamiast kropki oddzielaj─ůcej domen─Ö g┼é├│wn─ů od sub-domeny wprowadzamy symbol @ jak w adresie e-mail tj. vpn@mojadomena.cosik

W polu nazwy użytkownika (Username) wprowadzamy nasz email do usługi CloudFlare.

W polu hasła (Password) wklejamy nasz klucz API (Global API key).

Ustawienie bezpiecznego po┼é─ůczenia HTTPS (Use HTTP Secure), na chwil─Ö obecn─ů pozostawiamy NIE-w┼é─ůczon─ů.

OpenWrt DDNS - 8.1

OpenWrt DDNS - 8.2

Przechodz─ůc do ustawie┼ä zaawansowanych naszej konfiguracji (Advanced Settings), musimy ustawi─ç, jak program b─Ödzie sprawdza─ç nasz zewn─Ötrzny adres IP oraz jak zewn─Ötrzny adres IP b─Ödzie okre┼Ťlany.

Tutaj istnieje kilka opcji.

Je┼╝eli nasz router widzi zewn─Ötrzny adres IP z poziomu interfejsu (Network > Interfaces) to wystarczy wybra─ç opcj─Ö interfejs (Interface). W przypadku gdy w interfejs ma przypisany prywatny adres IP, na przyk┼éad 192.168.8.2, w├│wczas musimy u┼╝y─ç innych opcji do okre┼Ťlenia adresu IP. Poni┼╝ej opisz─Ö metod─Ö z opcj─ů URL.

Dla os├│b, kt├│re u┼╝ywaj─ů DDNS wraz z mwan3 (zobacz wpis: Dodanie drugiego po┼é─ůczenia internetowego do routera z OpenWrt), odsy┼éam do innego punktu tego artuku┼éu, w kt├│rym opisz─Ö inn─ů metod─Ö pobrania zewn─Ötrznego adresu IP z wykorzystaniem skryptu (Script).

W przyk┼éadzie z opcj─ů URL pos┼éu┼╝ymy si─Ö stron─ů checkip.dyndns.com.

W sekcji IP address source wybieramy URL oraz w URL to detect wprowadzamy: http://checkip.dyndns.com (o ile nie jest ju┼╝ domy┼Ťlnie wprowadzony).

Upewnij si─Ö, ┼╝e adres jest http a nie https.

W cz─Ö┼Ťci Event Network wybieramy, przez kt├│ry interfejs sieciowy b─Ödzie odbywa─ç si─Ö komunikacja w celu wykrycia zewn─Ötrznego adresu IP. W moim przypadku, gdy posiadam dwa po┼é─ůczenia (wan oraz awaryjne 4g), wybra┼éem wan.

OpenWrt DDNS - 9

Reszt─Ö zostawiamy bez zmian i klikamy Zapisz i Zastosuj (Save & Apply).

Teraz wystarczy w┼é─ůczy─ç nasz─ů us┼éug─Ö u┼╝ywaj─ůc przycisku Start.

OpenWrt DDNS - 10

W momencie, gdy nasza us┼éuga dzia┼éa, otrzymamy informacj─Ö w pozycji Last update, kiedy adres zosta┼é od┼Ťwie┼╝ony. Cz─Östotliwo┼Ť─ç od┼Ťwie┼╝ania ustawiamy w sekcji Timer Settings w ustawieniach naszej konfiguracji (dostosowujemy w miar─Ö naszych potrzeb).

OpenWrt DDNS - 11

Aby sprawdzić, czy aby na pewno wszystko działa, możemy wykonać komendę ping

ping vpn.mojadomena.cosik

Lub zalogowa─ç si─Ö w panelu administracyjnym CloudFlare i sprawdzi─ç, jaki adres IP widnieje przy naszym rekordzie.

Teraz, w momencie, gdy nasz adres ulegnie zmianie, nasz skrypt automatycznie sprawdzi nasz zewn─Ötrzny adres IP. W momencie, gdy jest taki sam, jak widniej─ůcy w ustawieniach CloudFlare, b─Ödzie czeka┼é na nast─Öpn─ů pr├│b─Ö. Gdy adres IP b─Ödzie inny, ni┼╝ ten w CloudFlare zostanie on automatycznie od┼Ťwie┼╝ony.

Ale to jeszcze nie wszystkoÔÇŽ


Komunikacja przez bezpieczne po┼é─ůczenie HTTP (SSL) #

W momencie ustawienia naszej konfiguracji pomin─ů┼éem sekcj─Ö Use HTTP Secure.

W momencie, gdy chcemy aby nasze od┼Ťwie┼╝enie adresu IP i ca┼éa konfiguracja pomi─Ödzy naszym routerem a CloudFlare odbywa┼éa si─Ö w spos├│b bezpieczny/szyfrowany (wysoce zalecane!), musimy jeszcze ustawi─ç kilka rzeczy.

W pierwszej kolejno┼Ťci zatrzymujemy nasz─ů us┼éug─Ö, kt├│r─ů w┼é─ůczyli┼Ťmy powy┼╝ej, klikaj─ůc na przycisk PID: xxxx.

W momencie, gdy us┼éuga jest zatrzymana, zalecam przej┼Ť─ç na CloudFlare i w ustawieniach DNS zmieni─ç adres IP naszego aktualnego, jeszcze raz na jaki┼Ť wymy┼Ťlony tj. 123.123.123.123. W├│wczas, po poprawnych zastosowaniu poni┼╝szych krok├│w b─Ödziemy w ┼éatwy spos├│b zweryfikowa─ç, czy wszystko dzia┼éa a adres IP si─Ö od┼Ťwie┼╝a.

Na nast─Öpnym etapie mo┼╝emy zainstalowa─ç pakiet ca-certificates z poziomu panelu sterowania lub terminala, jednak┼╝e nie zawsze to dzia┼éa tak jak nale┼╝y, w zwi─ůzku z tym u┼╝yjemy inn─ů metod─Ö.

Z poziomu terminala wykonujemy nast─Öpuj─ůc─ů komend─Ö:

mkdir -p /etc/ssl/certs
curl -k -o /etc/ssl/certs/ca-certificates.crt https://curl.se/ca/cacert.pem

W przypadku gdy na pocz─ůtku zdecydowali┼Ťmy si─Ö na wykorzystanie wget zamiast curl, powy┼╝sza komenda powinna zosta─ç zast─ůpiona nast─Öpuj─ůc─ů:

mkdir -p /etc/ssl/certs
wget  --no-check-certificate -O /etc/ssl/certs/ca-certificates.crt http://curl.se/ca/cacert.pem

Następnie sprawdzamy, czy wszystko działa i nie mamy żadnych błędów przy pomocy komendy:

curl -I -v https://google.com

Je┼╝eli mamy b┼é─ůd typu:

* Error reading ca cert file /etc/ssl/certs/ca-certificates.crt - mbedTLS: (-0x2180) X509 - The CRT/CRL/CSR format is invalid, e.g. different type expected
curl: (77) Error reading ca cert file /etc/ssl/certs/ca-certificates.crt - mbedTLS: (-0x2180) X509 - The CRT/CRL/CSR format is invalid, e.g. different type expected

Prawdopodobnie certyfikaty zostały poprane niepoprawnie przez curl. W tym wypadku zalecam pobranie ich przy pomocy metody z wget.


Przechodzimy do konfiguracji naszego wcze┼Ťniej ustawionej konfiguracji cloudflare_ipv4 w Dynamic DNS.

Klikamy przycisk edytuj (Edit).

W zakładce podstawowej (Basic Settings) zaznaczamy Use HTTP Secure i klikamy Zapisz i Zastosuj (Save & Apply).

W┼é─ůczamy nasz─ů konfiguracj─Ö u┼╝ywaj─ůc przycisku Start (tak jak poprzednio).

Sprawdzamy, czy nasz adres IP si─Ö od┼Ťwie┼╝y┼é tak, jak w poprzednim kroku. Je┼╝eli wszystko wykonali┼Ťmy prawid┼éowo, wszystko powinno dzia┼éa─ç i powinni┼Ťmy zobaczy─ç nasz adres IP.

Na tym etapie można skończyć.


Je┼╝eli ustawia┼ée┼Ť dodatkowe po┼é─ůczenie internetowe zgodnie z moim wpisem, przeczytaj dalej, jak poprawnie ustawi─ç regu┼éy, aby od┼Ťwie┼╝enie IP odbywa┼éo si─Ö tylko przez po┼é─ůczenie, kt├│re mamy do tego przeznaczone.


Obs┼éuga wielu po┼é─ůcze┼ä internetowych z DDNS #

Je┼╝eli konfigurowa┼ée┼Ť tw├│j router do obs┼éugi dw├│ch (lub wi─Öcej) po┼é─ůcze┼ä internetowych, szczeg├│lnie w trybie, gdy podstawowe zawiedzie awaryjne (4G w moim przypadku), automatycznie jest uruchamiane, mo┼╝esz nie chcie─ç, aby domena DDNS przypisana by┼éa do adresu IP z drugiego po┼é─ůczenia, szczeg├│lnie gdy to drugie nie ma bezpo┼Ťredniego, zewn─Ötrznego adresu IP.

W tym przypadku musimy nieco zmodyfikowa─ç nasze Policies oraz Rules w mwan3.

Najpierw dodajemy polityk─Ö Policy, kt├│ra u┼╝ywa─ç b─Ödzie tylko g┼é├│wnego po┼é─ůczenia. W moim przypadku nazwa┼éem je wan_only i ustawi┼éem Members used tylko wan_m1_w1.

OpenWrt DDNS - supplement - 1

Dalej w Rules doda┼éem regu┼é─Ö nazwan─ů ddns.

W jej ustawieniach sprecyzowałem tylko Destination address na checkip.dyndns.com oraz przypisałem Policy (Policy assigned) na wan_only.

Pozosta┼éo tylko przesuni─Öcie regu┼éy ddns na sam─ů g├│r─Ö listy, aby by┼éa w pierwszej kolejno┼Ťci u┼╝ywana.

OpenWrt DDNS - supplement - 2


Obs┼éuga wielu po┼é─ůcze┼ä internetowych z DDNS (gdy powy┼╝sze rozwi─ůzanie nie dzia┼éa) #

Sprawdzone z mwan3 w wersji 2.11.1-1 na OpenWrt 22.03.0

W wersji mwan3 na OpenWrt 22.03.0, w regule (Rule) nie ma mo┼╝liwo┼Ťci ustawienia adresu domeny (tutaj checkip.dyndns.com).

W tym przypadku konfiguracja zwraca problem (Expecting: valid IP address or prefix).

W zwi─ůzku z tym nie mo┼╝emy wykorzysta─ç powy┼╝szej metody, ale jest na to rozwi─ůzanie.

Zak┼éadaj─ůc, ┼╝e nasze po┼é─ůczenie posiada sta┼éy prywatny adres IP (w moim przypadku 192.168.8.2), ustawiaj─ůc odpowiedni─ů regu┼é─Ö (Rule) w mwan3 oraz przygotowuj─ůc prosty skrypt, kt├│ry b─Ödzie odczytywa┼é nam zewn─Ötrzny adres IP poprzez dany interfejs (w moim przypadku 4G), konfigurujemy stosownie ddns aby te restrykcje omin─ů─ç.

W przyk┼éadzie z opcj─ů Script pos┼éu┼╝ymy si─Ö stron─ů icanhazip.com.

Najpierw sprawd┼║my, czy mo┼╝emy poprawnie odczyta─ç adres IP z poziomu terminala nast─Öpuj─ůc─ů komend─ů:

curl --interface 192.168.8.2 'http://icanhazip.com'

W odpowiedzi powinni┼Ťmy odczyta─ç nasz adres IP, tak samo, jak by┼Ťmy odwiedzili t─ů stron─Ö bezpo┼Ťrednio z poziomu przegl─ůdarki, korzystaj─ůc z powy┼╝szego odno┼Ťnika.

Je┼╝eli wszystko dzia┼éa, pora na przygotowanie naszego skryptu, kt├│ry nazwiemy getIP_4G i zapiszemy bezpo┼Ťrednio w folderze /root.

printf "curl --interface 192.168.8.2 'http://icanhazip.com'" > getIP_4G

Aby można było go uruchomić, dodajemy prawa uruchamiania oraz uruchamiamy go w celu weryfikacji.

chmod +x getIP_4G
./getIP_4G

Teraz gotowi jeste┼Ťmy, aby skonfigurowa─ç reszt─Ö po stronie routera z poziomu przegl─ůdarki internetowej.

W pierwszej kolejno┼Ťci, w ustawieniach mwan3 (Network > MultiWAN Manager) dodajemy regu┼é─Ö (Rule), w kt├│rej jako adres, z kt├│rego b─Ödziemy si─Ö komunikowa─ç to adres prywatny naszego interfejsu (w moim przypadku 192.168.8.2). Reszt─Ö pozostawiamy domy┼Ťlnie niewype┼énion─ů, a jako polityk─Ö wybieramy komunikacj─Ö tylko przez nasz docelowy interfejs (w moim przypadku 4Gbackup_only).

MultiWan mwan3 Rule 4G interface

Teraz przechodzimy do konfiguracji naszej domeny (Services > Dynamic DNS).

Edytuj─ůc (Edit) nasz─ů konfiguracj─Ö przechodzimy do zak┼éadki ustawie┼ä zaawansowanych (Advances Settings) i zmieniamy ┼║r├│d┼éo naszego adresu IP (IP address source) z wcze┼Ťniej wybranego URL na skrypt (Script).

W poni┼╝szym polu Script wprowadzamy lokalizacj─Ö naszego skryptu, kt├│ry utworzyli┼Ťmy wcze┼Ťniej.

/root/getIP_4G

DDNS > Advances Settings > Script > getIP_4G

Zapisujemy zmiany (Save) oraz potwierdzamy wszystko przyciskiem zapisz i zastosuj (Save & Apply).

Je┼╝eli nasza konfiguracja by┼éa ju┼╝ uruchomiona, w├│wczas klikamy przycisk Reload aby j─ů prze┼éadowa─ç, lub przycisk Start aby j─ů uruchomi─ç.

I tak powinni┼Ťmy otrzyma─ç nasz zewn─Ötrzny adres IP metod─ů Script.

Aby to sprawdzi─ç, klikaj─ůc przycisk Edit, przechodz─ůc do zak┼éadki Log File Viewer i odczytuj─ůc zapis (klikaj─ůc Read / Reread log file) powinni┼Ťmy zobaczy─ç co┼Ť takiego:

 104831       : #> /root/getIP_4G >/var/run/ddns/cf_dynamic.dat 2>/var/run/ddns/cf_dynamic.err
 104832       : Local IP '188.30.29.121' detected via script '/root/getIP_4G'
 104832       : Update needed - L: '188.30.29.121' <> R: '123.123.123.123'
 104832       : parsing script '/usr/lib/ddns/update_cloudflare_com_v4.sh'
...
 104835  info : Update successful - IP '188.30.29.121' send
 104835       : Waiting 600 seconds (Check Interval)

Automatyczna aktualizacja certyfikat├│w #

Tak jak oprogramowanie w OpenWrt, r├│wnie┼╝ certyfikaty wymagaj─ů co jaki┼Ť czas od┼Ťwie┼╝enia. W zawi─ůzku z tym warto doda─ç do harmonogramu (Scheduled Tasks) komend─Ö, kt├│ra co jaki┼Ť czas (raz w miesi─ůcu) zrobi to za nas.

Przechodz─ůc do System > Scheduled Tasks dodajemy nast─Öpuj─ůc─ů lini─Ö:

Dla curl

00 3 1 * * /usr/bin/curl -k --silent --remote-name --time-cond /etc/ssl/certs/ca-certificates.crt -o /etc/ssl/certs/ca-certificates.crt https://curl.se/ca/cacert.pem >/dev/null 2>&1

Dla wget

00 3 1 * * /usr/bin/wget -q --timestamping --no-check-certificate -O /etc/ssl/certs/ca-certificates.crt http://curl.se/ca/cacert.pem >/dev/null 2>&1

Spowoduje to, ┼╝e curl/wget por├│wna por├│wnany plik z plikiem pobieranym i je┼╝eli pobierany plik jest nowszy, zostanie pobrany i zaktualizowany. W przypadku gdy plik jest taki sam, pobieranie zostanie zignorowane do nast─Öpnego razu.

Wbudowany w OpenWrt wget nie posiada opcji sprawdzania czasu (–timestamping) dla plik├│w, w tym celu nale┼╝y zainstalowa─ç jego najnowsz─ů wersj─Ö:

opkg update
opkg install wget

Ca┼éo┼Ť─ç uruchomi si─Ö ka┼╝dego pierwszego dnia miesi─ůca o godzinie 3 w nocy.


Mam nadziej─Ö, ┼╝e powy┼╝szy wpis okaza┼é si─Ö przydatny. Zach─Öcam do dodania komentarza, je┼╝eli masz jaki┼Ť problem.

Pozdrawiam.


Credits

Komentarze
Kategorie