So verwenden Sie den Befehl TCPDump unter Linux

- 2368
- 289
- Henry Liebold
Der tcpdump
Der Befehl kann verwendet werden, um den Netzwerkverkehr auf einem Linux -System zu erfassen. Es ist ein vielseitiges Befehlszeilen -Dienstprogramm, auf das Netzwerkadministratoren häufig bei der Fehlerbehebung angewiesen sind.
Was Sie finden, ist, dass die Menge des auf einer Schnittstelle erfassten Netzwerkverkehrs leicht überwältigend sein kann. tcmpdump
erleichtert unseren Job ein wenig, indem wir uns erlauben, nur den Verkehr zu isolieren, an dem wir interessiert sind. Zu diesem Zeitpunkt müssen Sie natürlich mit den verschiedenen Flaggen und Einstellungen vertraut sein, die dem Befehl eingehen.
In diesem Leitfaden sehen Sie, wie man benutzt tcpdump
durch Beispiele und Erklärungen. Folgen Sie Ihrem eigenen System, wenn Sie lernen möchten, den Netzwerkverkehr zu erfassen und die zu beherrschen tcpdump
Befehl.
In diesem Tutorial lernen Sie:
- So installieren Sie TCPDump auf wichtigen Linux -Distributionen
- TCPDump -Befehlsbeispiele
- So filtern Sie TCPDump -Verkehr mit Port, Protokoll, Quelle und Ziel
- So schreiben Sie TCPDump -Erfassungen zur Datei
- So interpretieren Sie die Ausgabe des Befehls von TCPDump

Kategorie | Anforderungen, Konventionen oder Softwareversion verwendet |
---|---|
System | Jede Linux -Distribution |
Software | tcpdump |
Andere | Privilegierter Zugriff auf Ihr Linux -System als Root oder über die sudo Befehl. |
Konventionen | # - erfordert, dass gegebene Linux -Befehle mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mit Verwendung von ausgeführt werden können sudo Befehl$ - Erfordert, dass die angegebenen Linux-Befehle als regelmäßiger nicht privilegierter Benutzer ausgeführt werden können |
Installieren Sie TCPDump auf wichtigen Linux -Distribos
Es besteht eine gute Chance, dass Ihre Linux -Distribution bereits hat tcpdump
standardmäßig installiert, insbesondere wenn Sie eine Distribution ausführen, die auf Server ausgerichtet ist. Nur für den Fall, dass es noch nicht installiert ist, können Sie den entsprechenden Befehl unten verwenden, um ihn über den Paketmanager Ihres Systems zu installieren.
So installieren Sie TCPDump auf Ubuntu, Debian und Linux Mint:
$ sudo APT Installieren Sie TCPDump
So installieren Sie TCPDump auf CentOS, Fedora, Almalinux und Red Hat:
$ sudo dnf Installieren Sie TCPDump
So installieren Sie TCPDump unter Arch Linux und Manjaro:
$ sudo pacman -s tcpdump
TCPDump -Befehlsbeispiele
NOTIZAlle deine
tcpdump
Befehle müssen mit dem Root -Benutzerkonto ausgeführt werden oder mit sudo
. Das Dienstprogramm erfordert die Berechtigung von Administratoren, um auszuführen. Die einfachste Form des Befehls ist die Verwendung des Dienstprogramms ohne zusätzliche Optionen wie folgt:
# TCPDUMP
Wenn Sie nicht angeben, von welcher Netzwerkschnittstelle Sie den Datenverkehr erfassen möchten, wie im obigen Befehl, dann tcpdump
Wählt eine Schnittstelle für Sie.
Es wird weiterhin den erfassten Verkehr zu Ihrem Terminal "ablegen", bis Sie den Befehl unterbrechen. Der einfachste Weg, dies zu tun, ist mit Strg + c
.
Wenn Sie mehr als eine Netzwerkschnittstelle haben, geben Sie am besten an, auf welcher Schnittstelle Sie den Datenverkehr erfassen möchten, seitdem tcpdump
Wählen Sie möglicherweise nicht die gewünschte, die Sie standardmäßig möchten. Verwenden Sie das -D
Option zum Drucken einer Liste von Netzwerkschnittstellen, die tcpdump
Kann benutzen.
# tcpdump -d 1.ENP0S3 [Up, Laufen] 2.LO [Up, Laufen, Loopback] 3.Jeder (Pseudo-Gerät, der an allen Schnittstellen erfasst) [Up, Running] 4.Bluetooth-Monitor (Bluetooth Linux Monitor) [Keine] 5.NFLOG (Linux Netfilter Log (NFLOG) Schnittstelle) [Keine] 6.NFQUEUE (Linux Netfilter Queue (NFQueue) Grenzfläche [keine]
Wir haben einige verschiedene Schnittstellen, die wir verwenden können. Alternativ haben wir das beliebig
Option verfügbar, mit der wir den Datenverkehr auf allen Netzwerkschnittstellen gleichzeitig erfassen können. Wenn wir den Netzwerkverkehr auf dem erfassen möchten ENP0S3
Schnittstelle verwenden wir die folgende Befehlssyntax.
# TCPDUMP -i ENP0S3
Du kannst den ... benutzen -v
Option, die Ausführlichkeit des Ausgangs zu erhöhen, oder -VV
Und -VVV
Um es noch weiter zu erhöhen.
# TCPDUMP -i ENP0S3 -VV
Wenn Sie nicht wollen tcpdump
Um Daten endlos an Ihrem Terminal auszugeben, können Sie die verwenden -C
Option, um anzugeben, wie viele Pakete das Dienstprogramm erfassen soll. tcpdump
Beendet die Ausführung des Befehls, nachdem der Schwellenwert erreicht wurde, anstatt darauf zu warten, dass Sie unterbrechen. Mit dem folgenden Befehl können wir nur die ersten 15 Pakete erfassen.
# TCPDUMP -C 15
Wenn Sie nicht wollen tcpdump
Um die DNS -Auflösung in den Netzwerkadressen in der Ausgabe durchzuführen, können Sie die verwenden -N
Option in Ihrem Befehl. Dadurch werden alle Netzwerkadressen als IP -Adressen angezeigt, anstatt sie auf Domainnamen zu beheben.
# tcpdump -n
Wenn Sie die Netzwerkverkehrsausgabe lieber in Datei speichern möchten, anstatt sie auf Ihrem Bildschirm aufzulisten, können Sie die immer umleiten tcpdump
Ausgabe mit den üblichen >
Und >>
Betreiber.
# TCPDump> Verkehr.txt
Eine andere Möglichkeit besteht darin, die Netzwerkaufnahme in Datei zu schreiben. Diese Dateien haben normalerweise die .PCAP
Dateierweiterung und kann nicht von einem gewöhnlichen Texteditor gelesen werden.
# TCPDUMP -N -W -Verkehr.PCAP
Verwenden Sie die Datei für die spätere Analyse, um die Datei zu öffnen -R
Option und der Name Ihrer Datei.
# TCPDUMP -R -Verkehr.PCAP
Interpretieren Sie die Ausgabe von TCPDump -Befehl
Jedes Paket das tcpdump
Captures ist als einzelne Zeile geschrieben. Eine dieser Zeilen sieht ungefähr so aus:
14:21:46.134249 IP 10.0.2.15.54000> 104.16.168.35.443: Flaggen [.], ACK 2915, Gewinn 63000, Länge 0
Hier erfahren Sie, wie Sie diese Datenzeile interpretieren:
14:21:46.134249
- Zeitstempel des Erfassen des Pakets.IP 10.0.2.15.54000
- IP- und Portnummer des Quellhosts.104.16.168.35.443
- IP- und Portnummer des Zielhosts.Flaggen [.]
- TCP -Flags (Syn, ACK, PSH usw.).[.]
bedeutet ack.ACK 2915
- Die Bestätigungsnummer.Gewinnen Sie 63000
- Die Fensternummer (Bytes im Empfangspuffer).Länge 0
- Die Länge der Nutzlastdaten.
Filter TCPDump -Verkehr
Eine der besten Merkmale von tcpdump
ist, dass wir genau den Verkehr herausfiltern können, den wir sehen möchten. Ohne den Verkehr per Adapter (wie oben gezeigt), Portnummer und Paketprotokoll herauszufiltern.
Trotz des Namens tcpdump
, Wir können das Tool verwenden, um alle Arten von Verkehr herauszufiltern, nicht nur TCP. Verwenden Sie beispielsweise die folgende Syntax, um den Datenverkehr herauszufiltern, der UDP verwendet.
# TCPDUMP -n UDP
Oder das folgende Beispiel, das ICMP herausfiltert:
# TCPDump -n ICMP
Sie können auch die entsprechende Protokollnummer verwenden, um ein bestimmtes Protokoll herauszufiltern. Beispielsweise ist ICMP Protokollnummer 1, sodass die folgende Syntax das gleiche wie das vorherige Beispiel tut.
# TCPDump -n Proto 1
Um eine vollständige Liste von Netzwerkprotokollen und deren entsprechenden Zahlen anzuzeigen, lesen Sie die Liste der IP -Protokollnummern auf Wikipedia.
Um den Datenverkehr mit einem bestimmten Ziel- oder Quell -IP -Adresse zu filtern, können wir die verwenden Gastgeber
Qualifer mit dem -N
Möglichkeit. Zum Beispiel zum Filterverkehr im Zusammenhang mit dem Host unter der IP -Adresse 10.10.150.20
:
# TCPDump -n Host 10.10.150.20
Alternativ verwenden Sie die Netz
Qualifer, wenn Sie den Verkehr zu oder von einem ganzen Netzwerk herausfiltern möchten. Zum Beispiel filtert der folgende Befehl den Verkehr im Zusammenhang mit dem 192.168.1.0/24
Netzwerk.
# TCPDUMP -N NET 192.168.1
Verwenden Sie das Hafen
Und darstellen
Qualifizierer, um Pakete im Zusammenhang mit einem bestimmten Port- oder Port -Bereich herauszufiltern. Beispielsweise filtert der folgende Befehl unseren Datenverkehr mit Port 80 (HTTP).
# TCPDump -n Port 80
Oder um den Verkehr aus den Ports 20-30 zu filtern, würde der folgende Befehl verwendet.
# TCPDUMP -N PORTRANGE 20-30
Ergänzen Sie die dst
, src
, SRC und DST
, Und SRC oder DST
Qualifizierer, wenn Sie basierend auf der Quelle und/oder der Zieladresse oder dem Port der Pakete filtern möchten. Beispielsweise filtert der folgende Befehl Pakete mit einer Quell -IP -Adresse von 10.10.150.20
.
# TCPDUMP -N SRC HOST 10.10.150.20
Oder in diesem Beispiel filtern wir Pakete heraus, die für den SSH -Port bestimmt sind (Port 22).
# TCPDump -n DST Port 22
Filter kombinieren
Wir können diese verschiedenen oben abgedeckten Filter mit der Verwendung des Und
(&&
), oder
(||
), Und nicht
(!
) Betreiber in unserer tcpdump
Befehl.
Zum Beispiel wird der folgende Befehl den Verkehr erfassen, für den Sie bestimmt sind 10.10.150.20
auf Port 80 (HTTP).
# TCPDUMP -n DST HOST 10.10.150.20 und TCP Port 80
Oder schaffen Sie noch mehr detailliertere Filter, indem Sie Regeln in Klammern weiter kombinieren. Zum Beispiel wird dieser Befehl das gleiche wie der vorherige, aber auch erfassen Port 443 (HTTPS).
# TCPDUMP -N 'DST HOST 10.10.150.20 und (TCP Port 80 oder TCP Port 443) ''
Gedanken schließen
In diesem Leitfaden haben wir gesehen, wie man das benutzt tcpdump
Befehlszeilen -Dienstprogramm zum Erfassen des Netzwerkverkehrs auf einem Linux -System. Wie wir in diesem Tutorial gesehen haben, kann der Befehl ziemlich komplex werden und sehr detaillierte Eingaben akzeptieren, was es uns ermöglicht, den genauen Datenverkehr herauszufiltern, den wir sehen möchten.
Verwandte Linux -Tutorials:
- Dinge zu installieren auf Ubuntu 20.04
- Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux
- Linux -Befehle: Top 20 wichtigste Befehle, die Sie benötigen, um…
- Grundlegende Linux -Befehle
- Eine Einführung in Linux -Automatisierung, Tools und Techniken
- Installieren Sie Arch Linux in VMware Workstation
- Dinge zu tun nach der Installation Ubuntu 22.04 Jammy Quallen…
- Dinge zu installieren auf Ubuntu 22.04
- Wie man einen Screenshot auf Kali Linux macht
- Wie man einen Screenshot auf Manjaro macht
- « So lesen und ändern Sie den Wert von Kernelparametern mit SysCTL
- Wie man mit der Woocommerce -REST -API mit Python arbeitet »