На една комбинирана кутия с Pi-hole и VPN се смесват две неща: семейството на дистрибуцията, което сте инсталирали, и изданието плюс архитектурата, които компонентите всъщност поддържат. Платка, която зарежда образ, доказва, че ядрото работи; тя не доказва, че FTL бинарният файл на Pi-hole и вашият VPN инсталатор са насочени към същото потребителско пространство. Истинското изпитание е четиристранно припокриване на поддръжка на платката, клон на изданието, архитектура на пакетите и път за надграждане, който можете да управлявате сами. Загубете която и да е от тези четири опори и устройството работи тази седмица, а после ви оставя на следващата актуализация за сигурност.

Клонът на изданието определя поддръжката, не името на семейството

Питайте срещу кое издание проектът още тества, после запишете отговора като низ за версия, а не като Debian. Страницата с предварителните изисквания на Pi-hole изброява поддържаните операционни системи и предварително изградените FTL архитектури като две отделни изисквания, ограничава поддръжката до издания, които самата дистрибуция още поддържа, и предупреждава, че варианти или необичайни конфигурации могат да се провалят дори в рамките на поддържания списък. Тази формулировка е важна: поддържаното семейство не покрива всеки негов член.

Стар образ, който още зарежда на вашия Pi, не е доказателство за поддръжка. Платката е наред, индексът на пакетите е остарял, а несъответствието се проявява по-късно, когато инсталаторът издърпа зависимост, която изданието вече не може да задоволи.

VPN страната има повече части, всяка със свой прозорец: демонът на тунела, помощникът за инсталиране, който пише конфигурацията му, клиентското приложение на доставчика и интеграционният пакет на дистрибуцията са четири отделни проекта. Инсталатор, който разпознава вашата дистрибуция, и инсталатор, който създава услуга, която изданието може да поддържа работеща, са различни твърдения. Проверете собствения списък с платформи на демона, после проверете дали помощникът, който смятате да стартирате, е пипан от излизането на това издание. Когато проект заявява поддръжка само до посочено издание, третирайте следващото като непроверено, докато сами не го заредите.

Съгласувайте целта на бинарния файл с потребителското пространство, което имате

Архитектурата е по-тихият провал. 64-битово ядро с 32-битово потребителско пространство е реална, поддържана комбинация на няколко платки и тя стартира 32-битов FTL бинарен файл без оплакване, чак до момента, в който инсталирате нещо, публикувано само за arm64. Отпечатайте двете половини, преди да изберете образ, и пазете изхода до бележките си.

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

Ако тези два реда за архитектура не съвпадат, вие сте на смесена настройка: работеща за Pi-hole сам, крехка, щом втора услуга поиска нативни библиотеки. Презаписването на чист 64-битов образ обикновено е по-бързо от преизграждането на веригата от инструменти, създала несъответствието.

Маркетингът на платката също не решава това. Размерът на паметта и моделът на процесора не казват нищо за това срещу коя libc се свързват вашите пакети, затова решавайте по отпечатаните стойности, никога по продуктовата страница.

Една кутия, две услуги, един собственик на мрежата

Решете кой притежава адресирането, резолвера и тунела, преди първият пакет да бъде инсталиран, защото иначе две услуги ще предявят претенции за едно и също задължение и нито една няма да спечели чисто. Дайте на Pi статичен адрес извън DHCP пула, който рутерът ви раздава, и дръжте тунела в отделна подмрежа: 192.168.50.10 за Pi и 10.42.0.0/24 за тунела е едно работещо разделение, а самите числа са произволни, стига да не се сблъскват с това, което рутерът ви вече обслужва. После запишете кой компонент отговаря на порт 53, кой раздава DHCP, ако го използвате, и кой притежава маршрута по подразбиране, докато тунелът е вдигнат. На образ без графична среда последното задължение принадлежи на NetworkManager или systemd-networkd и инсталирането на клиент на доставчик, който също пренаписва конфигурацията на резолвера е начинът, по който хората стигат до жив тунел и мъртъв DNS.

Споделянето на кутията е наред. Споделянето на роля не е. Pi-hole иска да е единственият слушател на порт 53, а демонът на VPN иска да изтласква собствената си DNS настройка към клиентите, затова изберете на кое от двете клиентите да вярват и настройте другото да не пречи.

Дръжте административния път извън тунела, където можете. Ако резолверът и тунелът се провалят заедно, все още искате SSH да е достъпен на LAN адреса, а това значи, че услугата за управление не бива да зависи от нито едно от двете.

Направете следващото надграждане част от избора

Издание, което не можете да надградите, е таван на поддръжката, който вече сте приели. Тествайте механиката на надграждане на резервна карта, преди устройството да носи DNS на домакинството ви, и прочетете какво казват проектите за прескачане между клонове, вместо да предполагате, че надграждането на пакет е достатъчно.

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

Задържаните пакети са обичайната причина едно надграждане да изглежда успешно и да не променя нищо. Освободете задържанията умишлено, едно по едно, и отбележете коя услуга се нуждаеше от фиксирането.

Преди скока експортирайте конфигурацията на Pi-hole, статичните наеми и всички профили на тунела и потвърдете, че можете да ги възстановите върху чист образ. След скока тествайте обикновения DNS на клиентите, частния ресурс зад тунела, повторното свързване и всяко правило за препращане на шлюза. Кутия, която зарежда и отговаря на ping, не е преминала почти нищо.

Когато нито едно издание не пасва на двете услуги

Понякога припокриването е празно: VPN помощникът е преминал към по-ново издание от пакета Pi-hole, който можете да инсталирате, или образът на производителя на платката изостава от двете. В такъв случай разделете ролите, вместо да редактирате метаданни на изданието, за да задоволите инсталатор. Две малки устройства, или едно устройство плюс контейнер за втората услуга, струват по-малко от устройство, чиято история за поддръжка зависи от лъжа.

Фалшифицирането на версията е единственият пряк път, от който трябва да се откажете напълно. Мениджърите на пакети вярват на това, което пише файлът на изданието, затова подправеният идентификатор ви дава инсталация, при чието отстраняване на проблеми нито един от двата проекта няма да помогне.

Ако две актуални издания задоволяват всичко, изберете това, чиито бележки за надграждане можете да следвате без догадки, и спрете да търсите. После запишете версията, архитектурата, собствениците на услугите и стъпката за възстановяване на едно място, защото следващият човек, който пипне SD картата, ще се нуждае от всичките четири.

Подобни статии