tcpdump抓包工具的使用说明
tcpdump是一个用于截取网络分组,并输出分组内容的工具。凭借强大的功能和灵活的截取策略,使其成为类UNIX系统下用于网络分析和问题排查的首选工具
tcpdump 支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息
1.看是否安装:which tcpdump
yum install -y tcpdump
2. 列出抓包的接口 :
tcpdump -D (可以看出我的机器所有可以抓包的网络接口)
3特殊接口 any 可用于抓取所有活动的网络接口的数据包。我们就用如下命令先对 any 接口进行抓包:
tcpdump -i any
4. -c 选项可以用于限制 tcpdump 抓包的数量:
tcpdump -i any -c 5 (抓取少量包进行分析时需要这样)
5。上边的示例默认将ip地址和端口号解析为对应的接口名以及服务协议名称,而在通常的网络故障排查中使用ip地址和端口号更加利于分析问题:用-n显示ip地址
,-nn显示端口号。:
tcpdump -i any -c5 -nn
6. 理解抓取的报文:
第一个字段:抓取数据的时间 ip是网络层协议类型 192.168.43.ssh是源ip和协议(如果用-nn)显示的就是端口号,后边跟着的是目的ip和端口后边是TCP报文标记段
接下来是该数据包中数据的序列号。对于抓取的第一个数据包,该字段值是一个绝对数字,后续包使用相对数值,以便更容易查询跟踪。例如此处 seq 330576:330864代表该数据包包含该数据流的第 330576 到 330864 字节。
接下来是 ack 值:ack 1。该数据包是数据发送方,ack 值为 1
接下来字段是接收窗口大小 win 309,它表示接收缓冲区中可用的字节数
最后,length 372 代表数据包有效载荷字节长度。
7. 指定抓取包的时间戳,使用选项-tttt。
tcpdump -c 10 -tttt -i eno16777736
8.把抓取的数据包存取到文件,使用-w选项。
tcpdump -c 10 -tttt -n -i eno16777736 -wtcpdump.pcap
9.读取抓到的数据包(不能用vi读取,只能用tcpdump读)
Tcpdump -r a.pcap