在Windows下开发运行的环境,在调试网络环境时,可以借助wireshark等软件进行抓包分析,在linux或者Ubuntu等桌面版里也可以进行安装抓包工具进行抓包分析,但总有一些情况,无法直接运用工具,则需要使用到最简单的tcpdump命令进行网络抓包。
本文档统一为在Linux下终端上输入命令,arm版需先自行下载tcpdump源码包进行交叉编译,获得交叉编译下的tcpdump程序,再移植使用。
一般的,linux下抓包时,抓取特定的网络数据包到当前文件夹下的文件中,再把文件拷贝出来利用Windows下的wireshark软件进行分析。
tcpdump命令详解:(简单举例)
1:抓取所有经过eth0的网络数据包,当前eth0为10.0.10.125:
#tcpdump –i eth0 host 10.0.10.125
2:抓取所有源地址为eth0的网络数据包
#tcpdump –i eth0 src host 10.0.10.125
3:抓取所有目标地址为eth0的网络数据包
#tcpdump –i eth0 dst host 10.0.10.125
4:合起来,例如抓取设备eth0网络10.0.10.125到设备IP为10.0.10.126的数据包:
#tcpdump –i eth0 src host 10.0.10.125 and dst 10.0.10.126 -w filename.cap
抓取到的文件为filename.cap,然后将此文件拷贝到Windows下,对此文件进行分析即可。