Netzwerk-Fehlerbehebung: ping, traceroute, mtr, dig und curl

Linux 4 Min. Lesezeit

Wenn eine Website oder ein Server nicht erreichbar ist, langsam läuft oder nur von bestimmten Standorten aus nicht funktioniert, lässt sich mithilfe einiger Befehle schnell feststellen, wo der Fehler liegt: bei der Namensauflösung (DNS), irgendwo im Netzwerk oder direkt auf dem Server. Die Befehle werden unter Linux und macOS im Terminal ausgeführt; die entsprechenden Befehle für Windows sind gesondert gekennzeichnet.

ping: Ist der Rechner erreichbar?

ping -c 10 example.hu

Nach -c 10-Paketen wird die Messung beendet (unter Windows sendet der ping-Befehl standardmäßig vier Pakete). Aus der zusammenfassenden Zeile lassen sich der packet loss und die Antwortzeit ablesen.

  • Wenn der Ping antwortet, ist der Rechner im Netzwerk erreichbar.
  • Wenn keine Antwort erfolgt, bedeutet dies nicht zwangsläufig, dass der Server nicht funktioniert: Die Firewalls vieler Server blockieren Ping-Pakete (ICMP). Überprüfen Sie in diesem Fall den Dienst mit dem unten angegebenen curl- oder nc-Befehl.

dig: Verweist die Domain auf eine gültige IP-Adresse?

Nach einem Domainumzug oder einem Wechsel der Nameserver tritt am häufigsten der Fehler auf, dass die Domain weiterhin auf die alte IP-Adresse verweist.

dig +short example.hu A
dig +short www.example.hu A
dig +short example.hu MX
dig +short example.hu NS

Sie können die Antwort auch bei einem bestimmten DNS-Server abfragen, um festzustellen, ob die Änderung bereits überall sichtbar ist:

dig +short example.hu A @1.1.1.1
dig +short example.hu A @8.8.8.8

Das „dig“-Paket heißt unter AlmaLinux „bind-utils“, unter Ubuntu und Debian „dnsutils“. Die Interpretation der Ausgabe sowie die Schritte für die Optionen „+trace“ und die DNSSEC-Prüfung werden im Artikel „DNS-Abfrage mit dem Befehl dig“ beschrieben. Unter Windows können Sie mit dem Befehl „nslookup example.hu“ eine ähnliche Abfrage durchführen. Über die Ausbreitung von DNS-Änderungen erfahren Sie mehr im Artikel „Was ist DNS-Propagation?“.

traceroute und mtr: Wo liegt die Störung auf dem Weg?

Der traceroute-Befehl (unter Windows „tracert“) listet die Route der Pakete zum Server auf, und zwar nach einzelnen Stationen (Hops).

traceroute example.hu

mtr ist eine Kombination aus Ping und Traceroute: Es sendet zahlreiche Pakete an jeden Knoten, sodass auch vorübergehender Paketverlust sichtbar wird. Wir empfehlen diese Methode zur Fehlermeldung.

mtr -rwc 100 example.hu
  • -r: wird im Berichtsmodus (report) ausgeführt und gibt das Ergebnis am Ende aus,
  • -w: verkürzt die Rechnernamen nicht,
  • -c 100: Sendet 100 Pakete pro Station (ca. eineinhalb Minuten).

Installation: „sudo dnf install mtr“ oder „sudo apt install mtr-tiny“. Auf dem AlmaLinux 10-Cloud-Image war im Test auch „traceroute“ nicht installiert („sudo dnf install traceroute“), sondern lediglich das ähnliche, jedoch einfachere „tracepath“; unter Debian 12 war „traceroute“ vorhanden, unter Ubuntu 24.04 sowohl „mtr“ als auch „tracepath“. Unter Windows liefert der Befehl „pathping example.hu“ oder das Programm „WinMTR“ ein ähnliches Ergebnis.

Interpretation des Ergebnisses: Wenn an einem Zwischenknoten ein Paketverlust zu verzeichnen ist, an den nachfolgenden Knoten jedoch nicht mehr, handelt es sich nicht um einen Fehler: Viele Router reagieren auf Testpakete nur mit niedriger Priorität. Auf ein tatsächliches Problem deutet es hin, wenn der Paketverlust ab einem bestimmten Punkt an allen weiteren Knoten, einschließlich des Zielknotens, auftritt.

ss: Läuft der Dienst auf dem Server?

Wenn Sie sich auf dem Server anmelden können, überprüfen Sie bitte, auf welchen Ports er Verbindungen entgegennimmt:

sudo ss -tlnp

Suchen Sie in der Ausgabe nach dem Port des Dienstes (z. B.:80, :443, :22, :3306). Ist der Port nicht in der Liste aufgeführt, läuft der Dienst nicht; überprüfen Sie dies mit dem Befehl „systemctl status“ (siehe: Verwaltung von Diensten mit dem Befehl „systemctl“). Wenn der Port nur unter der Adresse 127.0.0.1 lauscht, ist er von außen nicht erreichbar.

nc und curl: Ist der Port von außen erreichbar?

Die Erreichbarkeit eines beliebigen TCP-Ports lässt sich mit dem Befehnc überprüfen:

nc -zv example.hu 443
nc -zv mail.example.hu 587

Das „nc“-Paket heißt unter AlmaLinux „nmap-ncat“ und unter Ubuntu sowie Debian „netcat-openbsd“. Wenn der Dienst auf dem Server läuft, von außen jedoch nicht erreichbar ist, wird der Port wahrscheinlich von der Firewall blockiert (siehe: Wie richte ich eine Firewall auf meinem VPS ein?).

Bei einem Webserver zeigt „curl“ auch die HTTP-Antwort an:

curl -I https://example.hu

Der Parameter „-I“ ruft nur die Header ab; die erste Zeile enthält den HTTP-Statuscode (z. B. HTTP/2 200 oder HTTP/1.1 500). Die Bedeutung der Codes können Sie im Artikel „HTTP-Fehler- und Statuscodes“ nachlesen. Mit dem Schalter „-v“ werden auch die Details der Verbindung und der SSL-Authentifizierung angezeigt.

Testen der Website vor der DNS-Umstellung

Bei einem Serverumzug ist es hilfreich, wenn Sie die Seite auf dem neuen Server bereits vor der DNS-Umstellung testen können. Mit dem Schalter „--resolve“ können Sie festlegen, mit welcher IP-Adresse „curl“ eine Verbindung herstellen soll, während der Domainname unverändert übermittelt wird:

curl -I --resolve example.hu:443:203.0.113.10 https://example.hu

Was sollten Sie an den Support senden?

Wenn Sie einen Netzwerkfehler melden, senden Sie uns bitte folgende Informationen, um eine schnelle Untersuchung zu ermöglichen:

  • Ihre eigene öffentliche IP-Adresse (von der aus der Fehler auftritt),
  • den genauen Zeitpunkt des Fehlers sowie die Angabe, ob dieser dauerhaft oder zeitweise auftritt,
  • die Ausgabe von „mtr -rwc 100 <szerver>“ von Ihrem eigenen Rechner aus (unter Windows das Ergebnis von „pathping“ oder „WinMTR“),
  • Falls Sie Zugriff auf den Server haben, überprüfen Sie bitte auch die Ausgabe des Befehls „mtr -rwc 100 <az Ön IP-címe>“ vom Server aus, da die Rückwärtsroute abweichen kann.
Zurück: Linux-Artikel (62)