Hoe The Social Dork een Pi-hole-adblocker bouwt met ZimaBoard 2

Eva Wong is de technisch schrijver en vaste knutselaar bij ZimaSpace. Als levenslange geek met een passie voor homelabs en open-sourcesoftwareis ze gespecialiseerd in het vertalen van complexe technische concepten naar toegankelijke, praktische handleidingen. Eva vindt dat self-hosting leuk moet zijn en niet intimiderend. Met haar tutorials helpt ze de community om hardware-installaties te doorgronden, van het bouwen van hun eerste NAS tot het beheersen van Docker-containers.

Met dank aan The Social Dork | Cyberbeveiliging voor het delen van een Pi-hole- en Tailscale-project dat DNS-verzoeken thuis en vanaf een telefoon buitenshuis filtert. ZimaBoard 2 voert de diensten uit, Pi-hole controleert de opgevraagde domeinen en Tailscale biedt een privéverbinding met de server. Bekijk de originele YouTube-uitleg voor de volledige demonstratie.

Bekijk de video voordat je verder leest: Deze video van acht minuten is handig als je wilt begrijpen welke rol netwerkbrede advertentiefiltering speelt voordat je de DNS-instellingen van je huishouden aanpast. De maker installeert Pi-hole in ZimaOS, test een Windows-client, voegt blokkeerlijsten toe en verbindt vervolgens een telefoon via Tailscale.

Het nuttige resultaat is een herbruikbare DNS-filterdienst. De maker laat minder zichtbare advertenties op een voorbeeldwebsite zien en queryactiviteit van de telefoon op afstand. Die waarnemingen laten zien dat het filterpad in die configuratie werkt; ze bewijzen niet dat elke advertentie, tracker of schadelijke verbinding wordt geblokkeerd.

Begrijp wat Pi-hole filtert voordat je de hardware kiest

De uitleg begint met een website die content van meerdere domeinen laadt. Pi-hole ontvangt de DNS-verzoeken van de client en controleert de opgevraagde namen aan de hand van het geconfigureerde beleid. Toegestane namen kunnen worden opgezocht via een upstream-resolver; geblokkeerde namen krijgen een blokkerend antwoord. Het belangrijkste controlepunt is de DNS-query, voordat de client content van dat domein probeert op te halen.

Die reikwijdte bepaalt ook de beperking. Een DNS-filter kan een advertentie niet onderscheiden van gewenste content wanneer beide dezelfde hostnaam gebruiken. Clients die een andere resolver gebruiken, kunnen het gekozen pad omzeilen. Zie de titel van de video, ‘alle advertenties blokkeren’, als de aanleiding voor het project en niet als een universeel resultaat. Browserfilters voor content en DNS-filtering werken op verschillende lagen en kunnen elkaar aanvullen.

Component Wat het in dit project doet Wat je nog moet controleren
Pi-hole Past domeinbeleid toe op DNS-verzoeken die het ontvangt. De resolver die elke client daadwerkelijk gebruikt.
Upstream-resolver Beantwoordt toegestane opzoekverzoeken die Pi-hole niet lokaal kan afhandelen. Bereikbaarheid en het doorstuurpad.
Tailscale Biedt privéverbindingen tussen aangemelde apparaten. Bereikbaarheid van de nameserver en de DNS-voorkeur van de client.
Browser of app Vraagt content op nadat de bestemming is opgezocht. Een onafhankelijke configuratie voor versleutelde DNS of een gecachet antwoord.

Volg eerst één opzoekverzoek door het systeem voordat je een heel netwerk aanpast. Een client vraagt een hostnaam op; Pi-hole past zijn beleid toe; een toegestaan verzoek kan de upstream-resolver bereiken; het antwoord wordt naar de client teruggestuurd. De daaropvolgende webverbinding is een afzonderlijke verkeersstroom. Dit verklaart waarom een teller voor geblokkeerde domeinen nuttig bewijs is van DNS-activiteit, maar niet elke verbinding meet die een applicatie maakt.

Geef de DNS-service een vaste plek op het thuisnetwerk

The Social Dork gebruikt ZimaBoard 2 en installeert Pi-hole via de ZimaOS-appwinkel die in de video wordt getoond. De maker noemt ook een bestaande laptop als alternatieve host. Het belangrijkste is dat de machine beschikbaar kan blijven zolang apparaten ervan afhankelijk zijn voor DNS; de demonstratie geeft geen reden om alleen voor filtering de grootste geheugenoptie te kopen.

