Zurück zum Blog
August 19, 2026Anleitungen

AdGuard Home auf einem VPS einrichten

AdGuard Home auf Ubuntu installieren, den Einrichtungsassistenten abschließen, die Web-UI absichern, DNS-over-HTTPS und DNS-over-TLS aktivieren, Geräte auf Ihren Resolver zeigen und vermeiden, einen offenen DNS-Server zu betreiben, den das ganze Internet missbrauchen kann.

AdGuard Home auf einem VPS einrichten

AdGuard Home ist ein selbst gehosteter DNS-Sinkhole und resolverähnlicher Dienst mit Weboberfläche. Es blockiert Werbung, Tracker und Malware-Domains für jedes Gerät, das es als DNS nutzt — Telefone, Laptops, Smart-TVs und andere VPS-Projekte. Anders als eine Browser-Erweiterung greift es auch bei Apps, die Hosts-Dateien ignorieren. Auf einem VPS ist das nützlich, wenn Sie unterwegs dieselbe Filterung wollen oder kein Raspberry Pi im Heimnetz betreiben möchten.

Die gefährliche Voreinstellung, die Sie nicht ausliefern dürfen, ist ein offener Resolver: Ist UDP/TCP 53 ohne Zugriffskontrolle aus dem ganzen Internet erreichbar, nutzen Fremde Ihren VPS für DNS-Amplification und Sie kassieren Abuse-Beschwerden. Diese Anleitung installiert AdGuard Home auf Ubuntu, bindet DNS an localhost oder eine private WireGuard-Schnittstelle, sofern Sie verschlüsseltes DNS nicht bewusst öffentlich machen, legt das Dashboard hinter HTTPS und zeigt, wie Laptops und Telefone DNS-over-HTTPS (DoH) oder DNS-over-TLS (DoT) nutzen, ohne klassischen Port 53 der Welt zu öffnen.

Wofür AdGuard Home gut geeignet ist

Pi-hole ist der übliche Vergleich. AdGuard Home ist eine einzelne Binary mit eingebauter Web-UI, optionalen verschlüsselten DNS-Frontends und Einstellungen pro Client. Sie können es in Docker oder als systemd-Dienst betreiben. Auf einem Hiddence-VPS passt es gut zu einem privaten VPN: Geräte treten WireGuard bei, schicken DNS über den Tunnel an den VPS und legen Port 53 niemals öffentlich frei.

  • Netzwerkweite Blockierung, ohne auf jedem Gerät eine App zu installieren
  • DoH (443) und DoT (853), damit DNS im öffentlichen WLAN nicht im Klartext läuft
  • Abfragelog und Statistiken: welches Gerät spricht welche Domain an
  • Eigene Upstreams (Quad9, Cloudflare oder ein eigenes Unbound)
  • Kleiner Footprint — ein 1-GB-VPS filtert einen Haushalt plus ein paar Extra-Clients

Voraussetzungen

Für ein vertrauenswürdiges Zertifikat für DoH/DoT und das Dashboard brauchen Sie eine Domain. Sie können zuerst per HTTP und Server-IP testen, sollten das aber nicht so lassen. Falls systemd-resolved auf Ubuntu bereits Port 53 besitzt, geben wir ihn frei, bevor AdGuard Home DNS bindet.

  • Ubuntu 22.04 oder 24.04 VPS mit root/sudo
  • 1 GB RAM reicht für den Eigenbedarf
  • Eine Domain oder Subdomain (dns.example.com) mit A-Record auf den VPS
  • SSH-Zugang; optional WireGuard, wenn DNS nur im Tunnel laufen soll

Schritt 1: Port 53 freigeben und AdGuard Home installieren

Ubuntu Server betreibt systemd-resolved oft als Stub auf 127.0.0.53:53. AdGuard Home will 53 auf den Schnittstellen, die Sie wählen. Der Installer kann das erledigen; explizit zu machen, verhindert halb kaputtes DNS auf dem VPS selbst (der Server muss Pakete weiterhin auflösen können).

bash
ssh root@YOUR_VPS_IP
apt update && apt -y upgrade
apt -y install curl ca-certificates

# See who owns port 53:
ss -tulpn | grep ':53'

# Typical Ubuntu fix: stop stub listener, point the OS at a temporary resolver
mkdir -p /etc/systemd/resolved.conf.d
cat >/etc/systemd/resolved.conf.d/adguardhome.conf <<'EOF'
[Resolve]
DNS=1.1.1.1
DNSStubListener=no
EOF
ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
systemctl restart systemd-resolved

curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v

