Heim  >  Artikel  >  System-Tutorial  >  Häufige Beispiele für tcpdump

Häufige Beispiele für tcpdump

PHPz
PHPznach vorne
2024-04-02 09:19:10724Durchsuche

tcpdump 常用例子

tcpdump ist ein sehr häufig verwendetes Tool zur Netzwerkpaketanalyse, mit dem TCP/IP- und andere Netzwerkdatenpakete angezeigt werden können, die über das Netzwerk an dieses System übertragen werden. tcpdump Verwenden Sie die libpcap-Bibliothek, um Netzwerkpakete zu erfassen. Diese Bibliothek ist in fast allen Linux/Unix-Systemen verfügbar.

tcpdump kann den Inhalt von der Netzwerkkarte oder einer zuvor erstellten Paketdatei lesen oder das Paket zur späteren Verwendung in eine Datei schreiben. Zum Ausführen von tcpdump müssen Sie Root sein oder Sudo-Berechtigungen verwenden.

In diesem Artikel zeigen wir anhand einiger Beispiele, wie man den Befehl tcpdump verwendet. Schauen wir uns aber zunächst an, wie man tcpdump in verschiedenen Linux-Betriebssystemen installiert.

Installation

tcpdump ist standardmäßig in fast allen Linux-Distributionen verfügbar, aber wenn es auf Ihrem Linux nicht verfügbar ist, verwenden Sie die untenstehende Methode, um es zu installieren.

CentOS/RHEL

Verwenden Sie die folgenden Befehle, um tcpdump,

auf CentOS und RHEL zu installieren
$ sudo yum install tcpdump*
Fedora

Verwenden Sie den folgenden Befehl, um tcpdump auf Fedora zu installieren:

$ dnf install tcpdump
Ubuntu/Debian/Linux Mint

Verwenden Sie den folgenden Befehl, um tcpdump unter Ubuntu/Debain/Linux Mint zu installieren:

$ apt-get install tcpdump

Nach der Installation von tcpdump schauen wir uns einige Beispiele an.

Falldemonstration
Pakete von allen Netzwerkkarten erfassen

Führen Sie den folgenden Befehl aus, um Pakete von allen Netzwerkkarten zu erfassen:

$ tcpdump -i any
Pakete von der angegebenen Netzwerkkarte erfassen

Um Pakete von einer bestimmten Netzwerkkarte zu erfassen, führen Sie Folgendes aus:

$ tcpdump -i eth0
Erfasste Pakete in eine Datei schreiben

使用 -w 选项将所有捕获的包写入文件:

$ tcpdump -i eth1 -w packets_file
读取之前产生的 tcpdump 文件

使用下面命令从之前创建的 tcpdump 文件中读取内容:

$ tcpdump -r packets_file
获取更多的包信息,并且以可读的形式显示时间戳

要获取更多的包信息同时以可读的形式显示时间戳,使用:

$ tcpdump -ttttnnvvS
查看整个网络的数据包

要获取整个网络的数据包,在终端执行下面命令:

$ tcpdump net 192.168.1.0/24
根据 IP 地址查看报文

要获取指定 IP 的数据包,不管是作为源地址还是目的地址,使用下面命令:

$ tcpdump host 192.168.1.100

要指定 IP 地址是源地址或是目的地址则使用:

$ tcpdump src 192.168.1.100
$ tcpdump dst 192.168.1.100
查看某个协议或端口号的数据包

要查看某个协议的数据包,运行下面命令:

$ tcpdump ssh

要捕获某个端口或一个范围的数据包,使用:

$ tcpdump port 22
$ tcpdump portrange 22-125

我们也可以与 srcdst 选项连用来捕获指定源端口或指定目的端口的报文。

我们还可以使用“与” (and&&)、“或” (or|| ) 和“非”(not!) 来将两个条件组合起来。当我们需要基于某些条件来分析网络报文是非常有用。

使用“与”

可以使用 and 或者符号 && 来将两个或多个条件组合起来。比如:

$ tcpdump src 192.168.1.100 && port 22 -w ssh_packets
使用“或”

“或”会检查是否匹配命令所列条件中的其中一条,像这样:

$ tcpdump src 192.168.1.100 or dst 192.168.1.50 && port 22 -w ssh_packets
$ tcpdump port 443 or 80 -w http_packets
使用“非”

当我们想表达不匹配某项条件时可以使用“非”,像这样:

$ tcpdump -i eth0 src port not 22

这会捕获 eth0 上除了 22 号端口的所有通讯。

我们的教程至此就结束了,在本教程中我们讲解了如何安装并使用 tcpdump 来捕获网络数据包。


Das obige ist der detaillierte Inhalt vonHäufige Beispiele für tcpdump. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:linuxprobe.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen