GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Netzwerk-Fehlerbehebung über die Befehlszeile mit TShark

Eine Möglichkeit, die Paketerfassung zu optimieren, ist die Verwendung eines Befehlszeilenschnittstellen-Tools, und von allen Tools, die Sie finden können, ist TShark eines, das Sie ausprobieren müssen. TShark ist das Äquivalent zur Wireshark-GUI, die wertvolle Informationen über den in Ihrem Netzwerk erfassten Datenverkehr liefert.

Eine Sache, die das großartig macht, ist, dass Sie, anstatt auf mehrere Schaltflächen zu klicken und sich durch verschiedene Menüs zu wühlen, nur einen Befehl eingeben können, um die benötigten Informationen zu erhalten.

Lesen Sie weiter und verschwenden Sie nie wieder Stunden damit, Ihre Paketerfassungen zu analysieren!

Voraussetzungen

Dieses Tutorial wird eine praktische Demonstration sein. Wenn Sie mitmachen möchten, stellen Sie sicher, dass Sie Folgendes haben.

  • Ein Linux-Rechner – Dieses Tutorial verwendet Ubuntu 20.04 LTS, aber alle Linux-Distributionen funktionieren.
  • Ein Nicht-Root-Benutzer mit sudo-Berechtigungen.
  • Wireshark ist auf Ihrem Computer installiert.

TShark auf Ubuntu installieren

TShark ist standardmäßig nicht auf Ihrer Linux-Distribution installiert. Bevor Sie dies also nutzen können, starten Sie dieses Tutorial, indem Sie TShark auf Ihrem Computer installieren.

Mit Ihrem Paketmanager können Sie auf den meisten Linux-Distributionen und BSD-Betriebssystemen installieren. Aber für diese Demo installieren Sie mit dem APT-Paketmanager.

1. Führen Sie apt update aus Befehl unten, um sicherzustellen, dass Ihr Paketmanager auf dem neuesten Stand ist. Dieser Befehl aktualisiert die Paketliste Ihres Systems und ihre aktuellen Versionen.

sudo apt update -y

2. Führen Sie als Nächstes apt install aus Befehl unten, um das TShark-Befehlszeilentool auf Ihrem Computer zu installieren.

sudo apt install tshark -y

3. Führen Sie den folgenden tshark --version aus Befehl, um sicherzustellen, dass das Tool auf Ihrem System verfügbar ist.

tshark --version

Sie erhalten eine Ausgabe wie die folgende. Während ich dies schreibe, ist die aktuelle Version 3.4.8, aber Ihre Version könnte anders sein.

4. Führen Sie abschließend tshark --help aus Befehl unten, um alle verfügbaren Befehle anzuzeigen. Befehle

tshark --help

Sie können viele seiner Befehle, wie unten gezeigt, verwenden, um Informationen über die in Ihrem Netzwerk erfassten Daten zu erhalten. Diese Ausgabe zeigt nur eine kleine Anzahl der verfügbaren Befehle. In den folgenden Abschnitten lernen Sie die grundlegende Verwendung einiger dieser Befehle kennen.

Alle Pakete von einer Netzwerkschnittstelle erfassen

Nachdem Sie es installiert haben, können Sie Pakete erfassen und erfasste Netzwerkdaten analysieren. Sie können Netzwerkdaten über eine bestimmte Schnittstelle erfassen, aber bevor Sie Daten erfassen, müssen Sie beginnen und die Netzwerkschnittstelle angeben, auf der Sie Daten erfassen.

1. Führen Sie tshark aus Befehl zum Auflisten aller verfügbaren Netzwerkschnittstellen (-D ), die T-shark finden kann, sogar die alten und inaktiven.

sudo tshark -D 

Sie sehen eine Liste der verfügbaren Schnittstellen auf Ihrem System, wie unten gezeigt. Wenn Sie mehrere Netzwerkkarten in Ihrem System installiert haben, führen Sie immer den Befehl tshark -D aus, bevor Sie eine Schnittstelle starten und angeben.

2. Als nächstes führen Sie ip link aus Befehl unten (auf Linux- und BSD-Systemen), um alle aktiven Netzwerkschnittstellen aufzulisten. Sie müssen eine zu verwendende aktive Netzwerkschnittstelle auswählen.

Obwohl TShark alle Netzwerkschnittstellen auf Ihrem System auflistet, sind möglicherweise nicht alle zu diesem Zeitpunkt aktiv.

sudo ip link show 

In den meisten Fällen verwenden Sie eine Netzwerkschnittstelle, z. B. eine Ethernet-Karte. Notieren Sie sich in diesem Beispiel eth0, wie unten gezeigt, um Pakete zu erfassen.

