tcpdump简介
tcpdump 是一个流行的命令行网络抓包工具,它允许用户捕获和分析网络流量。这个工具在 Unix 和类 Unix 操作系统中广泛使用,如 Linux 和 macOS。tcpdump 可以捕获经过网络接口的数据包,并提供有关这些数据包的详细信息,包括源和目的 IP 地址、端口号、协议类型、时间戳以及数据包的内容等。
语法

option
- -n:不把ip转化成域名,直接显示 ip,避免执行 DNS lookups 的过程,速度会快很多
- -nn:不把协议和端口号转化成名字,速度也会快很多
- -w:使用 -w参数后接一个以
.pcap后缀命令的文件名,就可以将 tcpdump 抓到的数据保存到文件中
-- tcpdump icmp -w icmp.pcap
- -r:从文件读取数据
-- tcpdump -r icmp.pcap
- -v/-vv/-vvv:控制详细内容的输出
- -i:指定要过滤网卡的接口
-- tcpdump -i eth0 / -i any查看所有网卡
- -Q:选择是入方向还是出方向的数据包,可选项有:in, out, inout,也可以使用 --direction=[direction] 这种写法
- -c:捕获指定个数的包后退出
tcpdump输出解析
14:08:39.633984 IP 124.89.117.166.3458 > 172.16.0.168.443: Flags [S], seq 1033922614, win 64240, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
- 时分秒毫秒 --14:08:39.633984
- 网络协议IP --IP
- 源IP地址+端口号 --124.89.117.166.3458
- 数据流向 -- >
- 目的IP地址+端口号 -- 172.16.0.168.443
- -- 172.16.0.168.443
- 冒号 -- :
- 数据包内容,包括Flags 标识符,seq 号,ack 号,win 窗口,数据长度 length -- Flags [S], seq 1033922614, win 64240, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
Flags标识符
使用 tcpdump 抓包后,会遇到的 TCP 报文 Flags,有以下几种:
[S]: SYN(开始连接)[P]: PSH(推送数据)[F]: FIN (结束连接)[R]: RST(重置连接)[.]: 没有 Flag (意思是除上面四种类型外的其他情况,有可能是 ACK 也有可能是 URG)