Abgelehnt oder Zeitüberschreitung
Lektion 18 von 47 im Kurs Netzwerken mit dem Terminal von Coddy.
Wenn eine Verbindung fehlschlägt, geschieht das auf eine von wenigen spezifischen Arten, und jede davon weist in eine andere Richtung. curl meldet anhand seines Exit-Codes, welcher Fall vorliegt – der Zahl, die ein Befehl hinterlässt und die als $? lesbar ist.
curl -s http://127.0.0.1:9999/
echo $?Drei davon solltest du dir merken:
- 0: Erfolg
- 7: Verbindung abgelehnt; der Rechner hat geantwortet und mitgeteilt, dass dort nichts lauscht
- 28: Zeitüberschreitung; es hat überhaupt nichts geantwortet
7 ist schnell und 28 ist langsam, und genau dieser Unterschied liefert die Diagnose. „Abgelehnt“ bedeutet, dass du den Rechner erreicht und ein klares Nein erhalten hast; die Adresse ist also korrekt und der Dienst läuft nicht. Eine Zeitüberschreitung bedeutet, dass deine Anfrage verschwunden ist, was normalerweise heißt, dass eine Firewall sie verworfen hat oder die Adresse falsch ist.
Aufgabe
SchwerLass beide Fehler auftreten und lies die Codes ab.
- Fordere mit
http://127.0.0.1:9999/eine Seite an, an der nichts lauscht, und gibrefused=gefolgt vom Exit-Code aus - Tue dasselbe mit
http://10.255.255.1/, einer Adresse, die den Datenverkehr verschluckt, mit--max-time 2, und gibtimeout=und ihren Exit-Code aus
Erwartete Ausgabe:
refused=7
timeout=28
$?enthält den Exit-Code des gerade ausgeführten Befehls, lies ihn daher sofort aus.
Probier es selbst
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Netzwerken mit dem Terminal
4Ist es erreichbar?
ICMP und pingPing-Ausgabe lesenWenn Ping lügtAbgelehnt oder ZeitüberschreitungRückblick: Erreichbarkeit2Namen und DNS
Warum Namen existierenDie Hosts-DateiEinen Namen nachschlagenRecord-TypenRückblick: NamenÜbe selbstständig: Terminal-Playground