Schritt 2: Einrichtungsassistent

Der Installer gibt eine URL aus, üblicherweise http://YOUR_IP:3000/. Öffnen Sie sie, legen Sie einen Admin-Benutzer mit langem Passwort an und wählen Sie Listen-Adressen. Für einen öffentlichen VPS ist ein sicheres erstes Setup: Admin-Web auf 127.0.0.1:3000 (Caddy davor) oder nach TLS auf 80/443; DNS-Listen auf 127.0.0.1:53 plus einer VPN-Schnittstelle, nicht auf 0.0.0.0:53. Brauchen Sie wirklich LAN-artiges DNS für Freunde, bevorzugen Sie DoH/DoT auf 443/853 mit Authentifizierung, nicht offenes 53/udp.

Wählen Sie Upstream-DNS-Server, denen Sie vertrauen. Viele nutzen https://dns.quad9.net/dns-query oder Cloudflare. Parallele Anfragen aktivieren, wenn Sie schnelleres Failover wollen. Zuerst die Standard-Filterlisten einschalten, später mehr — fünfzig Listen am ersten Tag machen Debugging unmöglich, wenn eine Site bricht.

Wenn Port 3000 vom Laptop aus nicht erreichbar ist, SSH-Tunnel: ssh -L 3000:127.0.0.1:3000 root@YOUR_VPS_IP und im Browser http://127.0.0.1:3000/

Schritt 3: Reverse-Proxy und HTTPS für das Dashboard

Nach dem Assistenten wandert die UI typischerweise auf Port 80. Das kollidiert mit Caddy oder Nginx, wenn Sie auch Sites hosten. Ein sauberes Muster: AdGuard-Home-Web auf 127.0.0.1:8080, DNS auf 127.0.0.1:53, Caddy auf 443 für Dashboard und DoH.

bash
# In AdGuard Home settings, bind the web UI to 127.0.0.1:8080
# Example Caddyfile:

dns.example.com {
    reverse_proxy 127.0.0.1:8080
}

# After Caddy is up:
curl -I https://dns.example.com

Schritt 4: DNS-over-HTTPS und DNS-over-TLS aktivieren

Unter Encryption die Verschlüsselung aktivieren, den Servernamen auf dns.example.com setzen und AdGuard Home auf Ihre Zertifikatsdateien zeigen — entweder die von Caddy oder Zertifikate, die AdGuard Home selbst holt, wenn es auf 443 lauscht. DoH ist üblicherweise https://dns.example.com/dns-query. DoT ist dns.example.com:853. Gehört 443 bereits Caddy, lässt Caddy TLS terminieren und den DoH-Pfad auf den unverschlüsselten HTTP-DoH-Port von AdGuard Home reverse-proxyn — oder AdGuard Home lauscht auf 443 und das Dashboard liegt auf einer anderen Subdomain.

Mit einem Client prüfen, bevor Sie jedes Gerät umstellen. Auf einem Laptop mit modernem curl:

bash
curl -H 'accept: application/dns-json' 'https://dns.example.com/dns-query?name=example.com&type=A'

# DoT test (kdig from knot-dnsutils, if installed):
# kdig @dns.example.com +tls-ca +tls-host=dns.example.com example.com

Schritt 5: Echte Geräte auf Ihren Resolver zeigen

Windows 11 und aktuelle Android-Builds können eine DoH-Vorlage nutzen. iOS kann ein Konfigurationsprofil oder einen Client mit DoH verwenden. Firefox und Chromium erlauben ebenfalls eine eigene DoH-URL. Am Heimrouter WAN-DNS nur setzen, wenn der Router DoT/DoH kann; sonst WireGuard betreiben und DNS auf die VPN-IP des VPS setzen, damit klassisches DNS nie übers Internet geht.

  • Android 9+: Privates DNS (DoT) → dns.example.com
  • Firefox: Einstellungen → Netzwerk → DNS over HTTPS → eigene URL https://dns.example.com/dns-query
  • Apple-Geräte: ein signiertes mobileconfig oder eine App mit DoH/DoT
  • Andere VPS: resolv.conf oder systemd-resolved auf die WireGuard-IP dieser AdGuard-Instanz setzen
  • Diese VPS-IP nicht als DNS in beliebigen öffentlichen Netzen ohne Verschlüsselung setzen

Schritt 6: Firewall — offenen rekursiven DNS schließen

Dieser Abschnitt verhindert eine böse Überraschung. SSH, HTTPS und optional 853/tcp für DoT erlauben. 53/udp nicht von 0.0.0.0/0 zulassen, außer Sie haben ein sehr spezifisches, rate-limitiertes, authentifiziertes Design — und selbst dann sollten Sie es wahrscheinlich lassen.

