Willkommen in der Welt der Heimnetzwerk-Optimierung! Wenn Sie diesen Artikel lesen, stehen Sie wahrscheinlich vor einem der frustrierendsten Szenarien, die ein Pi-hole-Nutzer erleben kann: Sie versuchen, sich über SSH mit Ihrem Gerät zu verbinden, auf dem Pi-hole läuft, und erhalten die Fehlermeldung „port 22: Connection refused„. Die Ironie dabei ist, dass Ihr Pi-hole, das eigentlich das Netzwerk von lästiger Werbung befreien soll, nun scheinbar seine eigene Konnektivität blockiert. Doch keine Sorge, dieses Problem ist zwar ärgerlich, aber in den meisten Fällen lösbar. Wir tauchen tief in die Ursachen ein und zeigen Ihnen Schritt für Schritt, wie Sie Ihr Pi-hole wieder zugänglich machen.
Was bedeutet „port 22: Connection refused” und warum tritt es auf?
Bevor wir uns der Lösung widmen, ist es wichtig, die genaue Bedeutung der Fehlermeldung zu verstehen. „Connection refused” (Verbindung verweigert) ist keine Timeout-Meldung. Ein Timeout würde bedeuten, dass die Anfrage gesendet wurde, aber nie eine Antwort vom Zielgerät erhalten wurde. „Connection refused” hingegen besagt, dass Ihr Computer erfolgreich Kontakt mit dem Pi-hole-Gerät aufnehmen konnte, aber das Gerät die Verbindung auf Port 22 (dem Standard-Port für SSH) aktiv abgelehnt hat. Das ist ein entscheidender Unterschied, denn es schließt einige Ursachen aus und deutet auf andere hin.
Die häufigsten Gründe für eine verweigerte SSH-Verbindung sind:
- Der SSH-Server (
sshd
-Dienst) läuft auf dem Pi-hole-Gerät nicht. - Eine Firewall auf dem Pi-hole-Gerät blockiert eingehende Verbindungen auf Port 22.
- Die SSH-Server-Konfiguration (
sshd_config
) ist fehlerhaft oder schränkt den Zugriff ein. - Selten, aber möglich: Netzwerkprobleme auf dem Gerät selbst, die den Dienststart verhindern oder die Netzwerkschnittstelle blockieren.
Die Annahme, dass Pi-hole sich selbst blockiert, ist oft eine erste Reaktion, aber selten die direkte Ursache für „Connection refused” auf Port 22. Pi-hole ist primär ein DNS-Server und blockiert Anfragen basierend auf Domänennamen. Es interagiert nicht direkt mit der TCP/IP-Schicht oder der Firewall, um Ports zu schließen. Es kann jedoch indirekt zu Problemen führen, wenn es als DHCP-Server agiert oder seine eigene DNS-Auflösung für Systemdienste beeinträchtigt wird.
Erste Schritte zur Diagnose: Bevor Sie Panik bekommen
Bevor wir uns an die tiefergehende Fehlersuche machen, überprüfen Sie die offensichtlichen Dinge. Manchmal ist die Lösung einfacher als gedacht:
- Ist das Gerät eingeschaltet? Ein lächerlicher Punkt, aber stellen Sie sicher, dass Ihr Raspberry Pi (oder welches Gerät auch immer Pi-hole hostet) tatsächlich mit Strom versorgt wird und hochgefahren ist.
- Netzwerkkabel prüfen: Ist das Ethernet-Kabel (falls verwendet) richtig angeschlossen? Leuchten die LEDs am Netzwerkport?
- WLAN-Verbindung prüfen: Wenn Sie WLAN nutzen, stellen Sie sicher, dass das Gerät mit dem richtigen Netzwerk verbunden ist und eine IP-Adresse hat.
- IP-Adresse des Pi-hole: Haben Sie die korrekte IP-Adresse des Pi-hole-Geräts? Überprüfen Sie dies in Ihrem Router oder über eine App wie Fing im Netzwerk. Ein häufiger Fehler ist, eine alte oder falsche IP-Adresse zu verwenden.
- Ping-Test: Versuchen Sie von Ihrem Computer aus, das Pi-hole-Gerät anzupingen:
ping [IP_Adresse_des_Pi-hole]
. Wenn der Ping erfolgreich ist, wissen Sie, dass das Gerät im Netzwerk erreichbar ist, und das Problem liegt definitiv beim SSH-Dienst oder der Firewall. Wenn nicht, haben Sie ein grundlegenderes Netzwerkproblem.
Der Königsweg: Direkter Zugang zum Pi-hole
Wenn Sie keinen SSH-Zugang haben und die oben genannten Checks kein Licht ins Dunkel gebracht haben, ist der direkteste Weg zur Lösung, das Pi-hole-Gerät physisch anzuschließen. Das bedeutet in der Regel, einen Monitor, eine Tastatur und eine Maus (falls benötigt) direkt an das Gerät anzuschließen. Dies verschafft Ihnen vollen Zugriff auf die Kommandozeile, was für die Diagnose unerlässlich ist.
Sobald Sie direkt am Gerät angemeldet sind, können Sie die folgenden Befehle ausführen:
1. SSH-Server-Status überprüfen
Der wichtigste Schritt ist zu prüfen, ob der SSH-Daemon (sshd
) überhaupt läuft. „Connection refused” tritt am häufigsten auf, wenn dieser Dienst nicht aktiv ist.
sudo systemctl status sshd
Die Ausgabe sollte Ihnen den Status des Dienstes anzeigen. Suchen Sie nach „Active: active (running)”. Wenn dort „inactive (dead)” oder „failed” steht, ist das Ihr Problem. Um den Dienst zu starten, verwenden Sie:
sudo systemctl start sshd
Um sicherzustellen, dass er nach einem Neustart des Geräts automatisch startet, aktivieren Sie ihn:
sudo systemctl enable sshd
2. Firewall-Regeln überprüfen
Eine falsch konfigurierte Firewall ist der zweithäufigste Grund für „Connection refused”. Viele Linux-Distributionen, insbesondere auf einem Raspberry Pi, verwenden UFW (Uncomplicated Firewall) oder iptables.
a) UFW überprüfen (falls installiert und aktiv)
sudo ufw status verbose
Suchen Sie in der Ausgabe nach Regeln, die den Zugriff auf Port 22 blockieren. Wenn UFW aktiv ist und Port 22 nicht explizit erlaubt ist, müssen Sie dies tun:
sudo ufw allow ssh
Oder spezifischer, wenn Sie den Port geändert haben:
sudo ufw allow 22/tcp
Wenn Sie UFW deaktivieren möchten, um zu testen, ob es die Ursache ist:
sudo ufw disable
Vergessen Sie nicht, UFW danach wieder zu aktivieren und die SSH-Regeln hinzuzufügen!
b) iptables überprüfen (wenn UFW nicht verwendet wird)
Die direkten iptables-Regeln sind komplexer. Eine schnelle Überprüfung der aktuellen Regeln:
sudo iptables -L -v -n
Suchen Sie in der Kette INPUT
nach Regeln, die Verbindungen auf Port 22 erlauben oder blockieren. Eine Regel wie REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
ohne eine vorhergehende ACCEPT
-Regel für Port 22 würde SSH blockieren. Das Hinzufügen einer Regel zum Erlauben von SSH von überall:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
Beachten Sie, dass iptables
-Regeln nach einem Neustart verschwinden, es sei denn, sie werden persistent gespeichert (z.B. mit iptables-persistent
).
3. SSH-Server-Konfiguration überprüfen
Die Konfigurationsdatei für den SSH-Server ist /etc/ssh/sshd_config
. Öffnen Sie sie mit einem Texteditor:
sudo nano /etc/ssh/sshd_config
Achten Sie auf folgende Zeilen:
Port 22
: Stellt sicher, dass der SSH-Server auf dem Standardport lauscht. Wenn dies geändert wurde, müssen Sie auch beim Verbindungsversuch den geänderten Port angeben.ListenAddress
: Wenn hier eine spezifische IP-Adresse steht und diese nicht der aktuellen IP des Pi-hole-Geräts entspricht (z.B. nach einer Änderung), kann der Server keine Verbindungen empfangen. Kommentieren Sie diese Zeile aus (#ListenAddress
) oder stellen Sie sicher, dass sie korrekt ist.PermitRootLogin
: Steuert, ob sich der Root-Benutzer direkt anmelden darf (standardmäßig oft aufprohibit-password
oderno
gesetzt – aus Sicherheitsgründen empfohlen). Dies sollte nicht verhindern, dass sich normale Benutzer anmelden.PasswordAuthentication
: Wenn dies aufno
gesetzt ist und Sie versuchen, sich mit einem Passwort anzumelden (anstatt mit SSH-Schlüsseln), wird die Verbindung verweigert.
Nach Änderungen an sshd_config
müssen Sie den SSH-Dienst neu starten:
sudo systemctl restart sshd
4. Netzwerkkonfiguration des Pi-hole-Geräts
Stellen Sie sicher, dass Ihr Pi-hole eine gültige IP-Adresse hat und ordnungsgemäß mit dem Netzwerk verbunden ist.
ip a show
Überprüfen Sie, ob die Netzwerkschnittstelle (z.B. eth0
oder wlan0
) eine IP-Adresse im erwarteten Bereich hat. Ist die IP-Adresse statisch konfiguriert oder über DHCP bezogen? Stellen Sie sicher, dass die IP-Adresse, mit der Sie versuchen, sich zu verbinden, mit der tatsächlich zugewiesenen Adresse übereinstimmt.
ip r show
Dieser Befehl zeigt die Routing-Tabelle. Stellen Sie sicher, dass ein Standard-Gateway konfiguriert ist, das auf Ihren Router zeigt.
5. Wie Pi-hole indirekt Probleme verursachen könnte (und wie man es behebt)
Wie bereits erwähnt, ist Pi-hole selten die direkte Ursache für eine „Connection refused”-Meldung auf Port 22. Es gibt jedoch Szenarien, in denen Pi-hole indirekt zu Problemen führen könnte:
- Pi-hole als DHCP-Server: Wenn Ihr Pi-hole auch als DHCP-Server in Ihrem Netzwerk fungiert und es hier zu einer Fehlkonfiguration kommt (z.B. doppelte IP-Vergaben oder falsche Gateway-Informationen), könnte dies die Netzwerkkommunikation auf dem Pi-hole-Gerät selbst beeinträchtigen. Überprüfen Sie die DHCP-Einstellungen im Pi-hole Admin-Panel (sofern zugänglich) oder in der Datei
/etc/dnsmasq.d/04-pihole-dhcp.conf
. Im Zweifelsfall deaktivieren Sie den DHCP-Server im Pi-hole und lassen Sie Ihren Router diese Aufgabe übernehmen, um dies als Fehlerquelle auszuschließen. - Fehlende DNS-Auflösung auf dem Pi-hole selbst: Wenn das Pi-hole-Gerät nicht in der Lage ist, Domänennamen korrekt aufzulösen (z.B. für System-Updates oder die Zeit-Synchronisierung), könnte dies potenziell den Start oder die Funktion von Diensten wie
sshd
beeinträchtigen, wenn diese auf externe Ressourcen angewiesen sind. Überprüfen Sie die Datei/etc/resolv.conf
auf dem Pi-hole. Steht dort127.0.0.1
(also Pi-hole selbst)? Das ist normal. Falls das Pi-hole aber Probleme mit seiner eigenen DNS-Auflösung hat, könnte es zu Update-Problemen kommen, die z.B. einen älteren, fehlerhaftenopenssh-server
nicht aktualisieren lassen. Um dies zu testen, können Sie temporär Google DNS (8.8.8.8
) oder Cloudflare DNS (1.1.1.1
) in/etc/resolv.conf
eintragen (wird meistens nach Neustart überschrieben). - Unwahrscheinliches Szenario: Blocklisten-Konflikte: Es ist extrem unwahrscheinlich, dass eine Pi-hole-Blockliste interne IP-Adressen oder Domains blockiert, die für SSH benötigt werden. Dies würde sich auch eher als Timeout als als „Connection refused” äußern. Dennoch, wenn Sie sehr aggressive oder benutzerdefinierte Blocklisten verwenden, könnten Sie diese temporär deaktivieren (
pihole disable
), um dies als Ursache auszuschließen. Dies können Sie direkt auf dem Gerät tun.
6. Überprüfung der Systemprotokolle
Die Systemprotokolle können wertvolle Hinweise liefern, warum ein Dienst nicht startet oder eine Verbindung abgelehnt wird.
sudo journalctl -u sshd --since "1 hour ago"
Dieser Befehl zeigt die letzten Protokolleinträge des SSH-Dienstes. Suchen Sie nach Fehlern oder Warnungen. Auch die allgemeinen Systemprotokolle sind hilfreich:
sudo tail -f /var/log/syslog
Starten Sie in einem anderen Fenster den SSH-Verbindungsversuch und beobachten Sie die Protokolle. Vielleicht sehen Sie dort eine Meldung, die auf die Ursache hindeutet.
Was tun, wenn kein direkter Zugang möglich ist (Notfallszenarien)?
Manchmal befindet sich das Pi-hole an einem entlegenen Ort, und ein direkter Zugang mit Monitor/Tastatur ist schwierig. In solchen Notfällen bleiben Ihnen nur wenige Optionen:
- Neustart des Geräts: Manchmal löst ein einfacher Neustart des Raspberry Pi (oder welches Gerät auch immer Pi-hole hostet) das Problem, wenn es sich um einen vorübergehenden Dienstausfall handelt. Dies können Sie tun, indem Sie kurz die Stromversorgung unterbrechen und wiederherstellen. Achtung: Dies ist keine empfohlene Methode, da es zu Dateisystembeschädigungen führen kann! Nur im äußersten Notfall anwenden. Besser wäre ein Neustart über die Weboberfläche, falls diese noch erreichbar ist, oder ein Power-Cycle über eine smarte Steckdose, falls vorhanden.
- Temporäre Änderung des Client-DNS: Wenn Sie vermuten, dass Pi-hole selbst Ihre DNS-Anfragen blockiert (was selten „Connection refused” verursacht, aber für andere Probleme relevant ist), können Sie auf dem Computer, von dem aus Sie sich verbinden wollen, temporär einen externen DNS-Server (z.B.
8.8.8.8
oder1.1.1.1
) einstellen. Versuchen Sie dann erneut, sich per SSH zu verbinden. Wenn es dann funktioniert, wissen Sie, dass Pi-hole zumindest etwas mit der Namensauflösung durcheinanderbringt. Da Sie aber eine IP-Adresse verwenden, ist dies für „Connection refused” meist irrelevant. - Serielle Konsole (fortgeschritten): Für Raspberry Pis gibt es die Möglichkeit, sich über einen USB-zu-TTL-Serielladapter und die GPIO-Pins des Pi direkt mit der Konsole zu verbinden. Dies erfordert spezielle Hardware und technisches Wissen, bietet aber einen direkten Zugang zur Kommandozeile, selbst wenn das Netzwerk oder SSH nicht funktioniert.
Prävention ist der beste Schutz
Um zukünftige Probleme dieser Art zu vermeiden, können Sie einige bewährte Praktiken anwenden:
- Statische IP-Adresse: Weisen Sie Ihrem Pi-hole im Router eine statische IP-Adresse zu. So ist es immer unter derselben Adresse erreichbar.
- Firewall korrekt konfigurieren: Konfigurieren Sie die Firewall auf Ihrem Pi-hole-Gerät von Anfang an korrekt, um SSH (Port 22) für Ihr lokales Netzwerk zu erlauben, aber nicht unbedingt aus dem Internet (es sei denn, Sie wissen, was Sie tun und haben es entsprechend abgesichert).
- SSH-Schlüssel verwenden: Verwenden Sie SSH-Schlüssel anstelle von Passwörtern für die Authentifizierung. Dies erhöht die Sicherheit erheblich.
- Regelmäßige Updates: Halten Sie Ihr Betriebssystem und den SSH-Server (
sudo apt update && sudo apt upgrade
) auf dem neuesten Stand. Sicherheitsupdates beheben oft Fehler und verbessern die Stabilität. - Backups: Erstellen Sie regelmäßig Backups Ihrer Pi-hole-Konfiguration und des gesamten SD-Karten-Images. Im Ernstfall können Sie so schnell wieder online sein.
- Dokumentation: Dokumentieren Sie Ihre Konfigurationsänderungen, insbesondere an der Firewall oder am SSH-Server.
Fazit
Die Fehlermeldung „port 22: Connection refused” deutet fast immer auf ein Problem mit dem SSH-Server selbst oder einer Firewall auf dem Pi-hole-Gerät hin. Die Vorstellung, dass Pi-hole sich selbst blockiert, ist zwar nachvollziehbar, aber selten die direkte Ursache für diesen spezifischen Fehler. Mit direktem Zugang zum Gerät und einer systematischen Überprüfung des SSH-Dienststatus, der Firewall-Regeln und der SSH-Konfiguration lässt sich das Problem in den meisten Fällen schnell und effektiv beheben. Bewahren Sie Ruhe, gehen Sie die Schritte methodisch durch, und Ihr Pi-hole wird bald wieder reibungslos funktionieren und Ihr Netzwerk werbefrei halten.