ERR_CONNECTION_REFUSED: Ursachen und Lösung
· 6 Min. Lesezeit
Was der Fehler bedeutet
Der Browser hat die Adresse des Servers gefunden, eine Verbindungsanfrage an Port 443 (oder 80) geschickt, und der Server hat mit „Nein“ geantwortet: einem TCP-Reset, den das Betriebssystem schickt, wenn auf dem Port kein Programm lauscht. Chrome zeigt ERR_CONNECTION_REFUSED („Diese Website ist nicht erreichbar“), Firefox „Verbindung fehlgeschlagen“, Safari „Safari kann keine Verbindung zum Server herstellen“.
Das ist etwas anderes als ein Timeout (gar keine Antwort, meist eine Firewall, die Pakete verwirft, oder ein ausgeschalteter Server) und als DNS_PROBE_FINISHED_NXDOMAIN (der Name löst nicht auf). Eine verweigerte Verbindung heißt: Die Maschine läuft und ist erreichbar, aber der Webserver darauf läuft nicht, lauscht auf einem anderen Port oder einer anderen Adresse, oder eine Firewall weist ab statt zu verwerfen.
Häufige Ursachen
- Der Webserver ist gestoppt. nginx oder Apache ist abgestürzt, nach einer Konfigurationsänderung nicht mehr gestartet oder von einem Update beendet worden. Mit Abstand die häufigste Ursache.
- Der Webserver lauscht auf der falschen Adresse oder dem falschen Port. Nach einer Änderung der
listen-Zeilen bindet nginx nur an127.0.0.1oder nur an IPv4, während der DNS-Eintrag auf eine IPv6-Adresse zeigt. - Eine Firewall weist den Port ab.
ufw,firewalldoder eine Cloud-Sicherheitsgruppe mit einerreject-Regel für 80/443, oft nachdem jemand den Server „abgehärtet“ hat. - Ein neuer Server ohne Webserver. Der DNS-Eintrag zeigt schon auf die neue IP, aber nginx ist noch nicht installiert oder gestartet.
- HTTPS nicht eingerichtet. Port 80 funktioniert, auf 443 lauscht nichts, und der Browser (oder ein HSTS-Eintrag) besteht auf HTTPS.
- Lokale Ursachen beim Besucher. Eine Proxy-Einstellung auf einen toten Proxy, ein VPN, ein Antivirus-„Web-Schutz“, ein Eintrag in der hosts-Datei oder eine Browser-Erweiterung.
Wenn du Besucher bist
- Probier die Website im privaten Fenster und in einem anderen Browser; das schließt Erweiterungen und Cache aus.
- Prüf die Proxy-Einstellungen: Windows „Proxyeinstellungen“, macOS Netzwerk > Weitere Optionen > Proxies. Schalte einen manuellen Proxy ab, den du nicht nutzt.
- Schalte VPN und Antivirus-Web-Schutz kurz aus.
- Leer den DNS-Cache (
ipconfig /flushdns,sudo dscacheutil -flushcache), falls dein Cache noch die alte Adresse einer umgezogenen Website hält. - Probier einmal
http://statthttps://; klappt das, ist das HTTPS der Website kaputt, und der Betreiber muss es beheben.
Wenn es deine Website ist: zuerst prüfen
Lass den Website-Down-Checker laufen. „Verbindung verweigert“ von außen bestätigt, dass der Server selbst abweist. Dann per SSH anmelden (dass SSH geht, während die Website verweigert, ist selbst schon ein starker Hinweis: Der Server läuft, der Webserver nicht).
# läuft der Webserver?
systemctl status nginx
systemctl status apache2
# was lauscht auf 80 und 443?
sudo ss -tlnp | grep -E ':80 |:443 '
# Firewall-Regeln
sudo ufw status verbose
sudo firewall-cmd --list-all
sudo nft list ruleset | grep -E 'dport (80|443)'
Zeigt ss nichts auf 443, ist der Webserver gestoppt oder nicht dafür konfiguriert. Zeigt es 127.0.0.1:443 statt 0.0.0.0:443 oder *:443, lauscht er nur lokal.
Lösungen auf deinem eigenen Server
1. Webserver starten, und lesen, warum er stand
sudo systemctl start nginx
systemctl status nginx
sudo journalctl -u nginx -n 50
Startet er nicht, ist es fast immer einer dieser Gründe:
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use): Ein anderes Programm hält den Port (Apache und nginx beide installiert, oder ein alter Prozess).sudo ss -tlnp | grep :80nennt ihn; stopp den, den du nicht willst.[emerg] unknown directiveoderunexpected "}": ein Syntaxfehler in einer Konfigurationsdatei.sudo nginx -tnennt Datei und Zeile.cannot load certificate: Eine Zertifikatsdatei wurde gelöscht oder in einen anderen Pfad erneuert. Vergleich diessl_certificate-Zeilen mit dem, was auf der Platte liegt.Too many open filesoder eine volle Festplatte:df -h,df -i.
Apache: sudo apachectl configtest, dann sudo journalctl -u apache2 -n 50. Dieselben Kategorien gelten; AH00558 (could not determine server name) ist nur eine Warnung, nicht die Ursache.
Immer erst testen, dann neu laden, und wenn möglich neu laden statt neu starten:
sudo nginx -t && sudo systemctl reload nginx
sudo apachectl configtest && sudo systemctl reload apache2
2. Auf der richtigen Adresse lauschen
Im nginx-Server-Block braucht es für IPv4 und IPv6 beides:
listen 80;
listen [::]:80;
listen 443 ssl;
listen [::]:443 ssl;
Hat das DNS einen AAAA-Eintrag, der Server lauscht aber nicht auf IPv6 (oder hat keine IPv6-Anbindung), bekommen Besucher über IPv6 eine verweigerte Verbindung, während alle anderen keine Probleme haben. Entweder lauschen lassen oder den AAAA-Eintrag entfernen.
3. Firewall öffnen
# ufw (Debian/Ubuntu)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# firewalld (RHEL-Familie)
sudo firewall-cmd --permanent --add-service=http --add-service=https
sudo firewall-cmd --reload
Auf einem Cloud-Server auch die Sicherheitsgruppe oder Netzwerk-Firewall des Anbieters im Kundenbereich prüfen; eine Regel dort ist vom Server aus unsichtbar.
4. HTTPS einrichten, wenn nur Port 80 antwortet
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d example.com -d www.example.com
Certbot ergänzt den 443-Server-Block und die Weiterleitung. Prüf danach mit dem SSL Checker, ob die Kette vollständig ist.
5. Nach einem Serverumzug
Stell sicher, dass der Webserver auf der neuen Maschine installiert, für die Domain konfiguriert und gestartet ist, bevor du das DNS änderst. Hast du es schon geändert: Installier und starte ihn jetzt, oder zeig den Eintrag auf den alten Server zurück, bis der neue bereit ist.
Wenn es ein Problem deines Hosters ist
Im Shared Hosting heißt eine verweigerte Verbindung: Der Webserver des Hosters ist auf deinem Knoten down, oder er hat dich auf eine neue IP umgezogen, ohne das DNS nachzuziehen. Schick:
Guten Tag, meine Website example.com liefert seit etwa 20:15 Uhr (UTC) auf den Ports 80 und 443 „Verbindung verweigert“. Die Domain löst auf 203.0.113.10 auf. Ich habe in meinem Konto nichts geändert. Ist der Webserver auf dieser Maschine ausgefallen, oder ist meine Website auf eine andere Adresse umgezogen?
Damit es nicht wieder passiert
Eine verweigerte Verbindung ist fast immer ein gestoppter Webserver, und ein gestoppter Dienst ist genau das, was eine Port-Prüfung und eine Website-Prüfung von außen binnen einer Minute merken. Auf deinem eigenen Server alarmiert dich der Server-Agent, wenn nginx oder Apache stoppt, und der Schnelleingriff startet ihn neu, wenn sein Konfigurationstest besteht, zum Festpreis, ohne dass sich um drei Uhr nachts jemand anmelden muss. Ist die Konfiguration selbst kaputt, repariert sie der Intensiveingriff.
Und jetzt
Von außen prüfen
Ist die Website für alle down oder nur für dich, und was antwortet der Server? Kostenlos, ohne Anmeldung.
Website-Down-CheckerAusgefallen? Wir greifen ein.
Auf deinem eigenen Server oder im Webspace mit SSH-Zugang: Schnelleingriff zum Festpreis bei den häufigen Ursachen, Intensiveingriff im 15-Minuten-Takt bei allem anderen, rund um die Uhr. Preis vor dem Auftrag.
Reparieren lassenWeitere Ratgeber
- Website nicht erreichbar: was du in den ersten 15 Minuten tust
- Server down oder nicht erreichbar: was du zuerst prüfst
- 502 Bad Gateway: Ursache finden und beheben
- 503 Service Unavailable: überlastet oder in Wartung?
- 504 Gateway Timeout: Bedeutung und Lösung
- DNS_PROBE_FINISHED_NXDOMAIN: Ursachen und Lösung
- „Ihre Verbindung ist nicht privat“: die Zertifikatswarnung