bash
ufw allow OpenSSH
ufw allow 443/tcp comment 'dashboard + DoH'
ufw allow 853/tcp comment 'DoT'
# If DNS is only on WireGuard (example iface wg0, 10.8.0.1):
# ufw allow in on wg0 to any port 53 proto udp
ufw enable
ufw status verbose

# Confirm 53 is not public:
ss -tulpn | grep ':53'

Filter, Allowlists und Clients

Starten Sie mit AdGuards Standard-DNS-Filter und einer Malware-Liste. Wenn eine Site zickt, Abfragelog prüfen, dann eine gezielte Allowlist-Regel statt der kompletten Blockierung auszuschalten. Client-Namen (per IP oder ClientID in der DoH-URL) nutzen, damit strengere Listen auf einem Smart-TV und lockerere auf dem Arbeitslaptop landen. Safe Search nur einschalten, wenn Sie es wirklich wollen — es überrascht Leute, die keine umgeschriebenen Google-Ergebnisse erwartet haben.

  • Abfragelog: blockierte Domain finden, dann whitelisten, wenn es ein Fehlalarm ist
  • Client-Einstellungen: unterschiedliche Blocklisten pro Gerät
  • Disallowed clients: Bereiche sperren, die Ihnen nicht gehören
  • Rate Limiting: einschalten, wenn Sie je mehr als eine Handvoll Nutzer öffnen

Fehlerbehebung

Wenn der VPS selbst kein apt update mehr schafft, haben Sie lokales DNS beim Freigeben von Port 53 zerlegt — einen statischen Resolver in resolved.conf setzen, wie oben gezeigt. Haben Geräte „Internet“, laden aber weiter Werbung, umgehen sie Ihr DNS (hartcodierte Resolver, DoH im Browser oder eine App mit eigenem DNS). Ist das Dashboard leer, schauen Sie auf die falsche Instanz oder noch auf Port 3000, nachdem der Assistent die UI verschoben hat.

  • apt schlägt fehl: /etc/resolv.conf und systemd-resolved prüfen
  • Port 53 belegt: ss -tulpn, Stub-Listener deaktivieren
  • DoH-Zertifikatsfehler: Hostname muss zum SAN des Zertifikats passen
  • Werbung sichtbar: Browser-DoH zu einem anderen Anbieter überschreibt das OS
  • Viel RAM: Abfragelog plus zu viele Filterlisten — Listen kürzen und Log-Aufbewahrung verkürzen

Sicherheitscheckliste

Die Web-UI ist ein Admin-Panel. Einzigartiges Passwort, nur HTTPS, URL nicht veröffentlichen. AdGuard Home aktuell halten; Installationsskript und UI bieten beide einen Update-Pfad. 443 einschränken, wenn nur Ihre Geräte DoH nutzen sollen — HTTP-Basic-Auth auf dem DoH-Pfad oder nur WireGuard ist deutlich sicherer als ein bekannter offener Resolver.

  • Kein öffentliches 53/udp
  • HTTPS auf dem Dashboard
  • Starkes Admin-Passwort, im Passwortmanager gespeichert
  • Für Familiengeräte WireGuard plus internes DNS bevorzugen
  • AdGuardHome.yaml vom Server weg sichern

Tipps

  • Vor jedem Upgrade /opt/AdGuardHome/AdGuardHome.yaml sichern
  • Eine eigene Subdomain; nicht mit einem fremden CMS teilen
  • Wenn Caddy schon läuft, Caddy 443 besitzen lassen und AdGuard Home auf localhost halten
  • Die DoH-URL für Ihre Geräte dokumentieren — Sie werden sie vergessen
  • Mit den Anleitungen zu SSH-Härtung und Firewall kombinieren, damit der VPS nicht nur „DNS-sicher“ ist

AdGuard Home auf einem VPS ist überschaubar: Port 53 lokal freigeben, Installer ausführen, Assistenten mit starkem Admin-Passwort abschließen, UI auf HTTPS legen, DoH/DoT aktivieren und klassischen DNS vom öffentlichen Internet fernhalten. Geräte auf Ihren verschlüsselten Endpunkt oder eine VPN-IP zeigen, mit wenigen Filtern starten und bei Problemen das Abfragelog nutzen. Das ist ein privater Resolver, den Sie wirklich kontrollieren — kein öffentlicher offener DNS, der Ihren VPS in Abuse-Datenbanken landen lässt.