工具-tcpdump

Posted by 周思进 on November 3, 2019

嵌入式设备抓包一般都会使用到tcpdump,抓到包之后,一般也是把数据包拷贝到PC上,再通过wireshark来进行分析,下面针对常用的tcpdump选项进行说明。

选项:
-i 指定要抓包的网卡,如果要抓取所有网卡的包,则指定any即可

-s 指定要抓的每个包的大小,默认抓取长度为65535字节,如设置为0则表示抓取65535字节。一般使用场景就是问题需要长时间运行抓包,实际并不关心发送的数据,只关注协议部分交互是否正常,则可以限定每个抓包长度,这样就大大缩小抓包文件,也便于分析

-p 关闭混杂模式;默认开启混杂模式

-w file 将抓取的数据保持到file文件

-c 指定抓取数据包的个数

-C 指定单个文件大小,单位1MB,因为抓包文件太大,打开分析都会相当缓慢,如果抓取的数据量大,则要考虑分文件存储

-n 不将IP和端口等转换成名字形式


关键字(详细见man 7 pcap-filter):
tcp、udp、arp、ether、ip、ip6、icmp、icmp6、igmp等指定要抓取的协议名需紧跟在tcodump后面。
如:ether [src/dst] ehost : 表示要抓取对应mac地址的报文

[src/dst] host host :前一个host是关键字,后一个host表示所要抓取的主机(可以是域名,也可以是ip),注意这里的src/dst和前面的ether前后顺序是相反的。
如: tcpdump host ip1 and\or ip2

[src/dst] port : 指定抓取的端口号;portrange 指定端口范文,如 portrange 1000-2000

broadcast 广播报文 ; multicast 多播报文