Zum Inhalt
Bytearium

Keine Werbung und keine Partnerlinks aktiv

Netzwerke

Pi-hole oder AdGuard Home: DNS-Werbeblocker

Ein DNS-Werbeblocker beantwortet Anfragen für bekannte Werbe- und Tracking-Domains nicht; Pi-hole und AdGuard Home leisten das, mit anderen Stärken.

Dein Smart-TV telefoniert mehr als du, und keiner der Anrufe geht an dich. Ein DNS-Blocker filtert diese Anrufe fürs ganze Haus, mit einer kleinen Kiste statt einer App pro Gerät.

Kurz gesagt

Pi-hole und AdGuard Home erledigen im Kern dieselbe Aufgabe. Sie beantworten die DNS-Fragen deiner Geräte und liefern für Namen auf einer Sperrliste eine Sackgassen-Antwort [8][11]. Beide sind kostenlos und laufen auf einem kleinen Linux-Rechner oder in Docker. Unsere Einschätzung: Nimm Pi-hole, wenn du Listen und Geräte gern in Gruppen ordnest. Nimm AdGuard Home, wenn du verschlüsseltes DNS in beide Richtungen und Kindersicherungsfunktionen ohne Zusatzsoftware willst. Eine Werbung, die von derselben Domain wie der Inhalt kommt, blockt keiner von beiden, etwa die Werbung in YouTube-Videos [13].

So funktioniert’s

  1. Was ein DNS-Blocker tut. Bevor ein Gerät eine Verbindung zu einem Namen wie ads.example aufbaut, fragt es einen Resolver nach der Adresse (die Kette erklärt unser Artikel zur DNS-Namensauflösung). Ein Blocker ist ein Resolver mit Sperrliste. Für einen gelisteten Namen antwortet er mit nichts Brauchbarem statt mit der echten Adresse. Pi-hole nutzt standardmäßig die „unspezifizierte Adresse“ 0.0.0.0 und ::, sodass Clients gar nicht erst versuchen, sich zu verbinden [8]. Weil das pro Name geschieht, deckt es jede App und jedes Gerät ab, das den Blocker nutzt, auch Smart-TVs und Konsolen, ohne dass du dort etwas installierst [11].
  2. Was er nicht kann. Die FAQ von AdGuard ist deutlich: Jede Werbung, die sich mit dem Inhalt eine Domain teilt, lässt sich auf DNS-Ebene nicht blocken, es sei denn, du blockst den Inhalt gleich mit. Genannt werden Werbung bei YouTube und Twitch sowie gesponserte Beiträge bei Facebook, X und Instagram, dazu der Satz, DNS allein werde dafür nie reichen [13]. Auch ein Banner mitten in einer Seite bleibt für DNS unsichtbar, denn DNS sieht immer nur Namen. Betrachte einen DNS-Blocker als groben ersten Filter. Eine Browser-Erweiterung fängt weiterhin Dinge ab, die er nicht sieht.
  3. Die beiden Werkzeuge im Oktober 2026. Pi-hole v6 hat Webserver und API eingebaut in der Datei pihole-FTL, lighttpd und PHP entfallen, dazu kommen natives HTTPS und eine einzige Datei pihole.toml [5]. Das neueste Docker-Release 2026.10.0 vom 17. Okt. 2026 enthält Core 6.5, FTL 6.8 und Web 6.6.1 [6]. Die Doku verlangt 512 MB RAM und 2 GB freien Speicher (empfohlen 4 GB), nennt Alpine, Armbian, Debian, CentOS Stream, Fedora, Raspberry Pi OS und Ubuntu als unterstützt und will eine feste Adresse, wobei eine DHCP-Reservierung genügt [1]. Bei AdGuard Home ist v0.107.79 vom 18. Aug. 2026 das stabile Release. Ein Beta-Kanal (v1.0.0-b.1 vom 30. Sep. 2026) ist auf eine neue Oberfläche und ein neues Versionsschema umgestiegen, deshalb bleiben wir hier bei stabil [17]. Die Programme gibt es für Linux, macOS, Windows und BSD [17]. Vorsicht bei den Vergleichstabellen der Hersteller: Die README von AdGuard (abgerufen am 24. Okt. 2026) behauptet noch, Pi-hole brauche für HTTPS manuelle Arbeit an lighttpd [11]. Das stammt aus der Zeit vor dem eingebauten HTTPS von Pi-hole v6 [5].
  4. Listen und Regeln. Pi-hole abonniert Sperrlisten und seit v6 auch Freigabelisten (unter dem Namen Antigravity) [5]. Domains, Regex-Filter und Listen lassen sich in Gruppen sortieren [9]. AdGuard Home versteht drei Schreibweisen: Adblock-Stil, Hosts-Datei und reine Domainlisten. Im Adblock-Stil sperrt ||example.org^ eine Domain samt Subdomains, @@||example.org^ gibt sie wieder frei und /REGEX/ prüft per regulärem Ausdruck. Listen im Adblock-Stil funktionieren auch in Browser-Blockern [15]. Dazu prüft AdGuard die Antworten auf CNAME-Tarnung, bei der ein harmlos wirkender Name heimlich auf einen gesperrten Tracker zeigt [13]. Egal womit du arbeitest: Abonniere wenige Listen, keine vierzig. Jede zusätzliche Liste bringt Namen mit, die etwas Nötiges kaputt machen können (unsere Einschätzung).
  5. Regeln pro Gerät. Pi-hole löst das über Gruppen, die du Clients zuweist [9]. AdGuard Home hat Einstellungen pro Client [11]. Beide können Geräte nur unterscheiden, wenn die Anfragen von den Geräten selbst kommen. Hinter einem Router, der alles weiterreicht, können alle Anfragen wie ein einziger Client aussehen (unsere Einschätzung, prüfe das Abfrageprotokoll).
  6. Verschlüsseltes DNS. Klassisches DNS läuft unverschlüsselt (siehe unseren DNS-Artikel). AdGuard Home unterstützt verschlüsselte Upstreams und kann DNS-over-HTTPS und DNS-over-TLS für deine Clients anbieten [11]. Bei Pi-hole braucht das laut AdGuards Tabelle Zusatzsoftware [11]. Ein am 17. Juli 2026 zusammengeführter Pull Request bringt native DoT- und DoH-Upstreams in Pi-holes FTL [10]. In den Release-Notes von FTL v6.8 vom 17. Okt. 2026 steht er nicht [18], deshalb behandeln wir ihn als noch nicht in einem stabilen Release. Lies die Release-Notes, bevor du dich darauf verlässt.
  7. Installation und Ports. Pi-holes Ein-Schritt-Installer ist curl -sSL https://install.pi-hole.net | bash. Die Doku zeigt auch, wie du das Skript vorher liest oder Docker nimmst [2]. Pi-hole antwortet auf Port 53 (TCP und UDP), bedient seine Oberfläche auf 80 und 443 und nutzt 67 für den optionalen DHCP-Server [1]. AdGuard Home braucht 3000/TCP für den Einrichtungsassistenten, 80/TCP für die Oberfläche und 53 für DNS [12]. Als Dienst installierst du es mit sudo ./AdGuardHome -s install [12]. Hält schon etwas anderes Port 53, startet nichts. Meist ist es systemd-resolved unter Ubuntu, und die FAQ von AdGuard nennt die Lösung [13].
  8. Geräte darauf zeigen lassen. Drei Wege, der beste zuerst. Trage die Adresse des Blockers in den DHCP-Einstellungen deines Routers als DNS-Server ein. Oder nimm den DHCP-Server des Blockers, nachdem du DHCP am Router abgeschaltet hast. Oder stelle es als letzten Ausweg Gerät für Gerät ein [3]. AdGuard beschreibt ebenfalls den Weg über den Router [12]. Unsere Einschätzung: Ein zweiter DNS-Server ohne Filter wird von manchen Clients benutzt und hebelt den Filter aus. Wenn du einen Ersatz einträgst, nimm eine zweite Filterinstanz.
  9. Im Haus lassen. Pi-holes Firewall-Beispiele lassen nur deine lokalen Adressbereiche durch, weil es für den Betrieb im lokalen Netz gebaut ist [1]. Die Härtungsseite von AdGuard rät, den DNS-Server an ein Loopback- oder LAN-Interface zu binden und Zugriffseinstellungen sowie eine Ratenbegrenzung (Standard 20) zu nutzen, falls ein Server von außen erreichbar sein muss [16]. Updates zählen. Das Pi-hole-Release 2026.10.0 nennt Korrekturen zu 17 Sicherheitshinweisen in FTL, Web und Core [6]. AdGuard Home v0.107.79 schloss eine Lücke zur Ressourcenerschöpfung bei DNS-over-QUIC [17]. Pinne eine Version und wechsle bewusst auf das nächste Tag, nachdem du dessen Notizen gelesen hast.
  10. Was gegen beide spricht. Ein Blocker ist ein Single Point of Failure. Fällt er aus, scheitert jede Namensabfrage und das Netz wirkt tot. Pi-holes Doku warnt davor für den Host, der sich selbst als Resolver nutzt [3]. Fehlalarme kommen vor, und der, der eine Anmeldung oder die Kasse eines Shops kaputt macht, fällt zu Hause als Erster auf (unsere Einschätzung). Geräte mit festem Resolver oder Browser mit eigenem verschlüsseltem DNS umgehen deinen Blocker komplett. Das Abfrageprotokoll ist ein Tagebuch deines Haushalts, also entscheide, wie lange es Einträge behalten soll. Viele kleine Seiten leben von Werbung, deshalb schalte die frei, die du unterstützen willst. Wenn du nur einen ruhigen Browser willst, ist eine Erweiterung weniger Arbeit als ein Server.

Im Vergleich

Pi-holeAdGuard Home
Geprüfter Stand, 24. Okt. 2026Docker 2026.10.0: Core 6.5, FTL 6.8, Web 6.6.1 [6]stabil v0.107.79, Beta v1.0.0-b.1 [17]
Läuft aufaufgelisteten Linux-Systemen oder Docker [1]Linux, macOS, Windows, BSD oder Docker [17]
LizenzEUPL 1.2, genannt in der Beitragsvorlage [10]GPL-3.0 [11]
RegelsyntaxListen, Regex, Gruppen [9]Adblock-Stil, Hosts, Domains, Regex [15]
Regeln pro GerätGruppen [9]Einstellungen pro Client [11]
Verschlüsselter UpstreamZusatzsoftware; nativ zusammengeführt, aber nicht in einem stabilen Release [10][11][18]eingebaut [11]
Bietet DoH oder DoT anZusatzsoftware [11]eingebaut [11]
Kindersicherung, Safe Searchüber zusätzliche Sperrlisten [11]eingebaut [11]
Optionaler DHCP-Serverja [1]ja [11]

Ein Homelab-Beispiel

Bytearium hat keinen DNS-Werbeblocker erfasst. Stand 14. bis 18.10.2026 führt unser Inventar einen internen DNS-Server als geplant und nicht laufend, und über einen Filter sagen wir nichts. Was folgt, ist ein allgemeiner Ablauf für deinen eigenen Linux-Rechner und kein Bericht über unseren. Beide Werkzeuge siehst du mit einem festen Image-Tag, den es Stand 24. Okt. 2026 auf Docker Hub gibt [7][14]. Nimm eines von beiden, denn sie würden sich um Port 53 streiten.

Pi-hole, Tag 2026.10.0. Die Compose-Datei folgt der Pi-hole-Doku [4], die Web-Ports liegen auf 8080 und 8443. Das Passwort gehört in eine .env-Datei als PIHOLE_PASSWORD=..., nicht in die Compose-Datei:

services:
  pihole:
    container_name: pihole
    image: pihole/pihole:2026.10.0
    ports:
      - "53:53/tcp"
      - "53:53/udp"
      - "8080:80/tcp"
      - "8443:443/tcp"
    environment:
      TZ: "Europe/Berlin"
      FTLCONF_webserver_api_password: "${PIHOLE_PASSWORD}"
      FTLCONF_dns_listeningMode: "ALL"
    volumes:
      - "./etc-pihole:/etc/pihole"
    restart: unless-stopped

Laut Doku braucht Dockers Standard-Bridge-Netz listeningMode: ALL [4]. Das heißt auch, dass der Container Anfragen auf jedem Interface annimmt, das er sieht. Gib Port 53 also nie ins Internet frei. Gestartet wird mit docker compose up -d.

AdGuard Home, Tag v0.107.79. Volumes und Ports folgen der Docker-Anleitung des Projekts [12][14]. Port 3000 brauchst du nur für den Einrichtungsassistenten:

services:
  adguardhome:
    container_name: adguardhome
    image: adguard/adguardhome:v0.107.79
    ports:
      - "53:53/tcp"
      - "53:53/udp"
      - "3000:3000/tcp"
      - "8081:80/tcp"
    volumes:
      - "./work:/opt/adguardhome/work"
      - "./conf:/opt/adguardhome/conf"
    restart: unless-stopped

Öffne http://<Server-IP>:3000, geh durch den Assistenten und streiche danach die Zeile mit 3000. Docker-Installationen aktualisieren sich laut AdGuard nicht selbst, du änderst den Tag also von Hand [12].

Meldet Docker unter Ubuntu address already in use für Port 53, hält systemd-resolved ihn fest. Die Lösung aus der FAQ von AdGuard ist eine Datei /etc/systemd/resolved.conf.d/adguardhome.conf mit diesen Zeilen [13]:

[Resolve]
DNS=127.0.0.1
DNSStubListener=no

Danach lässt du /etc/resolv.conf auf die Datei zeigen, die systemd-resolved ohne den Stub pflegt, und startest den Dienst neu. Ohne diesen Schritt kann der Rechner selbst keine Namen mehr auflösen [13]:

sudo mv /etc/resolv.conf /etc/resolv.conf.backup
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
sudo systemctl reload-or-restart systemd-resolved

Teste, bevor du den Router anfasst. Auf einem Laptop gibt nslookup example.org <Server-IP> eine normale Antwort. Frag dann einen Namen von deiner Sperrliste ab. Bei Pi-holes Standardmodus lautet die Antwort 0.0.0.0 [8]. Stelle zuletzt bei einem Gerät den DNS-Server um, führe nslookup example.org aus und prüfe, ob die Zeile „Server“ den Blocker zeigt und die Anfrage im Abfrageprotokoll auftaucht [13]. Erst dann änderst du die DHCP-DNS-Einstellung des Routers.

Prüfliste

  • Prüfe, was du blocken willst. Lautet die Antwort „Werbung in YouTube“, ist ein DNS-Blocker das falsche Werkzeug.
  • Entscheide anhand der Tabelle: Gruppen und schlanker Betrieb, oder verschlüsseltes DNS und Kindersicherung eingebaut.
  • Gib dem Server eine feste Adresse oder eine DHCP-Reservierung, bevor du irgendetwas darauf zeigen lässt.
  • Pinne den Image-Tag, notiere das Datum und lies die Release-Notes, bevor du ihn änderst.
  • Teste mit nslookup gegen die Adresse des Servers, bevor du den Router umstellst.
  • Halte Port 53 und die Admin-Oberfläche aus dem Internet heraus.
  • Abonniere wenige Listen und schau zuerst ins Abfrageprotokoll, wenn etwas nicht mehr geht.
  • Plane den Ausfall des Blockers ein: Wisse, wie du den DNS des Routers in einem Schritt zurückstellst.
  • Prüfe, wie lange das Abfrageprotokoll Einträge behält, und lösche, was du nicht brauchst.

Primärquellen

Diese Quellen sind die Grundlage der Seite. Das heißt nicht, dass jede Aussage einzeln nachgeprüft wurde; ob ein Prüfbeleg vorliegt, steht oben unter „Stand“. Einordnung und Prüfliste sind unsere eigene Arbeit.

Für diese Fassung liegt noch kein dokumentierter Prüfbeleg vor. Der Text stützt sich auf die genannten Quellen.

Entstehung: Bytearium erstellt diese Seiten mit Unterstützung von KI und verantwortet die Veröffentlichung. KI kann sich irren, deshalb nennen wir Quellen und Prüfstand offen.

  1. Pi-hole documentationPrerequisites
  2. Pi-hole documentationInstallation
  3. Pi-hole documentationPost-Install
  4. Pi-hole documentationDocker
  5. Pi-hole projectIntroducing Pi-hole v6
  6. Pi-hole projectdocker-pi-hole releases
  7. Docker Hubpihole/pihole tags
  8. Pi-hole documentationBlocking mode
  9. Pi-hole documentationGroup Management
  10. Pi-hole projectFTL pull request 2940, native DoT/DoH for encrypted upstreams
  11. AdGuardAdGuard Home README
  12. AdGuardGetting started
  13. AdGuardFAQ
  14. Docker Hubadguard/adguardhome tags
  15. AdGuardDNS filtering rules syntax
  16. AdGuardSetting up AdGuard Home securely
  17. AdGuardAdGuard Home releases
  18. Pi-hole projectFTL releases

Auf dieser Seite gibt es keine Werbung und keine Partnerlinks.