Linux tcpdump 命令示例
tcpdump 是一个功能最强大且广泛使用的命令行数据包嗅探或数据包分析工具,用于捕获或过滤在特定接口上接收或传输的 TCP/IP 数据包。
Tcpdump 在许多 Linux/Unix 操作系统中都是现成的。此外,它提供了一个宝贵的选项,可以将捕获的数据包保存到文件中以供将来分析。
它将文件保存为 pcap 格式,可以通过 tcpdump 命令或名为 Wireshark(网络协议分析器)的开源基于GUI的工具查看 tcpdump pcap 格式文件。
如何在Linux中安装tcpdump
许多 Linux 发行版已经预装了 tcpdump 工具,如果您的系统没有安装它,可以使用以下任意一条命令进行安装。
$ sudo apt install tcpdump [在 Debian, Ubuntu 和 Mint 上]
$ sudo yum install tcpdump [在 RHEL/CentOS/Fedora 和 Rocky/AlmaLinux 上]
$ sudo emerge -a sys-apps/tcpdump [在 Gentoo Linux 上]
$ sudo apk add tcpdump [在 Alpine Linux 上]
$ sudo pacman -S tcpdump [在 Arch Linux 上]
$ sudo zypper install tcpdump [在 OpenSUSE 上]
开始使用 tcpdump 命令示例
一旦在您的系统上安装了 tcpdump 工具,您可以继续查看以下带有示例的命令。
1、从特定接口捕获数据包
默认情况下,命令屏幕会不断滚动,直到您中断它。当我们执行 tcpdump 命令时,它会从所有接口捕获数据包,但是通过使用“-i”开关,只能从所需的接口捕获。
root@linuxmi:/home/linuxmi/www.linuxmi.com# tcpdump -i ens33
2、仅捕获指定数量的数据包
当运行 tcpdump 命令时,它会捕获指定接口的所有数据包,直到您按下取消按钮。但是通过使用“-c”选项,您可以捕获指定数量的数据包。以下示例将仅捕获6个数据包。
root@linuxmi:/home/linuxmi/www.linuxmi.com# tcpdump -c 5 -i ens33
3、以ASCII格式打印捕获的数据包
以下带有选项“-A”的tcpdump命令以ASCII格式显示数据包。这是一种字符编码格式。
root@linuxmi:/home/linuxmi/www.linuxmi.com# tcpdump -A -i ens33
4、显示可用的接口
要列出系统上可用的接口数量,请运行以下带有“-D”选项的命令。
root@linuxmi:/home/linuxmi/www.linuxmi.com# tcpdump -D
5、以十六进制和ASCII格式显示捕获的数据包
以下带有“-XX”选项的命令会捕获每个数据包的数据,包括其链路层头部,以十六进制和ASCII格式显示。
root@linuxmi:/home/linuxmi/www.linuxmi.com# tcpdump -XX -i ens33
6、捕获并保存数据包到文件中
正如前面所说,tcpdump具有将数据包捕获并保存为.pcap格式的功能,要实现这一点,只需执行带有“-w”选项的命令。
root@linuxmi:/home/linuxmi/www.linuxmi.com# tcpdump -w 0001.pcap -i ens33
7、读取捕获的数据包文件
要读取和分析捕获的数据包0001.pcap文件,请使用带有“-r”选项的命令,如下所示。
root@linuxmi:/home/linuxmi/www.linuxmi.com# tcpdump -r 0001.pcap
8、捕获IP地址数据包
要捕获特定接口的数据包,请使用带有“-n”选项的以下命令。
root@linuxmi:/home/linuxmi/www.linuxmi.com# tcpdump -n -i ens33
9. 仅捕获TCP数据包。
要基于TCP端口捕获数据包,请使用带有“tcp”选项的以下命令。
root@linuxmi:/home/linuxmi/www.linuxmi.com# tcpdump -i ens33 tcp
10、从特定端口捕获数据包
假设您要捕获特定端口443的数据包,请执行以下命令,并指定端口号443,如下所示。
root@linuxmi:/home/linuxmi/www.linuxmi.com# tcpdump -i ens33 port 443
11、从源IP捕获数据包
要捕获源 IP 的数据包,例如,您要捕获IP地址为 10.10.201.224 的数据包,请使用以下命令。
root@linuxmi:/home/linuxmi/www.linuxmi.com# tcpdump -i ens33 src 10.10.201.224
12、从目标IP捕获数据包
要捕获目标 IP 的数据包,例如,您要捕获 IP 地址为 10.10.154.25 的数据包,请使用以下命令。
root@linuxmi:/home/linuxmi/www.linuxmi.com# tcpdump -i ens33 dst 10.10.154.25
实例:
例子:抓取网卡ens33 及10.10.154.25 ip和22端口
第一步抓数据并保存至文件---第二步把保存的文件 下载至已经安装wireshark的PC中---第三步在wireshark中打开cap文件。
抓取数据 并保存在 file01.cap文件中
命令
tcpdump -i ens33 -w file01.cap host 10.10.154.25 and tcp port 22
-w :参数指定将监听到的数据包写入文件中保存,file.cap就是该文件。
-i :参数指定tcpdump监听的网络界面。
将保存的文件file01.cap下载至已安装wireshark的电脑中
sz file01.cap
使用wireshark 打开file01.cap