Sluit de host aan, geef het DNS-eindpunt een stabiel adres of DHCP-reservering en controleer of de service bereikbaar is vanaf een testapparaat. Container- en poortinstellingen bepalen welk adres apparaten moeten gebruiken. Controleer of je installatie daadwerkelijk DNS-query's beantwoordt op dat eindpunt, in plaats van aan te nemen dat een bereikbare beheerpagina bewijst dat de DNS-service klaar is voor gebruik.

Ethernetkabels aansluiten op de ZimaBoard 2 die voor Pi-hole wordt gebruikt
De maker verbindt de ZimaBoard 2 met het thuisnetwerk voordat DNS wordt geconfigureerd. Een bereikbaar, stabiel serveradres is nodig voordat je apparaatinstellingen wijzigt. Videoframe rond 3:25, met dank aan The Social Dork.

Noteer de adressen voordat je een apparaat wijzigt

Adres of instelling Waarvoor gebruik je het Veelvoorkomende verwarring
LAN-eindpunt van Pi-hole DNS voor apparaten op het thuisnetwerk. Een intern Docker-adres is mogelijk niet bereikbaar vanaf de laptop.
Tailscale-adres van de server Privé-DNS-toegang vanaf aangemelde externe apparaten. De LAN- en Tailscale-adressen zijn verschillende eindpunten.
Upstream-DNS-bestemming Toegestane queries die door Pi-hole worden doorgestuurd. Als je deze terug laat verwijzen naar een resolver die doorstuurt naar Pi-hole, ontstaat er een lus.
Beheer-URL Beleid en queryactiviteit bekijken. Dat een webpagina wordt geladen, bewijst niet dat DNS-poort 53 bereikbaar is.

Controleer bij een installatie in een container of de DNS-service bereikbaar is via zowel TCP als UDP. Het officiële Docker-voorbeeld van Pi-hole stelt beide protocollen beschikbaar op poort 53 en bewaart de configuratiemap. Deze details zijn ook van belang wanneer een appwinkel de containerinstellingen verbergt achter een knop Installeren. Bekijk de daadwerkelijke appconfiguratie voordat je een hostservice wijzigt die mogelijk al dezelfde poort gebruikt.

In de video wordt de installatie getoond vanuit de ZimaOS-appwinkel van de maker. Je huidige appversie en netwerkmodus kunnen anders zijn. Noteer de instellingen die bepalen hoe de app verbinding maakt met het netwerk: het adres, de gepubliceerde poorten, de opslaglocatie, de upstream-resolver en het herstartgedrag. Met die korte notitie kun je een latere migratie of herinstallatie eenvoudiger controleren.

Test eerst één apparaat voordat je de DNS voor het hele huishouden wijzigt

In de demonstratie blijft een Windows-laptop verbonden met de wifi thuis terwijl de IPv4-DNS-instelling wordt gewijzigd in het Pi-hole-adres. Vervolgens controleert de maker de queryactiviteit. Dit is een overzichtelijke eerste test: als het browsen niet meer werkt, hoef je alleen die client terug te zetten en behoudt de rest van het huishouden de bestaande configuratie.

Windows-instellingen voor de netwerkadapter tijdens de configuratie van de Pi-hole-client
De configuratie van de Windows-netwerkadapter is het startpunt van de clientinstallatie van Pi-hole. Controleer welke resolver je eigen client daadwerkelijk heeft ontvangen of geselecteerd. Videofragment rond 4:10, met dank aan The Social Dork.

Voor een bredere dekking legt de installatiehandleiding van Pi-hole uit hoe DHCP het Pi-hole-DNS-adres aan clients kan doorgeven. Vernieuw de lease van de client of maak opnieuw verbinding en controleer welke resolver deze daadwerkelijk gebruikt. Controleer ook de DNS-instellingen voor IPv6 en de versleutelde DNS-instellingen van de browser en het besturingssysteem; één IPv4-veld wijzigen bewijst niet dat elke query die route volgt.

Een tweede, ongefilterde resolver kan het verwachte resultaat ook ondermijnen. Clients kunnen een andere geconfigureerde resolver gebruiken in plaats van die strikt als noodoplossing achter de hand te houden. Bepaal of continuïteit of consistente filtering voorrang heeft en test wat er gebeurt wanneer de Pi-hole-host niet beschikbaar is. Bewaar de oorspronkelijke instellingen, zodat je een DNS-experiment eenvoudig kunt terugdraaien.