3. Führen Sie zuletzt den folgenden tshark aus Befehl zur Auswahl einer Schnittstelle (-i ) und Live-Pakete erfassen. Ersetzen Sie interface mit der Schnittstelle, die Sie in Schritt zwei notiert haben.

sudo tshark -i interface

Sobald Sie mit der Datenerfassung beginnen, werden Pakete in Echtzeit angezeigt, wie unten gezeigt. Und Sie können jederzeit Strg+C drücken, um das Erfassen von Paketen zu stoppen.

Wie andere beliebte Datennetzwerk-Paketanalysator-Tools wie tcpdump und Wireshark verwendet Tshark das pcap-Bibliothek (libpcap) zum Erfassen von Paketen. In diesem Fall wird die pcap-Bibliothek verwendet, um Pakete von der eth0-Schnittstelle zu erfassen.

Wie Sie unten sehen, gibt es die decodierte Form der erfassten Pakete aus, jede Zeile in einem für Menschen lesbaren Format zur Standardausgabe (stdout) auf Ihrem Terminal.

Erfassen einer bestimmten Anzahl von Paketen

Angenommen, Sie möchten eine bestimmte Anzahl von Paketen analysieren. Wenn dies der Fall ist, anstatt alle Pakete zu erfassen, geben Sie die Anzahl der zu erfassenden Pakete an und analysieren Sie sie direkt.

Um eine bestimmte Anzahl von Paketen zu erfassen, hängen Sie den -c an Option (Capture Packet Count) im tshark Befehl.

Führen Sie den folgenden Befehl aus, um die ersten 10 Pakete (-c 10 ), um zu prüfen, ob die Pakete an tshark weitergeleitet werden korrekt. Ersetzen Sie 10 mit Ihrer bevorzugten Anzahl zu erfassender Pakete.

sudo tshark -i eth0 -c 10

Wenn Sie es vorziehen, Pakete zu erfassen und die Anzeige der Pakete zu unterdrücken, hängen Sie den -q an Option statt. Die -q Die Option ist praktisch, wenn Sie nur die Gesamtzahl der erfassten Pakete sehen und nicht ständig durch die Ausgaben auf Ihrem Terminal blättern möchten.

Führen Sie den folgenden Befehl aus, um Pakete beim Unterdrücken von (-q ) die Ausgänge.

sudo tshark -i eth0 -q

Sobald Sie Strg+C drücken, gibt TShark die Gesamtzahl der erfassten Pakete im Terminal aus. Unten sehen Sie insgesamt 84 Pakete erfasst.

Erfassen bestimmter Pakete nach Filterzeichenfolge

Vielleicht ist die Anzahl der erfassten Pakete zu groß und es ist fast unmöglich, nur mit den Augen nach einer bestimmten Zeichenfolge zu suchen. In diesem Fall müssen Sie einen Filter verwenden, um Pakete nach der Zeichenfolge Ihrer Wahl zu erfassen.

Sie verwenden die Capture-Filterausdrücke von TShark, um Pakete basierend auf Protokollen, Quell-/Ziel-Host/Port-Paaren usw. auszuwählen. Beispielsweise funktioniert Ihre SSH-Verbindung nicht und Sie möchten nur Pakete erfassen, die sich auf die SSH-Verbindung beziehen.

Führen Sie den folgenden Befehl aus, um Pakete zu erfassen und zu filtern (-f ) mit dem tcp port 22 Zeichenfolge.

sudo tshark -i eth0 -f "tcp port 22" -c 10

Wenn der Zeichenfolgenfilter nicht ausreicht, können Sie auch den Anzeigefilter verwenden, nachdem Sie einen Erfassungsfilter ausgeführt haben, um Ihre Suche einzugrenzen und bestimmte Pakete zu analysieren. Der Anzeigefilter nutzt Vergleichsoperatoren (!==,===,==usw.), um Zeichenfolgen, Muster oder Bytesequenzen zu testen.

Sie können auch boolesche Operatoren (and, or, not) und Gruppierungen mit Klammern verwenden, um komplexere Ausdrücke anzugeben.

Nachdem Sie beispielsweise die IP-Adressen gefunden haben, die Sie für die Verbindung mit SSH verwenden, möchten Sie sich jetzt weiter mit den Paketen befassen. In diesem Fall verwenden Sie == (Equal (any if more than one))-Operator, wie unten gezeigt.

Führen Sie tshark aus Befehl unten, um den ersten 10 zu erfassen und anzuzeigen gefilterte Pakete (-Y ) im Zusammenhang mit 69.28.83.134 IP-Adresse.

sudo tshark -i eth0 -Y 'ip.addr == 69.28.83.134' -c 10

Sie können sehen, dass die folgende Ausgabe nur die Pakete anzeigt, die sich auf 69.28.83.134 beziehen IP-Adresse.

Erfasste Pakete in einer Datei speichern

Durch das Anzeigen erfasster Pakete in Echtzeit können Sie sofort Maßnahmen zur Fehlerbehebung ergreifen. Aber vielleicht haben Sie im Moment keine Zeit, um Fehler zu beheben. Warum also nicht die erfassten Pakete in einer Datei speichern? Zum Beispiel hat Ihre SSH-Verbindung einwandfrei funktioniert und plötzlich ist die Verbindung nicht verfügbar.

Das Scrollen durch die Pakete im Terminal wird nicht immer Informationen liefern, um zu verstehen, was das Problem verursacht. In diesem Fall können Sie TShark verwenden, um die erfassten Pakete zu speichern und sie mit Ihren Freunden oder Kollegen zu teilen, von denen Sie denken, dass sie helfen können.

Führen Sie den folgenden Befehl aus, um erfasste Pakete in einer Datei .pcap zu speichern Datei. Der Befehl führt Folgendes aus:

  • Legt die Ringpufferoption fest (-b ), wodurch der Modus für mehrere Dateien aufgerufen wird. In diesem Modus schreibt TShark erfasste Pakete in nummerierte Dateien. Sobald die erste Dateigröße voll ist, fährt TShark mit der nächsten Datei fort und so weiter.
  • Weist TShark an, 10 Dateien zu erstellen (-a files:10 ) mit den im Ringpuffermodus erfassten Paketen, wobei jede Datei 1024 enthält KB (1MB). Wenn Sie den files nicht hinzufügen Option wird der Ringpuffer-Betriebsmodus für immer ausgeführt, bis Ihr Festplattenspeicher voll ist oder eine Stoppbedingung eintritt.

Die Anzahl der Dateien, die Sie mit dieser Option verwenden können, ist unbegrenzt. Beachten Sie jedoch, dass die Gesamtgröße aller Dateien im Ringpuffermodus 2 GB nicht überschreiten darf. Sobald dieses Limit erreicht ist, pausiert TShark und wartet, bis Sie Speicherplatz freigeben, indem Sie einige Dateien löschen, bevor Sie fortfahren.

  • Schreibt die Pakete in eine Datei (-w ), in diesem Fall ata.pcap , während Sie Ihre Aufnahme auf einer bestimmten Schnittstelle ausführen (eth0 ).
sudo tshark -i eth0 -f "tcp port 22" -b filesize:1024 -a files:10 -w ata.pcap

TShark zeigt Ihnen nicht den Schreibfortschritt und die kontinuierliche Anzahl der erfassten Pakete beim Schreiben in eine Datei. Sie sehen nur die Anzahl der erfassten Pakete, wie unten gezeigt.

Drücken Sie nun STRG+C, um den Schreibvorgang irgendwann zu stoppen. Sie haben eine neue Datei, wie unten gezeigt, die Pakete enthält, die während der Sitzung erfasst wurden.

Sie können diese Datei jetzt mit Ihrem Freund teilen und das Problem gemeinsam weiter debuggen!

Schlussfolgerung

In diesem Tutorial haben Sie gelernt, TShark auf einem Ubuntu-Rechner zu installieren. Sie haben auch gelernt, Filter hinzuzufügen, um nach bestimmten erfassten Paketen zu suchen und erfasste Pakete in eine Datei zu schreiben.

An diesem Punkt verstehen Sie bereits TShark und seine grundlegenden Befehlszeilenoptionen zum Verwalten von Paketen. Sie können jetzt selbst mit der Behebung von Netzwerkproblemen beginnen oder es zu einem Grund machen, sich mit einigen Freunden zu verbünden!

Warum installieren Sie mit diesem neu gewonnenen Wissen nicht Tshark zusammen mit Wireshark für die Überwachung von Paketen in AWS EC2? Oder vielleicht die Bitrate eines Videostreams messen?


Linux
  1. Gedanken zur Überwachung von Dateiänderungen mit Linux über das Netzwerk

  2. 5 Linux-Befehle zur Fehlerbehebung im Netzwerk

  3. Wie kann ich die Zeit von der Befehlszeile aus verfolgen?

  4. Scannen Sie das lokale Netzwerk mit arp-scan auf Ubuntu

  5. Kann ich HTML-Dateien (mit Bildern, CSS) über die Befehlszeile drucken?

Verwalten Sie Ihren Kalender über das Linux-Terminal mit dem Befehl konsolekalendar

Lernen Sie Linux mit dem Raspberry Pi

Machen Sie mit Nyan Cat eine Pause an der Linux-Befehlszeile

Hinter den Kulissen mit Linux-Containern

Schreiben Sie mit BTFS ein ISO direkt aus dem Internet auf das USB-Laufwerk

Arbeiten mit Docker-Images über die Befehlszeile