FAQ
Warum sperrt AdGuard Home keine Werbung oder Bedrohungen?
Angenommen, Sie möchten, dass AdGuard Home eineschlechteseite.de
sperrt, aber aus irgendeinem Grund tut es das nicht. Lassen Sie uns versuchen, dieses Problem zu lösen.
Möglicherweise haben Sie Ihr Gerät nicht so konfiguriert, dass AdGuard Home als Standard-DNS-Server verwendet wird. So können Sie überprüfen, ob Sie AdGuard Home als Ihren Standard-DNS-Server verwenden:
Unter Windows öffnen Sie die Eingabeaufforderung (Start ➜ Ausführen ➜
cmd.exe
). Auf anderen Systemen öffnen Sie Ihre Terminal-Anwendung.Führen Sie
nslookup example.org
aus. Es wird in etwa so ausgegeben:Server: 192.168.0.1
Adresse: 192.168.0.1#53
Nicht-autoritative Antwort:
Name: example.org
Adresse: <IPv4>
Name: example.org
Adresse: <IPv6>Überprüfen Sie, ob die IP-Adresse des
Servers
diejenige ist, auf der AdGuard Home läuft. Falls nicht, müssen Sie Ihr Gerät entsprechend konfigurieren. Siehe unten, wie Sie dies tun können.Stellen Sie sicher, dass Ihre Anfrage an
example.org
in der AdGuard Home UI auf der Seite Abfrageprotokoll/Query Log angezeigt wird. Falls nicht, müssen Sie AdGuard Home so konfigurieren, dass er die angegebene Netzwerkschnittstelle belauscht. Am einfachsten ist es, wenn Sie AdGuard Home mit den Standardeinstellungen neu installieren.
Wenn Sie sicher sind, dass Ihr Gerät AdGuard Home als Standard-DNS-Server verwendet, das Problem aber weiterhin besteht, kann dies an einer Fehlkonfiguration von AdGuard Home liegen. Bitte überprüfen Sie dies und stellen Sie sicher, dass:
Sie haben die Einstellung Domains mit Filtern und Hosts-Dateien sperren auf der Seite Einstellungen ➜ Allgemeine Einstellungen aktiviert.
Sie haben auf der gleichen Seite die entsprechenden Sicherheitsmechanismen, wie z. B. die Kindersicherung, aktiviert.
Sie haben die entsprechenden Filter auf der Seite Filters ➜ DNS-Sperrlisten aktiviert.
Sie haben auf der Seite Filter ➜ DNS-Zulassungslisten keine Ausnahmeregellisten aktiviert, die die Anfragen zulassen könnten.
Sie haben keine DNS-Rewrites, die auf der Seite Filters ➜ DNS-Rewrites stören könnten.
Sie haben keine benutzerdefinierten Filterregeln, die auf der Seite Filter ➜ Benutzerdefinierte Filterregeln stören könnten.
Was bedeutet „Gesperrt durch CNAME oder IP“ im Abfrageprotokoll?
AdGuard Home überprüft sowohl DNS-Anfragen als auch DNS-Antworten, um eine Technik zur Umgehung von Adblock zu verhindern, die als CNAME-Cloaking bekannt ist. Das heißt, wenn Ihre Filterregeln eine Domäne, z. B. „tracker.example“, enthalten und eine DNS-Antwort für einen anderen Domain-Namen, z. B. „blogs.example“, diesen Domain-Namen in ihren CNAME-Einträgen enthält, wird diese Antwort gesperrt, da sie tatsächlich zu dem gesperrten Tracking-Dienst führt.
Wo können die Protokolle eingesehen werden?
Der Standardspeicherort der Klartextprotokolle (nicht zu verwechseln mit den Abfrageprotokollen) hängt vom Betriebssystem und dem Installationsmodus ab:
OpenWrt Linux: verwenden Sie den Befehl
logread -e AdGuardHome
.Linux-Systeme mit systemd und andere Unix-Systeme mit SysV-style init:
/var/log/AdGuardHome.err
.macOS:
/var/log/AdGuardHome.stderr.log
.Linux-Systeme mit Snapcraft verwenden den Befehl
snap logs adguard-home
.FreeBSD:
/var/log/daemon.log
.OpenBSD:
/var/log/daemon
.Windows: Das Windows-Ereignisprotokoll wird verwendet.
Wie kann AdGuard Home so konfiguriert werden, dass ausführliche Protokolle geschrieben werden?
Für die Fehlersuche bei einem komplizierten Problem ist manchmal die ausführliche Protokollierung erforderlich. Hier erfahren Sie, wie Sie es aktivieren können:
Beenden Sie AdGuard Home:
./AdGuardHome -s stop
Konfigurieren Sie AdGuard Home so, dass ausführliche Protokolle geschrieben werden:
Öffnen Sie
AdGuardHome.yaml
in Ihrem Editor.Legen Sie
log.file
auf den gewünschten Pfad der Protokolldatei fest, zum Beispiel/tmp/aghlog.txt
. Beachten Sie, dass das Verzeichnis existieren muss.Setzen Sie
log.verbose
auftrue
.
Starten Sie AdGuard Home neu und reproduzieren Sie das Problem:
./AdGuardHome -s start
Wenn Sie mit der Fehlersuche fertig sind, setzen Sie
log.verbose
wieder auffalse
.
Wie kann eine benutzerdefinierte Sperrseite angezeigt werden?
Bevor Sie dies tun, beachten Sie bitte, dass moderne Browser so eingestellt sind, dass sie HTTPS verwenden und daher die Echtheit des Webserver-Zertifikats überprüfen. Das bedeutet, dass die Verwendung eines dieser Programme zu Warnmeldungen führt.
Es gibt eine Reihe von vorgeschlagenen Erweiterungen, die, wenn sie von den Clients einigermaßen gut unterstützt werden, eine bessere Benutzererfahrung bieten würden, darunter die RFC 8914 Erweiterte DNS-Fehlercodes und der DNS Access Denied Error Page RFC draft. Wir werden sie implementieren, wenn die Browser sie tatsächlich unterstützen.
Voraussetzungen
Um eine dieser Methoden zur Anzeige einer benutzerdefinierten Sperrseite zu verwenden, benötigen Sie einen HTTP-Server, der unter einer IP-Adresse läuft und die betreffende Seite auf allen Routen bereitstellt. Etwas wie pixelserv-tls
.
Benutzerdefinierte Sperrseite für Jugendschutz- und Safe-Browsing-Filter
Es gibt derzeit keine Möglichkeit, diese Parameter über die Benutzeroberfläche einzustellen, so dass Sie die Konfigurationsdatei manuell bearbeiten müssen:
Beenden Sie AdGuard Home:
./AdGuardHome -s stop
Öffnen Sie
AdGuardHome.yaml
in Ihrem Editor.Setzen Sie die Einstellungen
dns.parental_block_host
oderdns.safebrowsing_block_host
auf die IP-Adresse des Servers (in diesem Beispiel192.168.123.45
):# …
dns:
# …
# HINWEIS: Wechseln Sie zur tatsächlichen IP-Adresse Ihres Servers.
parental_block_host: 192.168.123.45
safebrowsing_block_host: 192.168.123.45Starten Sie AdGuard Home neu:
./AdGuardHome -s start
Benutzerdefinierte Sperrseite für andere Filter
Öffnen Sie die Web-Benutzeroberfläche.
Navigieren Sie zu Einstellungen ➜ DNS-Einstellungen.
Wählen Sie im Abschnitt DNS-Server-Konfiguration das Optionsfeld Benutzerdefinierte IP im Auswahlfeld Sperrmodus und geben Sie die IPv4- und IPv6-Adresse des Servers ein.
Klicken Sie auf Speichern.
Wie kann die Adresse der Übersichts-Schnittstelle geändert werden?
Beenden Sie AdGuard Home:
./AdGuardHome -s stop
Öffnen Sie
AdGuardHome.yaml
in Ihrem Editor.Legen Sie die Einstellung
http.address
auf eine neue Netzwerkschnittstelle fest. Zum Beispiel:0.0.0.0:0
, um auf allen Netzwerkschnittstellen zu lauschen;0.0.0.0:8080
, um alle Netzwerkschnittstellen mit dem Port8080
zu belauschen;127.0.0.1:0
, um nur auf der lokalen Loopback-Schnittstelle zu lauschen.
Starten Sie AdGuard Home neu:
./AdGuardHome -s start
Wie kann AdGuard Home als Standard-DNS-Server eingerichtet werden?
Siehe den Abschnitt Geräte konfigurieren auf der Seite Erste Schritte.
Gibt es bekannte Einschränkungen?
Hier einige Beispiele dafür, was von einem Blocker auf DNS-Ebene nicht gesperrt werden kann:
Werbung auf YouTube und Twitch.
Gesponserte Beiträge auf Facebook, X (früher Twitter) und Instagram.
Grundsätzlich kann jede Werbung, die eine Domain mit einem Inhalt teilt, nicht von einem Blocker auf DNS-Ebene gesperrt werden, es sei denn, Sie sind bereit, auch den Inhalt zu sperren.
Gibt es eine Möglichkeit, dies in Zukunft zu ändern?
DNS wird dafür niemals ausreichen. Ihre einzige Möglichkeit ist die Verwendung eines Proxy zum Sperren von Inhalten, wie wir es in den eigenständigen AdGuard-Anwendungen tun. Zukünftig wird AdGuard Home auch diese Funktion unterstützen. Leider wird es auch dann noch Fälle geben, in denen dies nicht ausreicht oder eine recht komplizierte Konfiguration erfordert.
Warum erhalte ich beim Installationsversuch auf Ubuntu die Fehlermeldung bind: address already in use
?
Dies geschieht, weil der Port 53 auf localhost
, der für DNS verwendet wird, bereits von einem anderen Programm belegt ist. Ubuntu wird mit einem lokalen DNS namens systemd-resolved
ausgeliefert, der die Adresse 127.0.0.53:53
verwendet und somit verhindert, dass sich AdGuard Home an 127.0.0.1:53
binden kann. Sie können dies prüfen, indem Sie den Befehl ausführen:
sudo lsof -i :53
Die Ausgabe sollte in etwa so aussehen:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd-r 14542 systemd-resolve 13u IPv4 86178 0t0 UDP 127.0.0.53:domain
systemd-r 14542 systemd-resolve 14u IPv4 86179 0t0 TCP 127.0.0.53:domain
Um dies zu beheben, müssen Sie entweder den Daemon systemd-resolved
deaktivieren oder eine andere Netzwerkschnittstelle wählen und Ihren AdGuard Home an eine erreichbare IP-Adresse binden, z.B. an die IP-Adresse Ihres Routers innerhalb Ihres Netzwerks. Wenn Sie jedoch auf localhost
lauschen müssen, gibt es mehrere Lösungen.
Erstens kann AdGuard Home solche Konfigurationen erkennen und systemd-resolved
für Sie deaktivieren, wenn Sie auf dem Installationsbildschirm die Schaltfläche Fix neben der Meldung address already in use
drücken.
Sollte das nicht funktionieren, befolgen Sie bitte die nachstehenden Anweisungen. Beachten Sie, dass Sie dies selbst tun müssen, wenn Sie AdGuard Home mit Docker oder Snap verwenden.
Erstellen Sie den Ordner
/etc/systemd/resolved.conf.d
, falls erforderlich:sudo mkdir -p /etc/systemd/resolved.conf.d
Deaktivieren Sie
DNSStubListener
und aktualisieren Sie die DNS-Serveradresse. Dazu erstellen Sie eine neue Datei,/etc/systemd/resolved.conf.d/adguardhome.conf
, mit dem folgenden Inhalt:[Resolve]
DNS=127.0.0.1
DNSStubListener=no
Die Angabe von 127.0.0.1
als DNS-Server-Adresse ist notwendig. Andernfalls wird der Nameserver 127.0.0.53
sein, was ohne DNSStubListener
nicht funktionieren wird.
Aktivieren Sie eine weitere Datei
resolv.conf
:sudo mv /etc/resolv.conf /etc/resolv.conf.backup
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.confStarten Sie
DNSStubListener
neu:sudo systemctl reload-or-restart systemd-resolved
Danach sollte systemd-resolved
in der Ausgabe von lsof
nicht mehr angezeigt werden, und AdGuard Home sollte sich an 127.0.0.1:53
binden können.
Wie kann ein Reverse-Proxy-Server für AdGuard Home konfiguriert werden?
Wenn Sie bereits einen Webserver betreiben und auf das AdGuard Home-Benutzeroberfläche von einer URL wie http://YOUR_SERVER/aghome/
zugreifen möchten, können Sie diese Konfiguration für Ihren Webserver verwenden:
nginx
location /aghome/ {
proxy_cookie_path / /aghome/;
proxy_pass http://AGH_IP:AGH_PORT/;
proxy_redirect / /aghome/;
proxy_set_header Host $host;
}
caddy
:80/aghome/* {
route {
uri strip_prefix /aghome
reverse_proxy AGH_IP:AGH_PORT
}
}
Oder, wenn Sie AdGuard Home nur mit automatischem TLS ausliefern möchten, verwenden Sie eine Konfiguration ähnlich dem unten gezeigten Beispiel:
DOMAIN {
encode gzip zstd
tls YOUR_EMAIL@DOMAIN
reverse_proxy AGH_IP:AGH_PORT
}
Apache
<VirtualHost *:80>
ProxyPass "/" "http://AGH_IP:AGH_PORT/"
ProxyPassReverse "/" "http://AGH_IP:AGH_PORT/"
PreserveHost On
</VirtualHost>
Verwenden Sie keine Unterverzeichnisse mit dem Apache Reverse-HTTP-Proxy. Es ist ein bekanntes Problem (#6604), dass der Apache relative Weiterleitungen anders behandelt als andere Webserver. Dies führt zu Problemen mit der Web-Oberfläche von AdGuard Home.
Deaktivieren Sie die DoH-Verschlüsselung auf AdGuard Home
Wenn Sie TLS auf Ihrem Reverse-Proxy-Server verwenden, müssen Sie TLS nicht auf AdGuard Home verwenden. Setzen Sie allow_unencrypted_doh: true
in AdGuardHome.yaml
, damit AdGuard Home auf DoH-Anfragen ohne TLS-Verschlüsselung antworten kann.
Wahre IP-Adressen der Clients
Sie können den Parameter trusted_proxies
auf die IP-Adresse(n) Ihres HTTP-Proxys setzen, damit AdGuard Home die Header berücksichtigt, die die echte Client-IP-Adresse enthalten. Weitere Informationen finden Sie auf den Seiten configuration und encryption.
Wie kann der Fehler permission denied
unter Fedora behoben werden?
Verschieben Sie die Binärdatei
AdGuardHome
nach/usr/local/bin
.Führen Sie als
root
den folgenden Befehl aus, um den Sicherheitskontext der Datei zu ändern:chcon -t bin_t /usr/local/bin/AdGuardHome
Fügen Sie die erforderlichen Firewall-Regeln hinzu, um die Erreichbarkeit über das Netzwerk zu gewährleisten. Zum Beispiel:
firewall-cmd --new-zone=adguard --permanent
firewall-cmd --zone=adguard --add-source=192.168.0.14/24 --permanent
firewall-cmd --zone=adguard --add-port=3000/tcp --permanent
firewall-cmd --zone=adguard --add-port=53/udp --permanent
firewall-cmd --zone=adguard --add-port=80/tcp --permanent
firewall-cmd --reload
Wenn Sie noch immer code=exited status=203/EXEC
oder ähnliche Fehler von systemctl
erhalten, versuchen Sie, AdGuard Home zu deinstallieren und es direkt in /usr/local/bin
zu installieren, indem Sie die Option -o
des Installationsskripts verwenden:
curl -s -S -L 'https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh' | sh -s -- -o '/usr/local/bin' -v
Siehe [Problem 765] und [Problem 3281].
Wie kann der Fehler incompatible file system
behoben werden?
Sie sollten Ihr AdGuard Home Installations- oder Arbeitsverzeichnis an einen anderen Ort verschieben. Siehe den Abschnitt Einschränkungen auf der Seite Erste Schritte.
Was bedeutet „Fehler: control/version.json“?
Diese Fehlermeldung bedeutet, dass AdGuard Home die AdGuard-Server nicht erreichen konnte, um nach Aktualisierungen zu suchen und/oder diese herunterzuladen. Dies könnte bedeuten, dass die Server von Ihrem Internetanbieter gesperrt werden oder vorübergehend nicht erreichbar sind. Wenn sich der Fehler nach einiger Zeit nicht behoben ist, können Sie versuchen, ein manuelles Update durchzuführen oder die automatische Update-Prüfung zu deaktivieren, indem Sie die ausführbare Datei AdGuardHome
mit der Befehlszeilenoption --no-check-update
ausführen.
Wie kann AdGuard Home manuell aktualisiert werden?
Wenn die Schaltfläche nicht angezeigt wird oder eine automatische Aktualisierung fehlgeschlagen ist, können Sie AdGuard Home manuell aktualisieren. In den folgenden Beispielen verwenden wir die Versionen für Linux und Windows für AMD64 CPUs.
Unix (Linux, macOS, BSD)
Laden Sie das neue AdGuard Home-Paket von der Release-Seite herunter. Wenn Sie diesen Schritt über die Befehlszeile ausführen möchten, geben Sie folgenden Befehl ein:
curl -L -S -o '/tmp/AdGuardHome_linux_amd64.tar.gz' -s\
'https://static.adguard.com/adguardhome/release/AdGuardHome_linux_amd64.tar.gz'Oder mit
wget
:wget -O '/tmp/AdGuardHome_linux_amd64.tar.gz'\
'https://static.adguard.com/adguardhome/release/AdGuardHome_linux_amd64.tar.gz'Wechseln Sie in den Ordner, in dem AdGuard Home installiert ist. Auf den meisten Unix-Systemen ist das Standardverzeichnis
/opt/AdGuardHome
, aber unter macOS ist es/Applications/AdGuardHome
.Beenden Sie AdGuard Home:
sudo ./AdGuardHome -s stop
OpenBSDUnter OpenBSD werden Sie wahrscheinlich
doas
anstelle vonsudo
verwenden wollen.Sichern Sie Ihre Daten. Das heißt, Ihre Konfigurationsdatei und das Datenverzeichnis (standardmäßig
AdGuardHome.yaml
unddata/
). Zum Beispiel, um Ihre Daten in einen neuen Ordner namens~/my-agh-backup
zu sichern:mkdir -p ~/my-agh-backup
cp -r ./AdGuardHome.yaml ./data ~/my-agh-backup/Entpacken Sie das AdGuard Home-Archiv in einen temporären Ordner. Wenn Sie zum Beispiel das Archiv in den Ordner
~/Downloads
heruntergeladen haben und es nach/tmp/
entpacken wollen:tar -C /tmp/ -f ~/Downloads/AdGuardHome_linux_amd64.tar.gz -x -v -z
Unter macOS geben Sie etwas ein wie:
unzip -d /tmp/ ~/Downloads/AdGuardHome_darwin_amd64.zip
Ersetzen Sie die alte ausführbare Datei von AdGuard Home durch die neue. Auf den meisten Unix-Systemen würde der Befehl etwa so aussehen:
sudo cp /tmp/AdGuardHome/AdGuardHome /opt/AdGuardHome/AdGuardHome
Unter macOS etwa so:
sudo cp /tmp/AdGuardHome/AdGuardHome /Applications/AdGuardHome/AdGuardHome
Sie möchten vielleicht auch die Dokumentationsteile des Pakets kopieren, wie das Änderungsprotokoll (
CHANGELOG.md
), die README-Datei (README.md
) und die Lizenz (LICENSE.txt
).Sie können nun das temporäre Verzeichnis entfernen.
Starten Sie AdGuard Home neu:
sudo ./AdGuardHome -s start
Windows (mit PowerShell)
In allen folgenden Beispielen muss die PowerShell als Administrator ausgeführt werden.
Laden Sie das neue AdGuard Home-Paket von der Release-Seite herunter. Wenn Sie diesen Schritt über die Befehlszeile ausführen möchten:
$outFile = Join-Path -Path $Env:USERPROFILE -ChildPath 'Downloads\AdGuardHome_windows_amd64.zip'
$aghUri = 'https://static.adguard.com/adguardhome/release/AdGuardHome_windows_amd64.zip'
Invoke-WebRequest -OutFile "$outFile" -Uri "$aghUri"Wechseln Sie in den Ordner, in dem AdGuard Home installiert wurde. In den folgenden Beispielen wird
C:\Program Files\AdGuardHome
. verwendet.Beenden Sie AdGuard Home:
.\AdGuardHome.exe -s stop
Sichern Sie Ihre Daten. Das heißt, Ihre Konfigurationsdatei und das Datenverzeichnis (standardmäßig
AdGuardHome.yaml
unddata/
). Zum Beispiel, um Ihre Daten in einem neuen Ordner namensmy-agh-backup
zu sichern:$newDir = Join-Path -Path $Env:USERPROFILE -ChildPath 'my-agh-backup'
New-Item -Path $newDir -ItemType Directory
Copy-Item -Path .\AdGuardHome.yaml, .\data -Destination $newDir -RecurseEntpacken Sie das AdGuard Home-Archiv in einen temporären Ordner. Wenn Sie das Archiv beispielsweise in den Ordner
Downloads
heruntergeladen haben und es in einen temporären Ordner entpacken möchten:$outFile = Join-Path -Path $Env:USERPROFILE -ChildPath 'Downloads\AdGuardHome_windows_amd64.zip'
Expand-Archive -Path "$outFile" -DestinationPath $Env:TEMPErsetzen Sie die alte ausführbare Datei von AdGuard Home durch die neue. Zum Beispiel:
$aghExe = Join-Path -Path $Env:TEMP -ChildPath 'AdGuardHome\AdGuardHome.exe'
Copy-Item -Path "$aghExe" -Destination .\AdGuardHome.exeSie möchten vielleicht auch die Dokumentationsteile des Pakets kopieren, wie das Änderungsprotokoll (
CHANGELOG.md
), die README-Datei (README.md
) und die Lizenz (LICENSE.txt
).Sie können nun das temporäre Verzeichnis entfernen.
Starten Sie AdGuard Home neu:
.\AdGuardHome.exe -s start
Wie kann AdGuard Home deinstalliert werden?
Je nachdem, wie Sie AdGuard Home installiert haben, gibt es verschiedene Möglichkeiten, es zu deinstallieren.
Bevor Sie AdGuard Home deinstallieren, vergessen Sie nicht, die Konfiguration Ihrer Geräte zu ändern und sie auf einen anderen DNS-Server zu verweisen.
Normale Installation
In diesem Fall gehen Sie wie folgt vor:
Heben Sie die Registrierung des AdGuard Home-Dienstes auf:
./AdGuardHome -s uninstall
.Entfernen Sie den Ordner AdGuard Home.
Docker
Stoppen Sie einfach und entfernen Sie das Image.
Snap Store
snap remove adguard-home