Voer een herhaalbare lokale test uit

  1. Noteer de huidige DNS-configuratie van de laptop en het beoogde Pi-hole-eindpunt.
  2. Stuur expliciet een toegestane zoekopdracht naar Pi-hole en zoek de bijbehorende query vervolgens op in het logboek.
  3. Test een domein dat op je eigen actieve blokkeerlijst staat en controleer of het wordt geblokkeerd.
  4. Stel Pi-hole in als de gewone DNS-voorkeur van de client en herhaal de test zonder expliciet een resolver te kiezen.
  5. Bezoek een paar gewone diensten, waaronder een aanmeldproces, voordat je de wijziging via DHCP uitrolt.

Met nslookup example.com PIHOLE_LAN_IP test je bijvoorbeeld een opgegeven resolver; vervang PIHOLE_LAN_IP door het adres van je server. Met deze expliciete query controleer je het eindpunt zelf. Met een daaropvolgende nslookup example.com controleer je het gewone resolverpad van het systeem. Geen van beide tests bewijst op zichzelf dat een browser met eigen DNS-instellingen dezelfde route volgt, dus controleer ook een nieuwe aanvraag vanuit die toepassing.

Scheid bij het opsporen van een storing de bereikbaarheid van het adres van de naamomzetting. Een apparaat kan verbonden blijven met wifi en toch geen websites openen omdat het DNS-eindpunt offline is. Houd de oorspronkelijke clientinstellingen beschikbaar totdat de nieuwe resolver consistent werkt. Vernieuw na een DHCP-wijziging de lease of maak opnieuw verbinding en controleer welke instellingen de client daadwerkelijk heeft ontvangen.

Officieel Pi-hole-dashboard met queries, geblokkeerde queries en clientactiviteit
Officieel voorbeeld van het Pi-hole-dashboard: querytotalen en clientactiviteit helpen controleren welke apparaten het DNS-filter gebruiken. Bron: Pi-hole. Klik op de afbeelding om het origineel op ware grootte te bekijken.

Voeg blokkeerlijsten toe op een manier die je kunt troubleshooten

De maker importeert vervolgens extra blokkeerlijsten en laat zien hoe het totale aantal geblokkeerde domeinen stijgt. Dat getal geeft de omvang van de beleidsdatabase weer, niet de kwaliteit van de browse-ervaring. Een grotere lijst kan meer ongewenste domeinen bevatten, maar kan ook problemen veroorzaken met aanmeldprocessen, mediaspelers of andere functies die afhankelijk zijn van een gedeelde dienst.

Voeg telkens één onderhouden lijst toe, vernieuw de filterdatabase en test de diensten die je daadwerkelijk gebruikt opnieuw. Gebruik bij problemen het querylogboek om de getroffen naam te identificeren en test een nauwkeurig afgebakende vermelding op de allowlist. In de documentatie over de domeindatabase van Pi-hole wordt uitgelegd hoe vermeldingen op de allowlist en denylist samenwerken. Los een enkele mislukte aanmelding niet op door een niet-gerelateerde verzameling domeinen breed toe te staan.

Yahoo-pagina die in de Pi-hole-demonstratie van advertentiefiltering door de maker wordt gebruikt
De maker gebruikt een voorbeeldwebsite om het browse-resultaat na het inschakelen van filtering te vergelijken. Vergelijk de visuele test met de DNS-queries van de client; één pagina bewijst niet dat advertenties overal worden geblokkeerd. Videofragment rond 5:10, met dank aan The Social Dork.
Waarneming Wat het je vertelt Volgende nuttige controle
Er verschijnt een overeenkomende geblokkeerde query. De lookup bereikte Pi-hole en viel onder het beleid. Controleer of de zichtbare pagina dezelfde hostnaam gebruikte.
De pagina toont nog steeds een advertentie. Het visuele resultaat wijkt af van de gekozen DNS-test. Zoek naar een andere hostnaam, een gecachet antwoord of inhoud van dezelfde host.
Een aanmelding of mediaspeler werkt niet meer. Mogelijk is een afhankelijkheid geblokkeerd. Bekijk de recente queries van de client en test een beperkte uitzondering.
Er verschijnt geen nieuwe query. Er is nog geen nieuwe overeenkomende logvermelding. Controleer het resolverpad, de clientcache en de privacyinstellingen van de logboeken.

Leg de reden voor een nieuwe lijst of uitzondering vast wanneer je de wijziging doorvoert. Een verstandig beleid moet een week normaal gebruik doorstaan, niet alleen één geslaagde schermafbeelding. Als je het filter voor anderen beheert, geef ze dan een manier om een defecte dienst en het geschatte tijdstip van de storing te beschrijven. Dat is bruikbaarder dan een algemene melding dat ‘het internet eruit ligt’.

Gebruik Tailscale om ook buitenshuis dezelfde filter te bereiken

