Eigentlich wollte ich „nur mal kurz“ einen Werbeblocker für das ganze Haus einrichten. Doch wie es bei IT-Projekten oft ist, wurde daraus schnell ein Infrastruktur-Projekt: Pi-hole als zentraler DNS-Werbeblocker und Unbound als eigener rekursiver DNS-Resolver, betrieben in einer Ubuntu-VM unter Proxmox. In diesem Guide zeige ich dir, wie du Werbung und Tracking auf Netzwerkebene eliminierst und gleichzeitig deine Privatsphäre durch DNS-Souveränität schützt.

Dieses Setup ist ein wesentlicher Baustein in meinem digitalen Ökosystem, das ich bereits in meinem Homeserver-Guide skizziert habe. Anstatt DNS-Anfragen (das "Adressbuch" des Internets) an Google oder Cloudflare zu senden, nehmen wir die Namensauflösung selbst in die Hand.

Warum Pi-hole? Das schwarze Loch für Werbung

Pi-hole ist ein DNS-basierter Werbeblocker. Im Gegensatz zu Browser-Plugins blockiert Pi-hole Werbung direkt bei der Anfrage. Wenn dein Smartphone oder dein Smart-TV versucht, eine Tracking-Domain aufzurufen, antwortet Pi-hole mit einer ungültigen Adresse (0.0.0.0). Die Werbung wird gar nicht erst geladen.

  • Werbe-Freiheit für alle: iPhones, Android-Tablets, Smart-TVs und sogar IoT-Geräte profitieren ohne zusätzliche Software.
  • Performance: Da blockierte Inhalte nicht heruntergeladen werden, bauen sich Webseiten spürbar schneller auf.
  • Privatsphäre: Telemetrie-Daten von Apps werden unterbunden, bevor sie den Server des Herstellers erreichen.

Warum zusätzlich Unbound? Die DNS-Souveränität

Pi-hole alleine ist ein hervorragender Filter, benötigt aber einen Upstream-DNS-Server, um unbekannte Adressen aufzulösen. Hier kommt Unbound ins Spiel. Unbound ist ein rekursiver DNS-Resolver. Anstatt deine Anfragen an 8.8.8.8 (Google) zu schicken, fragt Unbound direkt bei den Root-Servern des Internets nach.

Die Vorteile von Unbound:

  • Datenschutz: Kein externer DNS-Anbieter sieht mehr dein komplettes Surfverhalten.
  • Sicherheit: Unbound validiert Antworten via DNSSEC, was Man-in-the-Middle-Angriffe auf DNS-Ebene verhindert.
  • Lokaler Cache: Einmal aufgelöste Domains werden lokal gespeichert. Wiederholte Anfragen werden in Bruchteilen einer Millisekunde beantwortet.

Das Zusammenspiel sieht dann so aus: Geräte im LAN → Pi-hole (Filter) → Unbound (Resolver) → Internet Root-Server.

Proxmox-Setup: Warum eine dedizierte VM?

Ich betreibe Pi-hole und Unbound in einer eigenen Ubuntu Server VM auf meinem Proxmox-Host. Diese strikte Trennung von Diensten erlaubt es mir, Snapshots zu erstellen, bevor ich tiefgreifende Konfigurationsänderungen vornehme. Zudem kann die DNS-Infrastruktur im Notfall unabhängig von anderen Diensten wie meinem Webserver neu gestartet werden.

Docker-Infrastruktur: Port 8081 und saubere Netzwerke

Da auf meiner VM bereits ein Apache-Webserver läuft, der Port 80 belegt, musste ich Pi-hole umkonfigurieren. Intern nutzt Pi-hole weiter Port 80, aber nach außen mappe ich ihn auf 8081. So erreiche ich das Dashboard bequem unter http://192.168.178.5:8081/admin.

Pi-hole + Unbound im Docker: Der Netzwerk-Trick

Ein häufiger Fehler ist die Angabe von 127.0.0.1 als DNS-Server in Pi-hole, wenn Unbound in einem separaten Container läuft. Innerhalb von Docker bezieht sich 127.0.0.1 auf den jeweiligen Container selbst. Die saubere Lösung ist ein gemeinsames Docker-Netzwerk (Bridge), in dem Pi-hole Unbound direkt über den Servicenamen anspricht.

# Ausschnitt aus der docker-compose.yml
services:
  unbound:
    image: mvance/unbound:latest
    container_name: unbound
    networks:
      dns_net:
        ipv4_address: 172.20.0.2

  pihole:
    image: pihole/pihole:latest
    container_name: pihole
    environment:
      - FTLCONF_dns_upstreams=172.20.0.2#53
    depends_on:
      - unbound
    networks:
      dns_net:
        ipv4_address: 172.20.0.3

ApexCharts in Home Assistant: Visualisierung der Blockrate

Ein DNS-Server ist erst dann "smart", wenn man die Erfolge auch sieht. Über die Home Assistant Integration binde ich die Pi-hole Daten ein. Mit der apexcharts-card habe ich ein Dashboard erstellt, das mir die Blockrate grafisch aufbereitet.

Die mathematische Blockrate $B$ berechne ich in Echtzeit:

$$B = \frac{\text{Blockierte Anfragen}}{\text{Gesamtanfragen}} \times 100$$

In einem normalen Haushalt liegt dieser Wert oft bei beeindruckenden 25% bis 40% – ein klarer Beweis dafür, wie viel Tracking im Hintergrund stattfindet.

Schutz für unterwegs: WireGuard Integration

Um diesen Schutz auch im mobilen Netz oder in öffentlichen WLANs zu genießen, habe ich das System um ein VPN erweitert. Wie ich mein Smartphone per Split-Tunnel an den Pi-hole anbinde, erfährst du in meinem Beitrag über WireGuard & Pi-hole für unterwegs.

Fazit: DNS-Souveränität als Basis

Die Kombination aus Pi-hole und Unbound in einer Proxmox-VM ist die sicherste und performanteste Lösung für ein modernes Heimnetzwerk. Es ist ein "Set and Forget"-Projekt: Einmal eingerichtet, sorgt es Tag für Tag für ein saubereres Internet-Erlebnis. Es ergänzt meine weiteren Automatisierungen perfekt und bildet die Vertrauensbasis für mein digitales Zuhause.

Hast du Fragen zur unbound.conf oder brauchst Hilfe beim Docker-Routing? Schau dir mein Portfolio an oder schreib mir eine Nachricht über das Kontaktformular. Ich unterstütze dich gerne dabei, dein Netzwerk abzusichern!