跳转至

tcpdump

1 安装

# 安装tcpdump
dnf install tcpdump
# 安装tcpdump man文档
dnf install tcpdump-help

2 命令

tcpdump 的语法相对灵活,允许你根据需要进行各种设置和过滤。以下是 tcpdump 命令的基本语法:

tcpdump [options] [expression]

这里是一些常用的选项和表达式:

常用选项: - -i <接口>:指定要监听的网络接口。 - -c <数量>:指定要捕获的数据包数量。 - -w <文件>:将捕获的数据包写入到指定的文件中。 - -r <文件>:从指定文件中读取数据包进行分析。 - -n:以数字形式显示 IP 地址和端口,而不进行反向解析。 - -v:增加详细输出级别。使用多个 -v 选项可以增加详细程度。 - -vv-vvv:更高级别的详细输出。 - -q:减少输出的详细程度,使输出更简洁。 - -A:以 ASCII 形式显示数据包的内容。

常用表达式: - host <IP>:仅捕获与指定 IP 地址相关的流量。 - port <端口>:仅捕获与指定端口号相关的流量。 - src <IP>:捕获源 IP 地址为指定 IP 的流量。 - dst <IP>:捕获目标 IP 地址为指定 IP 的流量。 - src port <端口>:捕获源端口号为指定端口的流量。 - dst port <端口>:捕获目标端口号为指定端口的流量。 - tcpudpicmp:仅捕获指定协议类型的流量。 - net <CIDR>:捕获特定网络的流量(使用 CIDR 表示法)。

例如,以下命令将捕获来自 IP 地址为 192.168.1.10 并且目标端口为 80 的 HTTP 流量:

tcpdump -i eth0 host 192.168.1.10 and port 80

请注意,上述示例只是一些常见用法,tcpdump 支持更多的选项和过滤表达式,你可以根据需要进行深入研究和定制。

3 tcpdump 输出解析

tcpdump 是一个常用的网络抓包工具,用于捕获和分析网络数据包。它可以用来监视网络流量,查看传输的数据包,并且提供了许多选项来过滤和分析捕获的数据。以下是 tcpdump 输出的一般解析方式:

10:00:00.123456 IP source_ip.1234 > dest_ip.5678: Flags [TCPFlags], seq 12345, ack 67890, win 876, options [TCPOptions], length 1500

这是 tcpdump 输出的一个示例,我们来解析每个部分的含义:

  • 10:00:00.123456:时间戳,显示了数据包捕获的时间。
  • IP:指示数据包使用的协议,这里是 IP 协议。
  • source_ip.1234:源 IP 地址和端口号。
  • dest_ip.5678:目标 IP 地址和端口号。
  • Flags [TCPFlags]:显示 TCP 数据包的标志,其中可以包括 SYN、ACK、FIN 等标志。
  • seq 12345:TCP 数据包的序列号。
  • ack 67890:确认号,指示已经接收的数据的最高序列号。
  • win 876:窗口大小,表示发送方可以继续发送多少数据,而无需等待确认。
  • options [TCPOptions]:TCP 选项,例如窗口缩放、时间戳等。
  • length 1500:数据包的长度。