In de tweede helft voegt de maker Tailscale toe aan de server en een telefoon. Bij de DNS-instellingen van het tailnet voert The Social Dork het Tailscale-adres van de server in als nameserver, verbindt vervolgens de telefoon en controleert opnieuw de activiteit in Pi-hole. Het DNS-eindpunt blijft thuis, terwijl de gemachtigde telefoon het via het privénetwerk kan bereiken.

Tailscale DNS-instellingen met de sectie voor globale nameservers
De nameserverinstellingen van Tailscale verbinden aangemelde externe clients met de DNS-service thuis. Gebruik het bereikbare adres van je eigen Pi-hole-server en controleer de verbinding via mobiele data. Videofragment rond 6:40, met dank aan The Social Dork.

De officiële Pi-hole-integratiehandleiding van Tailscale bevat de actuele installatiegegevens. Controleer of Pi-hole query's accepteert die via de bedoelde privé-interface binnenkomen en of het toegangsbeleid van het tailnet DNS-verkeer toestaat. Als je wilt dat ondersteunde clients de geconfigureerde tailnet-nameserver bij voorkeur gebruiken, bekijk dan het overschrijfgedrag van Tailscale DNS en controleer de instelling op het apparaat zelf.

Als je thuis een DNS-resolver via Tailscale gebruikt, wordt niet automatisch al het webverkeer via de thuisverbinding verstuurd. Al het internetverkeer via een exitnode thuis laten lopen, is een afzonderlijke configuratie. Voor dit project is alleen een privérout naar de DNS-service nodig; het is niet nodig om een openbare DNS-resolver of de bijbehorende beheerpagina aan internet bloot te stellen.

Valideer het privé-DNS-traject in stappen

  1. Controleer of de server en telefoon zijn aangemeld bij het juiste tailnet en elkaar kunnen bereiken.
  2. Voeg het bereikbare Pi-hole-eindpunt toe als de bedoelde tailnet-nameserver.
  3. Controleer hoe de client Tailscale DNS gebruikt en bekijk de instelling voor het overschrijven van nameservers om het gewenste gedrag te bereiken.
  4. Controleer of de Pi-hole-listener en het toegangsbeleid DNS-verkeer via die privérout accepteren.
  5. Schakel de wifi thuis uit en herhaal op de telefoon een toegestane en een geblokkeerde lookup.

Een listener die is ingesteld om alleen een bepaald lokaal netwerk te accepteren, kan verklaren waarom apparaten thuis wel werken en een Tailscale-apparaat niet. In de naslaginformatie over DNS-listenerconfiguratie van Pi-hole staan de beschikbare modi. Kies een modus die compatibel is met je container en privénetwerk, en beperk inkomende toegang tot de bedoelde apparaten. Brede listenerinstellingen vereisen een even duidelijke firewallgrens.

Officiële Tailscale-animatie waarin een aangepaste globale nameserver en DNS-override worden ingesteld
Officiële Tailscale-animatie die een aangepaste nameserver en DNS-overrideconfiguratie toont. Gebruik het adres van je eigen Pi-hole-host. Bron: Tailscale-documentatie. Klik op de afbeelding om de oorspronkelijke grootte te bekijken.

Maak ook onderscheid tussen DNS-instellingen en internetverkeer naar buiten. Een nameserver kan zoekopdrachten filteren zonder een exitnode te worden. Als je daarnaast een exitnode inschakelt, controleer dan opnieuw het DNS-gedrag; Tailscale beschrijft deze wisselwerking in de naslaginformatie over DNS en nameservers. Een geslaagde test via de wifi thuis vervangt geen test met dezelfde telefoon via mobiele data.

Richt de eindtest op het verbindingstraject, niet alleen op een teller

Herhaal de test via een andere verbinding, bijvoorbeeld via mobiele data met wifi uitgeschakeld. Controleer of een nieuwe zoekopdracht vanaf de telefoon in Pi-hole verschijnt, of een toegestane site nog steeds opent en of de gekozen geblokkeerde naam een filterrespons krijgt. Een oplopend totaal kan ook verzoeken van andere apparaten bevatten; gebruik de betreffende client en tijdstempels om de waarneming aan je test te koppelen.

De volgende stap in de reeks van deze maker is een OPNsense-firewall met Pi-hole-DNS voor draadloze clients. Voor een uitgebreider voorbeeld van het organiseren van applicaties en externe toegang laat de modulaire homelab-opstelling van kabuto zien hoe deze services in een onderhouden fysieke installatie passen. Begin met één werkende client en breid het filterbeleid pas uit nadat de lokale en externe verbindingen zijn gecontroleerd. Ga terug naar de Pi-hole- en Tailscale-demonstratie van The Social Dork voor de oorspronkelijke volgorde.

