Na jednym pudełku z Pi-hole i VPN mieszają się dwie rzeczy: rodzina dystrybucji, którą zainstalowałeś, oraz wydanie i architektura, które komponenty faktycznie obsługują. Płytka, która uruchamia obraz, dowodzi, że jądro działa; nie dowodzi, że plik binarny FTL Pi-hole i twój instalator VPN celują w tę samą przestrzeń użytkownika. Prawdziwym testem jest poczwórne przecięcie wsparcia płytki, gałęzi wydania, architektury pakietów i ścieżki aktualizacji, którą sam możesz poprowadzić. Stracisz którąkolwiek z tych czterech nóg, a urządzenie działa w tym tygodniu, by zostawić cię na następnej aktualizacji bezpieczeństwa.

Wsparcie wyznacza gałąź wydania, nie nazwa rodziny

Zapytaj, przeciwko któremu wydaniu projekt nadal testuje, a odpowiedź zapisz jako ciąg wersji, nie jako Debian. Strona wymagań wstępnych Pi-hole wymienia obsługiwane systemy operacyjne i gotowe architektury FTL jako dwa osobne wymagania, ogranicza wsparcie do wydań, które sama dystrybucja jeszcze utrzymuje, i ostrzega, że warianty lub nietypowe konfiguracje mogą zawieść nawet na liście obsługiwanych. To sformułowanie ma znaczenie: obsługiwana rodzina nie obejmuje każdego jej członka.

Stary obraz, który nadal się uruchamia na twoim Pi, nie jest dowodem wsparcia. Płytka jest w porządku, indeks pakietów jest przestarzały, a niezgodność ujawnia się później, gdy instalator ciągnie zależność, której wydanie nie może już spełnić.

Strona VPN ma więcej części, każda z własnym oknem: demon tunelu, pomocnik instalacji, który zapisuje jego konfigurację, aplikacja klienta dostawcy i pakiet integracyjny dystrybucji to cztery odrębne projekty. Instalator, który rozpoznaje twoją dystrybucję, i instalator, który tworzy usługę, jaką wydanie może utrzymać w działaniu, to dwa różne twierdzenia. Sprawdź własną listę platform demona, a potem, czy pomocnik, który chcesz uruchomić, był ruszany od czasu wydania tej wersji. Gdzie projekt deklaruje wsparcie tylko do nazwanego wydania, traktuj następne jako nieprzetestowane, dopóki sam go nie uruchomisz.

Dopasuj cel binarny do przestrzeni użytkownika, którą masz

Architektura to cichsza porażka. Jądro 64-bitowe z 32-bitową ziemią użytkownika to realna, obsługiwana kombinacja na kilku płytkach i uruchamia 32-bitowy plik FTL bez skargi, aż do chwili, gdy zainstalujesz coś publikowanego tylko dla arm64. Wydrukuj obie połowy przed wyborem obrazu i trzymaj wynik przy notatkach.

uname -m
dpkg --print-architecture
grep -E '^(PRETTY_NAME|VERSION_ID)=' /etc/os-release
apt-cache policy pihole-ftl

Jeśli te dwie linie architektury się nie zgadzają, jesteś na mieszanej konfiguracji: działającej dla samego Pi-hole, kruchej, gdy druga usługa zapragnie bibliotek natywnych. Ponowne wgranie czystego obrazu 64-bitowego jest zwykle szybsze niż odbudowa łańcucha narzędzi, który stworzył niezgodność.

Marketing płytki też tego nie rozstrzyga. Rozmiar pamięci i model CPU nie mówią nic o tym, z jaką libc linkują się twoje pakiety, więc decyduj na podstawie wydrukowanych wartości, nigdy na podstawie strony produktu.

Jedno pudełko, dwie usługi, jeden właściciel sieci

