首页 > 系统相关 >在 Linux 命令行中使用 tcpdump 命令分析网络数据

在 Linux 命令行中使用 tcpdump 命令分析网络数据

时间:2022-12-04 14:11:42浏览次数:60  
标签:选项 数据包 sudo 抓取 命令行 Linux tcpdump eth0

在 Linux 命令行中使用 tcpdump 命令分析网络数据

该文章作者是刘光录,TIAP

收录于合集#Linux143个

tcpdump 是分析网络和排查网络问题的一个很好用的工具,它通过抓取数据包,显示网络的实时情况,并将结果输出到标准输出(STDOUT)上,也可以存储在文件中。关于它的具体使用,它有很多可用的选项,本文我们介绍关于此命令常用的几个核心选项。

1,检查可用网口(interfaces)

查询所有可用的网口,使用 -D 选项:

sudo tcpdump -D

上述命令将会列出系统中所有可用的网络接口,包括有线和无线接口,使用 --list-interfaces 选项也可以达到相同的目的:

sudo tcpdump --list-interfaces

运行结果如下图所示:

图片

2,抓取某个网口的数据包

不适用任选项的情况下,tcpdump 将会扫描所有网口,使用 -i 选项可抓取某个特定网口的数据:

tcpdump -i <target-interface>

在上述命令中 <target-interface> 表示网口名称。假如我们要抓取网口 eth0 的数据,可使用如下命令:

sudo tcpdump -i eth0

注:为了方便演示,我们后文中将会使用 eth0 或者 eth1 作为目标网口。

3,预设抓包数量

使用 -c 选项可以预设抓包的数量。比如,下面命令将会抓取 4 个数据包:

sudo tcpdump -c 4 -i eth0

如果没有预设抓包数量,需要使用 ctrl+c 或者 ctrl+z 手动停止抓包操作。

4,获取详细输出

使用 -v 选项可以获取详细输出,如下命令:

sudo tcpdump -c 6 -v -i eth0

详情的输出,有个详细程度的区别,换句话说,可以使用更多的 -v 标志,比如 -vv 或者 -vvv,这将会在终端上产生更加详细的输出:

sudo tcpdump -vv -i eth0

5,以 ASCII 格式打印抓取到的数据有时候我们希望数据以 HEX 或者 ASCII 格式展现,这里可以使用 -A 选项来表示以 ASCII 格式,-XX 选项表示以 ASCII 和 HEX 格式展示数据:

sudo tcpdump -XX -i eth0

6,抓取从某个源 IP 发送的数据包

要抓取来自某个特定源 IP 的数据包,可使用如下命令:

sudo tcpdump -i eth0 src <source-ip-address>

比如,我们查看来自 IP 为 192.168.56.11 的数据:

sudo tcpdump -i eth1 -c 5 src 192.168.56.11

上面例子中的计数 5 为只抓取5个数据包。

7,抓取发送到特定目标 IP 的数据包

如果要检查发送到特定目标 IP 地址的流量,可使用以下命令:

sudo tcpdump -i eth0 dst <source-ip-address>

比如我们将目标 IP 设为 192.168.56.11,查看流量的详细信息:

sudo tcpdump -i eth1 -c 5 dst 192.168.56.11

8,在 tcpdump 中使用过滤选项

tcpdump 命令提供了一些过滤选项,以缩小抓包数据的范围,这样可以过滤掉一些不必要的数据,以便于分析数据。过滤方式包括主机地址、端口、协议或者其他过滤条件。下面我们来举例说明。

端口号

如果要执行端口号(比如端口22)过滤,可参照如下方式执行 tcpdump 命令:

sudo tcpdump -i eth0 port 22

此命令将抓取 TCP 和 UDP 数据流。

协议

与端口号类似,proto 指令根据特定流量过滤数据包捕获。在这里,你可以使用协议名称或协议编号作为参数值:

sudo tcpdump -i eth0 proto tcp

或者:

sudo tcpdump -i eth0 proto 6

上面两个命令是相同的,因为 6 是 TCP 的协议号。

主机过滤