Los de eerste mislukte laag op

Symptoom Controleer eerst Te verzamelen bewijs
Werkt lokaal, maar faalt via mobiele data. Tailnet-connectiviteit, listener en DNS-toegangsbeleid. Bereikbaarheid van de server en een nieuwe zoekopdracht vanaf de telefoon.
Zoekopdrachten worden gelogd, maar een site wil niet laden. Het beleidsresultaat en de upstream-resolutie. Een toegestane zoekopdracht, eventuele geblokkeerde afhankelijkheden en de respons.
Filtering verdwijnt na het vernieuwen van een lease. Door DHCP verstrekte resolvers en IPv6-instellingen. De vernieuwde gateway- en DNS-configuratie van de client.
Instellingen verdwijnen na een app-update. Persistente opslag en de daadwerkelijke vervangende container. De volumekoppeling en opgeslagen configuratie van de app.
Browsen mislukt wanneer de host opnieuw opstart. DNS-afhankelijkheid en het opstarten van de service. Of de resolver reageert en clients er zoekopdrachten naartoe kunnen sturen.

Beschouw de dienst als een voorziening waar het huishouden van afhankelijk is zodra andere apparaten deze gebruiken. Maak een back-up van de configuratie, bewaar een werkende set beleidsbronnen en test een update eerst met één client. Controleer na een herstart van de host opnieuw een toegestane en een geblokkeerde query. Dat het apppictogram weer op het dashboard staat, is slechts het begin van de controle.

De documentatie over containerconfiguratie van Pi-hole legt de opties voor gegevensbehoud en netwerken uit. Bewaar die operationele informatie samen met je eigen gekozen configuratie, in plaats van te vertrouwen op een schermafbeelding van het adres van iemand anders.

Veelgestelde vragen

Verwijdert Pi-hole alle YouTube-advertenties?

DNS-filtering kan gewenste video's en advertenties niet betrouwbaar van elkaar scheiden wanneer ze dezelfde hostnaam gebruiken. Zie dit project als domeinfiltering en controleer de specifieke apps die je gebruikt, in plaats van overal een reclamevrije ervaring te beloven.

Heeft elk apparaat in huis Tailscale nodig?

Apparaten thuis kunnen via hun DNS-instellingen een bereikbaar Pi-hole-eindpunt op het LAN gebruiken. In dit project biedt Tailscale de privéverbinding voor apparaten die dezelfde resolver nodig hebben wanneer ze niet thuis zijn.

Heb ik voor deze configuratie een Tailscale-exitnode nodig?

Niet alleen om de privé-DNS-dienst te bereiken. Een exit node wijzigt de route van het internetverkeer en is een afzonderlijke configuratie met eigen DNS-gedrag.

Waarom wordt de Pi-hole-pagina geopend terwijl DNS niet werkt?

De webinterface en de DNS-dienst gebruiken verschillende poorten en kunnen verschillende containertoewijzingen of toegangsregels hebben. Test rechtstreeks een DNS-query naar het beoogde adres en controleer het bijbehorende logboekitem.

Waarom kan een andere DNS-server het filter omzeilen?

Clients behandelen een tweede ingestelde nameserver niet noodzakelijkerwijs als een noodoplossing. Controleer alle aangeboden resolvers en het daadwerkelijke gedrag van de client als consistente filtering belangrijk is.

Wat moet ik opslaan voordat ik de app bijwerk?

Bewaar de werkende appconfiguratie, de locaties van permanente gegevens, de beleidsbronnen en de clientinstellingen die zijn gebruikt voor een geslaagde test. Herhaal die test na de update en controleer of de instellingen behouden zijn.

Conclusie

Het project van The Social Dork verbindt drie keuzes: waar DNS draait, welke clients het gebruiken en hoe een geautoriseerde telefoon er vanaf een ander netwerk toegang toe krijgt. Bij een goede implementatie zijn die keuzes inzichtelijk en testbaar. Het sterkste bewijs bestaat uit een overeenkomende clientzoekopdracht, de verwachte beleidsreactie en normaal browsen dat nog steeds werkt.

Begin met één client, schakel pas over op DHCP nadat de lokale test is geslaagd en controleer Tailscale via een echt afzonderlijke verbinding. Beheer het filter vervolgens als een dienst waarvan het huishouden afhankelijk is. Houd de oorspronkelijke Pi-hole- en Tailscale-video beschikbaar voor de reeks van de maker, samen met de actuele officiële documentatie voor de geïnstalleerde versies.

Zima-campagnehub

Meer om te lezen

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.