Zdecyduj, kto posiada adresację, resolver i tunel, zanim trafi tam pierwszy pakiet, bo inaczej dwie usługi będą rościć sobie prawo do tego samego obowiązku i żadna nie wygra czysto. Daj Pi statyczny adres poza pulą DHCP, którą rozdaje twój router, i trzymaj tunel we własnej podsieci: 192.168.50.10 dla Pi i 10.42.0.0/24 dla tunelu to jeden wykonalny podział, a same liczby są dowolne, dopóki nie kolidują z tym, co router już obsługuje. Potem zapisz, który komponent odpowiada na porcie 53, który rozdaje DHCP, jeśli go używasz, i który posiada trasę domyślną, gdy tunel jest podniesiony. Na obrazie bez ekranu to ostatnie zadanie należy do NetworkManager lub systemd-networkd, a instalacja klienta dostawcy, który przepisuje też konfigurację resolvera to droga, na której ludzie kończą z żywym tunelem i martwym DNS.

Dzielenie pudełka jest w porządku. Dzielenie roli nie. Pi-hole chce być jedynym słuchaczem na porcie 53, a demon VPN chce wypychać własne ustawienie DNS do klientów, więc wybierz, któremu z dwóch klienci mają ufać, i skonfiguruj drugi, by się nie wtrącał.

Trzymaj ścieżkę administracji poza tunelem, gdy możesz. Jeśli resolver i tunel zawiodą razem, nadal chcesz mieć SSH osiągalny pod adresem LAN, a to znaczy, że usługa zarządzania nie może zależeć od żadnego z nich.

Uczyń następną aktualizację częścią wyboru

Wydanie, którego nie możesz zaktualizować, to sufit wsparcia, który już zaakceptowałeś. Przetestuj mechanikę aktualizacji na zapasowej karcie, zanim urządzenie zacznie nosić DNS twojego domu, i przeczytaj, co projekty mówią o przeskakiwaniu między gałęziami, zamiast zakładać, że aktualizacja pakietu wystarczy.

sudo apt update
apt-mark showhold
sudo apt full-upgrade
pihole -up

Wstrzymane pakiety to zwykły powód, dla którego aktualizacja wygląda na udaną i nic nie zmienia. Zdejmij wstrzymania świadomie, jedno po drugim, i zanotuj, która usługa potrzebowała przypięcia.

Przed skokiem wyeksportuj konfigurację Pi-hole, dzierżawy statyczne i wszelkie profile tunelu oraz potwierdź, że możesz je odtworzyć na świeżym obrazie. Po skoku przetestuj zwykły DNS klientów, zasób prywatny za tunelem, ponowne połączenie i każdą regułę przekazywania na bramie. Pudełko, które się uruchamia i odpowiada na ping, nie przeszło prawie niczego.

Gdy żadne pojedyncze wydanie nie pasuje do obu usług

Czasem przecięcie jest puste: pomocnik VPN przeniósł się na nowsze wydanie niż pakiet Pi-hole, który możesz zainstalować, albo obraz producenta płytki zostaje w tyle za oboma. W takim przypadku rozdziel role, zamiast edytować metadane wydania, by zadowolić instalatora. Dwa małe urządzenia albo jedno urządzenie plus kontener dla drugiej usługi kosztują mniej niż urządzenie, którego historia wsparcia opiera się na kłamstwie.

Fałszowanie wersji to jedyny skrót, którego należy kategorycznie odmówić. Menedżery pakietów wierzą w to, co mówi plik wydania, więc sfałszowany identyfikator daje instalację, przy której debugowaniu nie pomoże żaden z dwóch projektów.

Jeśli dwa bieżące wydania spełniają wszystko, wybierz to, którego notatki aktualizacji możesz śledzić bez zgadywania, i przestań szukać. Potem zapisz wersję, architekturę, właścicieli usług i krok przywracania w jednym miejscu, bo następna osoba, która dotknie karty SD, będzie potrzebować wszystkich czterech.

Powiązane artykuły