码迷,mamicode.com
首页 > 系统相关 > 详细

Linux中tcpdump的编译和使用

时间:2016-12-09 08:32:09      阅读:251      评论:0      收藏:0      [点我收藏+]

标签:介绍   包含   efi   repr   com   mil   配置信息   blog   bug   

1. 介绍

tcpdump是一款用来截取网络数据的工具
这里主要介绍的是为嵌入式Linux编译tcpdump的方法

2. 编译

首先去官网下载源代码, 需要下载tcpdump和libpcap, 将他们解压到同一个目录下~/tcpdump/papage/

2.1 编译libpcap

进入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的头文件, 库及配置信息

2.2 编译tcpdump

进入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的路径

3. tcpdump命令

tcpdump有如下常用命令

tcpdump -D:                       显示所有支持截取的设备
tcpdump -i eth0 -w capture.pcap:  截取eth0接口的数据并保存至capture.pcap(可用wireshark查看)

4. tcpdump截取usb数据

除了网络数据包, tcpdump还可以截取usb数据
前提是系统中支持usbmon, 参考<CentOS 7下Wireshark捕获USB数据包>

通过如下命令安装usbmon模块

modprobe usbmon(如果已经编译进内核该步骤则不需要)
mount -t debugfs none /sys/kernel/debug
ls /sys/kernel/debug/usb/usbmon
./tcpdump -i usbmon1 -w usb.pcap

参考:
<man tcpdump>

Linux中tcpdump的编译和使用

标签:介绍   包含   efi   repr   com   mil   配置信息   blog   bug   

原文地址:http://www.cnblogs.com/hzl6255/p/6147985.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!