zoukankan      html  css  js  c++  java
  • Linux下Tcpdump使用

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

    4. 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>

  • 相关阅读:
    【WPF】 打开本地的文件或者文件夹
    Angularjs中的拦截器 (卧槽,好牛逼)
    oracle中to_date() 与 to_char() 日期和字符串转换
    mysql中如何嵌套使用insert和select
    angularjs中的路由介绍详解 ui-route
    sql中的or的用法说明
    AngularJS路由 $state服务、路由事件、获取路由参数
    No identifier specified for entity
    常用正则表达式集锦
    APP_Store
  • 原文地址:https://www.cnblogs.com/hzl6255/p/6147985.html
Copyright © 2011-2022 走看看