
Chrome zeigt „Diese Seite ist nicht erreichbar“ bei mindestens sechs verschiedenen Fehlern an, und diese haben kaum etwas gemeinsam außer der Reihenfolge, in der sie auftreten. Einer bedeutet, dass der Name nicht existiert. Einer bedeutet, dass die Maschine geantwortet und dann aufgelegt hat. Einer bedeutet, dass das WLAN Ihres Besuchers ausgefallen ist.
Der Satz ist immer derselbe, weil es das Einzige ist, was der Browser ehrlich über eine Seite sagen kann, die er nie erhalten hat. Was sie unterscheidet, ist der kleine graue Code darunter, und dieser Code ist die gesamte Diagnose.
Die Reihenfolge, in der die Dinge geschehen
Das Laden einer Seite durchläuft vier Schritte, und jeder davon hat seine eigene Art zu scheitern. Die Codes in dieser Reihenfolge zu lesen ist es, was sie verständlich macht.
1. Die Adresse finden. Der Browser fragt einen Resolver, auf welche IP der Hostname verweist.
2. Eine Verbindung öffnen. Er versucht, diese IP über diesen Port zu erreichen.
3. Sie absichern. Bei HTTPS validiert er ein Zertifikat.
4. Die Seite anfordern. Er sendet die Anfrage und wartet auf eine Antwort.
Ein Fehler bei Schritt eins kann nicht an Ihrem Server liegen, weil ihn noch nichts erreicht hat. Ein Fehler bei Schritt vier liegt fast sicher an Ihrem Server. Der Code sagt Ihnen, bis zu welchem Schritt Sie gekommen sind, und das ist mehr wert als jede noch so ausführliche Beschreibung des Symptoms.
Die Codes, in dieser Reihenfolge
DNS_PROBE_FINISHED_NXDOMAIN und ERR_NAME_NOT_RESOLVED gehören zu Schritt eins.
Chromiums eigene Beschreibung des zweiten lautet „Der Hostname konnte nicht aufgelöst werden.“ Der
Name existiert nicht, jedenfalls nicht aus Sicht des Resolvers, der geantwortet hat. Verwandt und
spezifischer ist ERR_NAME_RESOLUTION_FAILED, „Bei dem Versuch einer Namensauflösung (DNS) ist ein
Fehler aufgetreten“, bei dem die Abfrage selbst fehlschlägt, statt leer zurückzukommen.
Ein Tippfehler erzeugt das. Ebenso ein DNS-Eintrag, der sich noch nicht verbreitet hat, eine Domain, die am Wochenende abgelaufen ist, oder ein DNS-Filter im Unternehmen oder bei den Eltern, der für Ihre Domain keine Antwort liefert. Letzteres wiegt schwerer, als es klingt: Für die betroffene Person existiert Ihre Seite schlicht nicht, während sie bei Ihnen einwandfrei funktioniert.
ERR_CONNECTION_REFUSED gehört zu Schritt zwei und ist der aufschlussreichste Fehler in dieser
Liste. Etwas hat geantwortet. Eine Maschine an dieser Adresse hat aktiv abgelehnt, das heißt, DNS
hat funktioniert, die Route hat funktioniert, und ein Host ist vorhanden, nur hört dort niemand auf
diesem Port. Ein falscher Port, ein Dienst, der abgestürzt ist, ein Container, der nach einem
Deploy nicht wieder hochgekommen ist.
ERR_CONNECTION_TIMED_OUT ist Schritt zwei, der stillschweigend scheitert: „Ein
Verbindungsversuch hat das Zeitlimit überschritten.“ Niemand hat Nein gesagt, und niemand hat Ja
gesagt. Eine Firewall, die Pakete verwirft statt sie abzulehnen, sieht genau so aus, ebenso ein
Server, der zu ausgelastet ist, um anzunehmen.
ERR_ADDRESS_UNREACHABLE ist eine Routing-Frage: „Die IP-Adresse ist nicht erreichbar. Das
bedeutet in der Regel, dass es keine Route zum angegebenen Host oder Netzwerk gibt.“ Die Pakete
haben schlicht kein Ziel, zu dem sie gelangen können.
ERR_INTERNET_DISCONNECTED bedeutet „Die Internetverbindung wurde unterbrochen“, und das ist
der Fall, bei dem Sie die Untersuchung sofort einstellen können. Es ist das Netzwerk des Besuchers
selbst, und kein darauf gestützter Bericht sagt Ihnen irgendetwas über Ihre Seite.
ERR_EMPTY_RESPONSE gehört zu Schritt vier: „Der Server hat die Verbindung geschlossen, ohne
Daten zu senden.“ Dieser Fall liegt meist bei Ihnen. Etwas hat die Verbindung angenommen und ist
dann verschwunden, ohne zu antworten: ein Prozess, der mitten in der Anfrage abgestürzt ist, ein
Proxy, der aufgegeben hat, ein Worker, der wegen Speichermangels beendet wurde.
Zertifikatsfehler gehören ebenfalls zu Schritt drei, bekommen aber einen eigenen Bildschirm statt
diesen hier.
Welcher der fünf bei Ihnen vorliegt, ist eine eigene Frage,
und die ERR_CONNECTION_*-Familie hat
einen eigenen Artikel
mit der ausführlichen Unterscheidung zwischen refused und reset.
- Schwach
- Kunde sagt, die Seite sei down. Sieht von hier aus gut aus. Bat sie, ihren Cache zu leeren.
- Besser
- DNS_PROBE_FINISHED_NXDOMAIN, nur im Firmennetzwerk, funktioniert über mobile Daten. Ihr DNS-Filter, nicht unser Server. Bestätigt: Der Eintrag löst über drei öffentliche Resolver auf.
Welche Hälfte der Liste überhaupt Ihre ist
Sortiert man sie danach, wer sie beheben kann, teilt sich die Liste fast gleichmäßig, und genau das macht sie nützlich.
Meist ihre Seite: die DNS-Fehler, wenn sie lokal gefiltert oder gecacht sind, die unterbrochene Internetverbindung, die nicht erreichbare Adresse und ein Timeout, der durch ihr Netzwerk verursacht wird statt durch Ihre Last.
Meist Ihre Seite: die abgelehnte Verbindung, die leere Antwort und ein Timeout, wenn Ihre Server tatsächlich überlastet sind.
Wirklich unklar, und deshalb zuerst zu prüfen: Ein DNS-Fehler, der sich über einen öffentlichen Resolver reproduzieren lässt, ist Ihr Eintrag, nicht ihr Netzwerk. Diese Prüfung dauert zehn Sekunden und klärt die größte Kategorie der Liste. Auf jeder beliebigen Maschine:
nslookup example.com 1.1.1.1
nslookup example.com 8.8.8.8
Antworten beide mit Ihrer IP und der Besucher bekommt trotzdem NXDOMAIN, liegt das Problem zwischen ihm und seinem Resolver. Antwortet keiner der beiden, liegt es an Ihrem Eintrag, und die Uhr dafür läuft seit der letzten Änderung.
Session Replay
Kostenlose Chrome-Erweiterung. Ein Klick auf die Seite, die Probleme macht, erfasst den Screenshot, die Konsole und das Netzwerkprotokoll und gibt Ihnen einen Link, den Sie in das Ticket einfügen können.
Das eigentliche Problem: die Meldung
Jeder der obigen Codes erscheint auf einer Seite, die der Browser selbst erzeugt hat. Ihre Seite lief nie. Es gibt keine Konsole, keinen Eintrag im Netzwerk-Tab, keinen Fehler, den Ihr Tracker abfangen könnte, und nichts, was ein Tool innerhalb der Seite aufzeichnen könnte, auch unseres nicht.
Diese ganze Kategorie erreicht Sie also nur, wenn jemand sie Ihnen meldet, und diese Meldung wird schlecht ausfallen, denn es gibt auf dem Bildschirm nichts zu kopieren außer einem Satz und einem Code, von dem niemand annimmt, dass er wichtig sein könnte. Die meisten dieser Meldungen kommen als „Ihre Seite ist down“ von jemandem, für den das gerade tatsächlich zutrifft.
Das macht die Rückfrage ungewöhnlich wertvoll und ungewöhnlich einfach. Nicht „Bitte mit offener Konsole reproduzieren“, was hier gar nicht geht. Stattdessen drei Dinge:
- Den Code, vollständig, aus dem kleinen grauen Text unter der Meldung.
- Ob es auf einem anderen Netzwerk auftritt, mobile Daten sind der einfachste Test.
- Ob sonst noch jemand die Seite erreicht, das trennt in einer einzigen Nachricht einen globalen Ausfall vom Resolver einer einzelnen Person.
Mit drei Antworten wissen Sie meist schon, welcher der vier Schritte fehlgeschlagen ist, bevor Sie überhaupt einen Server angesehen haben. Liegt der Fehler bei Ihnen oder beim Ausfall des anderen behandelt dieselbe Überlegung für Dienste, die zwar laufen, aber beeinträchtigt sind.
Was Sie daraus mitnehmen sollten
„Diese Seite ist nicht erreichbar“ ist eine Kategorie, keine Diagnose, und die sechs Fehler darin verteilen sich ungefähr gleichmäßig auf das, was Sie beheben können, und das, was Sie nicht beheben können.
Lesen Sie den Code, ermitteln Sie, zu welchem der vier Schritte er gehört, und prüfen Sie DNS über einen öffentlichen Resolver, bevor Sie irgendetwas anderes glauben. Und wenn Sie es nicht reproduzieren können, denken Sie daran: Eine nicht erreichbare Seite ist genau der Fehler, bei dem Ihre eigene Maschine das am wenigsten brauchbare Instrument ist, das Sie besitzen, Ihre löst auf, verbindet sich und funktioniert.
Chromiums Liste dieser Fehler, mit der einzeiligen Definition zu jedem, findet sich unter net_error_list.h.