tcpdump官网:http://www.tcpdump.org/

转载于:http://www.cnblogs.com/hzl6255/p/6147985.html

目录

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查看) tcpdump -i any –w capture.pcap:   截取所有接口的数据并保存至capture.pcap

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的编译和使用的更多相关文章

  1. linux 中部署ant编译的包中缺少问题

    今天遇到在window上部署ant编译的包,能运行正常,但部署在linux中出现跳不进jsp中,出现404问题,后来经过排查在jsp中<%@taglib prefix="c" ...

  2. Linux中 cmake-3.x 编译安装以及man page添加

    首先回顾一下 cmake-2.x 的编译安装. ================ cmake-2.x编译安装说明 ================编译安装的命令: ./bootstrap --pref ...

  3. 在linux中使用cmake编译运行cocos2d-x 3.4 projects

    原因: 由于不想在真机环境和 ide中调试环境, 只想在linux端进行 调试和运行, 需要使用cmake对现有的游戏进行编译(cocos2dx-lua 3.4) 修改步骤: 1.修改framewor ...

  4. Linux中命令行编译java接口总是提示找不到符号的疑难杂症的解决

    今天学习java的接口,在linux的命令行下写代码练练手吧,啪啪啪一顿猛敲,写了一个接口UsbInserface,UDisk继承UsbInterface,写完了那就编译到bin目录呗. 当时写程序的 ...

  5. linux中使用vim编译C++程序

    Vi三种模式详解 命令行模式 (command mode/一般模式) 任何时候,不管用户处于何种模式,只要按一下“ESC”键,即可使Vi进入命令行模式:我们在shell环境(提示符为$)下输入启动Vi ...

  6. Linux中使用gcc编译文件

    一个项目中可能有多个cpp文件,在linux下编译执行过程如下: g++ main.cpp distance.cpp ./a.out 即可一起编译两个文件,然后执行该程序.

  7. Linux中MySQL5.6编译安装与MySQL5.7二进制安装步骤

    首先,介绍一下MySQL的几种安装方式 1.RPM.Yum 的安装方式:安装方便.安装速度快,无法定制 2.二进制:不需要安装,解压即可使用,不能定制功能 3.编译安装:可定制,安装慢. 编译安装中需 ...

  8. 举例讲解Linux中tcpdump工具的应用

    先来看一个比较基本的用法: tcpdump -i eth0 其中,eth0为参数值,表示需要抓包的网口,这是个必需参数哦. tcpdump的具体参数及意义: -i:指定tcpdump监听的网络接口 - ...

  9. Linux中程序的编译和链接过程

    1.从源码到可执行程序的步骤:预编译.编译.链接.strip 预编译:预编译器执行.譬如C中的宏定义就是由预编译器处理,注释等也是由预编译器处理的. 编译: 编译器来执行.把源码.c .S编程机器码. ...

随机推荐

  1. ThinkPHP 3.2.3 使用 Swift Mailer 邮件系统发送邮件

    SwiftMailer 下载地址:https://github.com/swiftmailer/swiftmailer 版本:swiftmailer-5.x 把压缩包解压到 /ThinkPHP/Lib ...

  2. centos部署gitlab服务器

    gitlab的安装和配置非常简单,关于git,这里摘抄一下百度百科: Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.Git是一个开源的分布式版本控制系统,可以有效. ...

  3. Intellij IDEA如何使用Maven Tomcat Plugin运行web项目(转)

    首先,Run --> Edit Configurations,这时候如下图: 然后点击左上角的加号,可以添加一个新的配置,如下图: 选择Maven,如下图: 下面填上自己的配置信息,点击appl ...

  4. sql条件为空查询全部,不为空按条件查询以及多条件筛选查询。

    procedure queryLackLonOrLatTdCell(i_region_name varchar2, i_state varchar2) is begin select region_n ...

  5. java类初始化的过程

    在复习Thinking in java的过程中看到了相关内容,顺便整理一下,像下面一样的代码具体的执行顺序(ABCD都是类) public class A { public A(String text ...

  6. iOS10配置说明

    1:如果你的App想要访问用户的相机.相册.麦克风.通讯录等等权限,都需要进行相关的配置,不然会直接crash掉. 要想解决这个问题,只需要在info.plist添加NSContactsUsageDe ...

  7. Spring boot学习一

    SSM框架:Spring+SpringMVC+MyBatisSpring Boot一.pom文件:pom.xml中添加:    <!--spring-boot-starter-web提供了对we ...

  8. CSS 的定位方式和含义

    CSS 的定位方式和含义 总结一下 CSS 的定位方式.CSS 的定位 position 是处理页面布局时非常重要的属性. CSS 中有 3 种基本的定位机制:普通流.浮动和绝对定位. 在没有指定的情 ...

  9. Spring原理解析-利用反射和注解模拟IoC的自动装配

  10. Windows7+VirtualBox+Ubuntu本地开发环境搭建

    首先下载相应的VirtualBox和Ubuntu镜像文件 安装Ubuntu操作系统 一 网络设置 将虚拟机的network连接模式设置为Bridge模式,注意无线网卡要与本机的无线网卡名称一致 在wi ...