AdGuard Home: DNS-Server zum Blockieren von Werbung und Trackern im gesamten Netzwerk
(github.com/AdguardTeam)- AdGuard Home ist ein kostenloser Open-Source-DNS-Server, der nach der Installation für alle Geräte im Heimnetzwerk gilt und Werbung sowie Tracker ohne clientseitige Software blockiert
- Es funktioniert, indem Tracking-Domains per DNS sinkholing in ein „black hole“ umgeleitet werden, sodass Geräte keine Verbindung zu diesen Servern herstellen können; es teilt viel Code mit dem öffentlichen AdGuard DNS-Server
- Beim Betrieb auf dem eigenen Server kann man im Vergleich zu öffentlichem DNS selbst auswählen, was blockiert oder erlaubt wird, die Netzwerkaktivität überwachen und benutzerdefinierte Filterregeln hinzufügen
- Ähnlich wie Pi-Hole unterstützt es das Blockieren von Werbung und Trackern sowie die Anpassung von Blocklisten, aber AdGuard Home bietet standardmäßig auch verschlüsselte DNS-Upstreams, den Betrieb als DoH-/DoT-Server, das Blockieren von Phishing- und Malware-Domains, Kinderschutz und erzwungenes Safe Search
- Blockierung auf DNS-Ebene kann keine Werbung blockieren, die dieselbe Domain wie der Inhalt verwendet, etwa YouTube- oder Twitch-Werbung oder gesponserte Beiträge auf Facebook, Twitter und Instagram; auch die geplante Unterstützung eines Content-Blocking-Proxys wird nicht alle Fälle lösen
Rolle und Funktionsweise von AdGuard Home
- AdGuard Home ist ein DNS-Server zum netzwerkweiten Blockieren von Werbung und Trackern, der sich als Zentrum für den Schutz der Privatsphäre von Nutzern und Geräten versteht
- Nach der Installation deckt es alle Geräte im Heimnetzwerk ab, ohne dass auf jedem Gerät separate Client-Software installiert werden muss
- Es arbeitet als DNS-Server und leitet Tracking-Domains in ein „black hole“ um, sodass Geräte keine Verbindung zu diesen Servern herstellen können
- Es basiert auf der Software des öffentlichen Servers AdGuard DNS, und beide Produkte teilen viel Code
Installation und Integration
- Unter Linux, Unix, macOS, FreeBSD und OpenBSD kann das automatische Installationsskript mit
curl,wgetoderfetchausgeführt werden-c <channel>: angegebenen Kanal verwenden-r: AdGuard Home neu installieren-u: AdGuard Home entfernen-v: ausführliche Ausgabe-rund-ukönnen nicht gleichzeitig verwendet werden
- Manuelle Installation und Gerätekonfiguration sind in der Dokumentation Getting Started beschrieben
- Das offizielle Docker-Image wird auf Docker Hub bereitgestellt
- Linux-Nutzer können es über den Snap Store installieren
- Für Integrationen kann die REST API genutzt werden; außerdem gibt es einen Python client
- Dieser Python-Client wird für das AdGuard Home Hass.io Add-on verwendet
Unterschiede zum öffentlichen AdGuard DNS
- Wer einen eigenen AdGuard Home-Server betreibt, hat mehr Kontrolle als bei der Nutzung öffentlicher DNS-Server
- Nutzer können selbst festlegen, was der Server blockieren oder erlauben soll
- Netzwerkaktivitäten können überwacht werden
- Benutzerdefinierte Filterregeln können hinzugefügt werden
- Da der Server dem Nutzer selbst gehört, liegt die Kontrolle beim Nutzer
Vergleich mit Pi-Hole und klassischen Werbeblockern
- Sowohl AdGuard Home als auch Pi-Hole blockieren Werbung und Tracker per DNS sinkholing und erlauben die Anpassung dessen, was blockiert wird
- AdGuard Home zielt darauf ab, viele Funktionen standardmäßig bereitzustellen, ohne zusätzliche Softwareinstallation oder manuelle Konfiguration
- Laut Vergleichstabelle in der README bietet AdGuard Home folgende Funktionen
- Blockieren von Werbung und Trackern
- Anpassung von Blocklisten
- integrierter DHCP-Server
- HTTPS für die Admin-Oberfläche
- verschlüsselte DNS-Upstreams via DNS-over-HTTPS, DNS-over-TLS und DNSCrypt
- plattformübergreifender Betrieb
- Betrieb als DNS-over-HTTPS- oder DNS-over-TLS-Server
- Blockieren von Phishing- und Malware-Domains
- Kinderschutz zum Blockieren von Domains für Erwachsene
- erzwungenes Safe Search für Suchmaschinen
- gerätespezifische Einstellungen
- Zugriffssteuerung zur Auswahl von AGH-DNS-Nutzern
- Betrieb ohne root-Rechte
- Im Vergleich zu klassischen Werbeblockern kann DNS sinkholing einen großen Teil der Werbung blockieren, erreicht aber nicht deren Flexibilität und Leistungsfähigkeit
- DNS-basierte Blocker können hilfreich sein, um Werbe-, Tracking- und Analyseanfragen auf Smart-TVs, Smart Speakern und IoT-Geräten zu blockieren, auf denen sich klassische Werbeblocker nicht installieren lassen
Bekannte Einschränkungen und zukünftige Richtung
- Blocker auf DNS-Ebene können die folgenden Beispiele nicht blockieren
- YouTube- und Twitch-Werbung
- gesponserte Beiträge auf Facebook, Twitter und Instagram
- Werbung, die sich dieselbe Domain mit Inhalten teilt, kann auf DNS-Ebene nicht blockiert werden
- Dieses Problem lässt sich nicht allein mit DNS lösen; dafür wäre ein Content-Blocking-Proxy wie in eigenständigen AdGuard-Anwendungen nötig
- AdGuard Home soll künftig Unterstützung für Content-Blocking-Proxy-Funktionen erhalten
- Auch dann kann es Fälle geben, in denen das nicht ausreicht oder eine komplexe Konfiguration erforderlich bleibt
Source-Build und Entwicklung
- Zur Vorbereitung der Entwicklungsumgebung wird
make initausgeführt - Für den Build werden folgende Komponenten benötigt
- Für einen Standard-Build wird das Repository geklont und anschließend
makeausgeführt - Das nicht standardmäßige Flag
-jwird derzeit nicht unterstützt;make -j 4oder eine Konfiguration mit-j 4inMAKEFLAGSkann den Build beschädigen- Falls nötig, kann dies mit
make -j 1überschrieben werden
- Falls nötig, kann dies mit
- Cross-Builds für von Go unterstützte OS/ARCH-Ziele sind möglich; dazu werden
GOOSundGOARCHbeim Ausführen vonmakeangegeben - Für die Vorbereitung eines Release-Builds wird
snapcraftbenötigt; verwendet wirdmake build-release CHANNEL='...' VERSION='...' - Ein lokales Docker-Image wird mit
make build-dockergebaut, das offizielle Image mit Docker Buildx - Beim Frontend-Debugging wird im Verzeichnis
clientein Development-Build im Watch-Modus ausgeführt, und der BinaryAdGuardHomewird das Flag--local-frontendübergeben, damit statt der eingebetteten Frontend-Dateien die Dateien aus dem Verzeichnis./build/verwendet werden - Für E2E-Frontend-Tests wird Playwright verwendet; die Tests liegen in
tests/e2enpm run test:e2e: alle Tests headless ausführennpm run test:e2e:interactive: interaktive Testsnpm run test:e2e:debug: Debug-Modusnpm run test:e2e:codegen: neuen Testcode erzeugen- Playwright lädt und installiert eigene Browser-Binaries, die sich von den im System installierten Browsern unterscheiden können
Beiträge, instabile Kanäle und externe Projekte
- Mitwirkende können das Repository forken, Änderungen vornehmen und anschließend einen Pull Request senden; dabei sollen die code guidelines befolgt werden
- Es ist nicht nötig, gleichzeitig zum UI und zum Backend beizutragen; idealerweise kommt zuerst eine Backend-Implementierung mit Einstellungen, API und Funktionalität, und das UI kann später in einem anderen Pull Request umgesetzt werden
- Es gibt zwei Kanäle für instabile Versionen
beta: relativ stabile Beta-Version, die üblicherweise alle zwei Wochen oder häufiger veröffentlicht wirdedge: neueste Version aus dem Entwicklungs-Branch, in den täglich neue Updates gepusht werden
- Instabile Versionen können über die
beta- undedge-Kanäle im Snap Store, über diebeta- undedge-Tags auf Docker Hub, über das automatische Installationsskript oder als Standalone-Build aus dem Wiki installiert werden - Es gibt verwandte Projekte von Drittentwicklern und Fans, die nicht mit AdGuard verbunden sind
- AdGuard Home Remote: iOS-App
- Python library
- Home Assistant add-on
- OpenWrt LUCI app
- AdGuardHome sync
- AdGuardian-Term: terminalbasiertes Echtzeit-Traffic-Monitoring und Statistiken
- Chocolatey package
Privatsphäre und verwendete Technologien
- Die zentrale Idee von AdGuard Home ist, dass Nutzer die Kontrolle über ihre eigenen Daten haben sollten
- AdGuard Home sammelt keine Nutzungsstatistiken und verwendet keine Webdienste, sofern der Nutzer dies nicht konfiguriert
- Die vollständige privacy policy enthält theoretisch alle Punkte, die AdGuard Home senden könnte
- Die wichtigsten technischen Grundlagen sind das Go- und Node.js-Ökosystem
- Als Go-Bibliotheken werden
gcache,miekg's dns,go-yaml,service,dnsproxyundurlfilterverwendet - Auf der Node.js-Seite werden React.js, Tabler und verschiedene Node.js-Pakete verwendet
- Außerdem werden Daten von
whotracks.megenutzt
- Als Go-Bibliotheken werden
- AdGuard Home verwendet das zuvor erwähnte CoreDNS nicht mehr
1 Kommentare
Hacker-News-Kommentare
Ich habe einige Jahre lang im Heimnetzwerk das Konkurrenzprojekt Pi-hole[0] betrieben und bin dann auf NextDNS[1] gestoßen.
In puncto Performance habe ich zwar den Vorteil verloren, dass Anfragen das Haus nicht verlassen, aber die Portabilität, dass alle Geräte sowohl zu Hause als auch unterwegs nutzbar sind, und die gesparte Zeit wogen schwerer.
Pi-hole funktionierte zu 90 % gut, aber wenn es ausfiel, kostete die Reparatur Zeit; für 20 $ pro Jahr war es schwer, mit NextDNS per Eigenbetrieb zu konkurrieren.
Das soll keine Werbung für NextDNS sein, und ich finde, solche Projekte müssen unbedingt existieren, aber NextDNS ist ein wirklich einfaches SaaS-Tool mit sehr gutem Preis-Leistungs-Verhältnis.
0 - https://pi-hole.net/
1 - https://nextdns.io
99,9 % der SD-Karten-Korruptionen werden durch zu schwache Netzteile verursacht; wenn du keine Lust hast, ein passendes 2,5–3-A-USB-Netzteil zu suchen, kauf einfach das offizielle Raspberry-Pi-Netzteil.
Für 20 $ im Jahr kannst du dir jedes Jahr einen RPi Zero 2W und eine SD-Karte als Reserve kaufen und hast noch Geld für ein Sheetz-Sandwich zum Feiern übrig.
Die Kombination aus Pi-hole + WireGuard + einmaligem Kauf eines 15-Dollar-RPi-Zero ist meiner Meinung nach schwer zu schlagen.
Meine Instanz lief jahrelang ohne ein einziges Problem, und vor etwa einem Jahr bin ich auf AdGuard Home umgestiegen, weil ich es auf einer OPNSense-Box betreiben wollte.
Auf den Geräten habe ich ein automatisches WireGuard-VPN eingerichtet, sodass sie sich per VPN mit meinem Heimnetz verbinden, wenn sie nicht mit meiner SSID verbunden sind; dadurch funktioniert lokales DNS auch remote.
Man muss daran denken, es auszuschalten, wenn man sich etwa mit Flugzeug-WLAN verbindet; deshalb würde ich es nichttechnischen Freunden nur schwer empfehlen.
Inzwischen scheint es etwa drei Kandidaten zu geben.
Wenn man 20 $ pro Jahr nur für DNS-Verschlüsselung und Blocking zahlt, lohnt es sich vielleicht, auch ein Upgrade auf Mullvad zu erwägen, das nicht nur DNS-Adblocking, sondern auch IP-Anonymität und Tunneling bietet.
Ich habe mir kürzlich Pi-hole angesehen und mich dann für AdGuard Home entschieden.
Auf den ersten Blick war die UI besser und es wirkte insgesamt runder; für ein so geschliffenes Tool bietet es überraschend viel Customizing, etwa das Weiterleiten lokaler privater Domain-Abfragen an internes DNS.
Ich bin mir nicht sicher, warum AdGuard das kostenlos anbietet, und sollte dem vielleicht nachgehen, aber aktuell erschien es mir als vergleichsweise risikoarme Wahl.
Man kann gar nicht genug betonen, wie viel angenehmer die Nutzung von Dingen wie der NYTimes-App wird, wenn die nervigen Anzeigen verschwinden.
Die Funktion für Split-DNS enthält alle Optionen, die man sich vorstellen kann.
Ich dachte, ich bräuchte dahinter einen zweiten DNS-Server, konnte aber alle benötigten Regeln direkt in AdGuard Home hinterlegen.
DoT- und DoH-Upstreams werden ebenfalls unterstützt, was bei vielen Heimroutern immer noch nicht üblich ist.
Doku: https://github.com/AdguardTeam/AdGuardHome/wiki/Configuratio...
Vielleicht setzen sie ihren eigenen DNS-Server als Standard-Upstream und hoffen, dass viele Leute bei den Defaults bleiben.
DNS ist eine der besten Technologien für Data Mining und den Verkauf von Daten; meiner Meinung nach ist das auch der Grund, warum es leicht zu merkende DNS-Server wie 8.8.8.8 oder 1.1.1.1 gibt.
Google und Cloudflare machen das sicher nicht nur aus reiner Wohltätigkeit.
Allerdings behauptet AdGuard, keine Kundendaten zu verkaufen.
Man liest die Doku, installiert es, bringt es gut zum Laufen und prahlt dann bei Freunden damit, dass es im Heimnetz keine nervigen Anzeigen gibt.
Dann sagen die Freunde: „Installierst du mir das auch?“
Installieren kann man es ihnen, aber die Wartung kann man nicht auch noch übernehmen; also sagt man: „Statt dieser Komplexität gibt es für 29 $ pro Jahr für die ganze Familie eine einfache App-basierte Einrichtung, die sofort funktioniert.“
An diesem Abend laden fünf Freunde den Dienst herunter und bezahlen dafür.
Ich denke, die Philosophie heutiger Tech-Startups ist ähnlich: ein Open-Source-Produkt haben und darauf ein kommerzielles Geschäft aufbauen.
AdGuard ist ein russisches Unternehmen mit russischen Engineers; viele Entwickler und Mitarbeiter arbeiten in Moskau, registriert ist es auf Zypern.
Keine gute Kombination, aus Sicherheitsgründen würde ich es meiden.
MacPaw stuft in Russland entwickelte Software deshalb als Risiko ein, weil die Regierung jederzeit auf Daten zugreifen kann; hier handelt es sich aber um selbst gehostete Open Source.
Der FSB kann nicht einfach per beliebigem Gerichtsbeschluss auf deinen lokalen Server zugreifen.
Deshalb wirkt das für mich eher wie Russophobie als wie eine berechtigte Sorge, und ich finde es umso unangebrachter, weil ich aus erster Hand weiß, wie sehr russische Entwickler unter der Dummheit ihrer Regierung leiden.
py-hole könnte ebenfalls interessant sein.
Es besteht nur aus einem Python-Skript und dnsmasq-Konfiguration, läuft auf OpenWrt, ist kostenlos und die CPU-Auslastung liegt praktisch bei 0.
https://github.com/time4tea-net/py-hole
Ein weiterer guter Punkt an AdGuard ist, dass es als Home-Assistant-Add-on verfügbar ist.
Weil es in den Rest von HA integriert ist, kann man zum Beispiel im Dashboard einen Schalter platzieren, um das Blocking ein- und auszuschalten.
AdGuard Home ist großartig
Ich habe eine Zeit lang Pi-hole genutzt, hatte aber ziemlich häufig kleinere Probleme
Nichts Ernstes, aber solche Tools sind erst dann wirklich nützlich, wenn sie einfach funktionieren
In meinem Pi-Setup läuft es problemlos mit docker-compose[1], und mit einem schönen Container namens adguardhome-sync[2] betreibe ich einen zweiten Pi als Backup und synchronisiere die Konfiguration
Jetzt sehe ich im Netzwerk keine Werbung mehr, und es ist auch ziemlich interessant zu sehen, welche Geräte wie viele Tracking-/Werbeanfragen senden
1 - https://thesmarthomejourney.com/2021/05/24/adguard-pihole-dn...
2 - https://thesmarthomejourney.com/2023/02/12/adguardhome-sync-...
Unzählige Geräte und Apps versuchen, für Tracking und Werbe-Targeting direkt zu fest einprogrammierten DNS-Servern hinauszugehen
Ich weiß nicht, ob hier jemand Technitium DNS nutzt
Es ist Open Source, kostenlos und läuft auch auf minimaler Hardware
Ich betreibe es auf einem Orange Pi 3 LTS
https://technitium.com/dns/
Dort steht: „Technitium DNS Server is an open source authoritative as well as recursive DNS server“; ich frage mich, ob Pi-hole oder AdGuard ebenfalls rekursive DNS-Server sind oder nur einfache Blocker
Ich nutze Pi-hole schon lange und versuche gerade zu verstehen, welchen Vorteil das hier hat
Mit ein wenig Konfiguration ist das kostenlos möglich
AdGuard kannte ich nicht; es sieht zwar gut aus, aber ich habe keinen besonderen Drang, es auszuprobieren
Da es .NET-basiert ist, ist es auch plattformübergreifend
Wenn man diesen Weg bevorzugt, gibt es auch ein Docker-Image
Es gibt ein paar eher positive Kommentare zu NextDNS, aber ich hinterlasse das separat, weil ich darüber nachdenke, von NextDNS wegzuwechseln
Der Grund ist, dass ich derzeit Mac/Safari nutze und die Funktion „IP-Adresse vor Trackern verbergen“ aktivieren möchte; wenn ich das tue, werden jedoch Website-Anzeigen sichtbar, die NextDNS sonst blockiert hat
Deshalb muss ich diese Option deaktivieren und kann die Apple-Funktion nicht nutzen
Insgesamt scheinen die beiden nicht zusammen nutzbar zu sein, und auf der NextDNS-Hilfeseite gibt es dazu ebenfalls ein entsprechendes Issue
https://help.nextdns.io/t/q6yq4xy/nextdns-stops-working-prop...
Ich frage mich, ob jemand weiß, ob das auch bei AdGuard oder Pi-hole ein bekanntes Problem ist
Wenn das Relay aktiviert ist, wird die Verbindung geproxyt und nutzt nicht den DNS-Server des lokalen Netzwerks
Das gilt gleichermaßen für Pi-hole, NextDNS und AdGuard
Mir ist nicht klar, was der Zweck von Letzterem sein soll
Es scheint eine feste Zeitspanne zu geben, die HN durchhält, ohne dass ein Artikel über Pi-hole oder AdGuard Home auftaucht
Gut
Ähnlich dazu: Wenn man im Netzwerk pfSense betreibt, lohnt sich auch ein Blick auf pfBlockerNG. Ich persönlich mag es ziemlich: https://docs.netgate.com/pfsense/en/latest/packages/pfblocke...