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 <端口>
:捕获目标端口号为指定端口的流量。
- tcp
、udp
、icmp
:仅捕获指定协议类型的流量。
- 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
:数据包的长度。