host 参数使用特定主机的IP,筛选来自该主机的数据流:

sudo tcpdump -i eth0 host 192.168.56.10

这将捕获来自此主机的所有流量。此外,还可以对主机应用多个过滤条件,以针对特定类型的数据包流量。

比如:

sudo tcpdump -i eth1 -c 50 “(host 192.168.56.11) and (port 443 or port 80)"

上面例子中,我将多个过滤条件合并到一个规则中,过滤 http 和 https 数据流,这两个协议的端口分分别为 80 和 443。我们之前分享过一篇常见网络端口的文字,感兴趣的朋友可以参考:Linux中常见的网络端口号

9,保存抓取到的数据

如果要保存抓取到的数据,可参考如下命令:

sudo tcpdump -i eth0 -c 10 -w my_capture.pcap

这里需要注意的是,最好将要抓取的数据包预设一个最小的值,否则需要手动停止该进程。

10,读取抓取到的数据

我们可以使用 Wireshark(https://www.wireshark.org/)或者其他图形网络分析工具分析抓取到的数据(上个例子中保存到.pcap文件中的数据)。此外,也可以使用 tcpduimp 本身来读取:

tcpdump -r my_capture.pcap

标签:选项,数据包,sudo,抓取,命令行,Linux,tcpdump,eth0
From: https://www.cnblogs.com/shuai666/p/16949793.html

相关文章

  • Linux使用 RPM 安装 Elasticsearch
    参考网站:https://www.elastic.co/guide/en/elasticsearch/reference/8.5/rpm.html#rpm-repo1.导入ElasticsearchGPG签名密钥rpm--importhttps://artifacts.elastic.c......
  • linux 常用基础命令
    常用快捷键Tab按键—命令补齐功能Ctrl+c按键—停掉正在运行的程序Ctrl+d按键—相当于exit,退出Ctrl+l按键—清屏系统相关w显示当前在线用户情况cat/etc/redhat-rel......
  • Linux 安装Openjdk
    1.下载地址:https://adoptium.net/zh-CN/temurin/releases/?version=8选择Linux平台命令行界面的找到下载地址使用wget或者curl进行下载【下载地址可能需要使用加速】......
  • (For Final Exam)Linux操作系统期末整理
    1.linux文件权限一共10位长度第一段指文件类型第二段指拥有者所具有的权限第三段指所属组的成员对于这个文件具有的权限第四段指其他人对于这个文件有没有任何权限2......
  • Linux下安装Unity3d时可能会遇到的问题,以及解决方案
    未经许可禁止转载,不制造互联网垃圾,从你我做起本人Linux环境:MintLinux21从Unity官方源下载unity官方文档DebianorUbuntuInstalling:ToinstalltheUnityHub......
  • dwc3 linux usb3.0 driver架构
    USB控制器1.DRDdriverDRD驱动在usb/dwc31.1dtsdwc3@44000000{/*CompatibleIDusedbytheLinuxdriverforthiskindofdevice*/compatible="snps,dwc......
  • QEMU虚拟开发板 与 嵌入式Linux装机步骤
    2、下面是使用QEMU虚拟开发板,安装的工具http://wiki.100ask.org/QemuA、安装KVM可选的(注意,如果想要有更快的效果,在ubuntu下可以安装KVM):安装kvm加速qemu运行,在终端下......
  • Linux下BMP图片截图
    Linux下BMP图片截图    MP是英文Bitmap(位图)的简写,它是Windows操作系统中的标准图像文件格式,能够被多种Windows应用程序所支持。随着Windows操作系统的流行与丰富的Wind......
  • [Linux]-----进程信号
    文章目录​​前言​​​​一、什么是信号​​​​我们是如何得知这些信号呢?​​​​我们知道对应的信号产生时,要做什么呢?​​​​二、进程信号​​​​前台进程和后台进程​......
  • LINUX安装openssl
    openssl官网下载​​https://www.openssl.org/source/old/​​1、解压openssl包:tar-xzfopenssl-1.1.1n.tar.gz2、得到openssl-1.1.1n目录,然后进入openssl-1.1.1n目录中......