tcpdump 官网:http://www.tcpdump.org/
转载于:http://www.cnblogs.com/hzl6255/p/6147985.html
目录
{aa14aa} 是一款用来截取网络数据的工具 这里主要介绍的是为嵌入式 Linux 编译 tcpdump 的方法
首先去官网下载源代码, 需要下载 tcpdump 和 libpcap, 将他们解压到同一个目录下~/tcpdump/papage/
进入 libpcap 源码所在目录, 执行如下命令
- . / configure--prefix = ~ / tcpdump / tools--host = arm - linux--target = arm - linux CC = arm - linux - xxx - gcc--with - pcap = linux make;
- make install
编译成功后会在~/tcpdump/tools 目录下生成三个个文件夹 bin, include 和 lib 里面包含了 libpcap 的头文件, 库及配置信息
进入 tcpdump 源码所在目录, 执行如下命令
- . / configure--prefix = ~ / tcpdump / tools--host = arm - linux--target = arm - linux CC = arm - linux - xxx - gcc ac_cv_linux_vers = 2 make;
- make install
编译完成后会在~/tcpdump/tools/sbin 目录下找到独立的可执行文件 tcpdump
这里需要说明的是 CC 参数指定了交叉编译器, 编译两者时需要指定相同的目录, 否则在编译 tcpdump 时需要指定 libpcap 的路径
tcpdump 有如下常用命令
- tcpdump -D: 显示所有支持截取的设备 tcpdump -i eth0 -w capture.pcap: 截取eth0接口的数据并保存至capture.pcap(可用wireshark查看) tcpdump -i any –w capture.pcap: 截取所有接口的数据并保存至capture.pcap
除了网络数据包, tcpdump 还可以截取 usb 数据 前提是系统中支持 usbmon, 参考 <{aa11aa}>
通过如下命令安装 usbmon 模块
- modprobe usbmon(如果已经编译进内核该步骤则不需要) mount -t debugfs none /sys/kernel/debug ls /sys/kernel/debug/usb/usbmon tcpdump -i usbmon1 -w usb.pcap
参考: <{aa10aa}>
来源: