1. 下载安装包
官方网站:http://www.tcpdump.org/
需要下载libpcap包和tcpdump包
2.配置环境
2.1 将下载的两个安装包解压到同一个目录下,例如:~/tools/tcpdump/packages
tar -xzvf ./libpcap-1.10.1.tar.gz
tar -xzvf ./tcpdump-4.99.1.tar.gz
2.2 添加交叉编译工具链路径到环境变量
例如我的交叉编译工具链的路径是:
/home/scottcai/workspace/B02_SOC_Linux_SRC/ambalink_sdk_4_14/output.oem/ambalink/host/bin/aarch64-linux-gnu-gcc
那么执行:
export PATH=/home/scottcai/workspace/B02_SOC_Linux_SRC/ambalink_sdk_4_14/output.oem/ambalink/host/bin/:$PATH
3.编译libpcap
cd libpcap-1.10.1/
./configure --prefix=~/tools/tcpdump/targets --host=arm-linux --target=arm-linux CC=aarch64-linux-gnu-gcc --with-pcap=linux
make
mak install
编译成功后会在~/tools/tcpdump/targets目录下生成三个个文件夹bin, include和lib里面包含了libpcap的头文件, 库及配置信息
4.编译tcpdump
cd tcpdump-4.99.1/
./configure --prefix=~/tools/tcpdump/targets --host=arm-linux --target=arm-linux CC=aarch64-linux-gnu-gcc ac_cv_linux_vers=2
make
make install
编译完成后会在~/tools/tcpdump/targets/bin/目录下找到独立的可执行文件tcpdump,上传到板子上运行即可
5.tcpdump命令
tcpdump -D: 显示所有支持截取的设备
tcpdump -i eth0 -w capture.pcap: 截取eth0接口的数据并保存至capture.pcap(可用wireshark查看)
tcpdump -i any –w capture.pcap: 截取所有接口的数据并保存至capture.pcap