tcpdump移植到开发板上

因为最近在调试1588的时钟同步功能,所以用到了tcpdump抓包工具;

第一次使用记录一下,搜索了一下这个工具很强大也很好用,和wireshark一起配合使用特别好用;

1、首先了解下tcpdump:

        对网上的数据报进行截获分析工具,tcpdump可以将网络中传输的数据包头完全解惑下来提供分析。支持【网络层、协议、主机端口的过滤】提供and or  not等逻辑语句来进行过滤;一般使用tcpdump抓包然后使用wireshark工具分析;

2、嵌入式系统中如何支持tcpdump工具:

        Tcpdump是开源工具,其本身需要链接libpcap库还需要flex、bison、m4等支持,下载源码包tcpdump-4.9.2.tar.gz、libpcap-1.8.1.tar.gz、flex-2.5.37.tar.gz、bison-3.0.4.tar.gz、m4-1.4.16.tar.gz,解压后进行交叉编译。

下载地址: TCPDUMP官网就有链接

libpcap-1.5.3.tar.gz   -----------------> libpcap-1.5.3.tar.gz

flex-2.5.37.tar.gz       -----------------> flex-2.5.37.tar.gz

bison-2.7.tar.gz         -----------------> bison-2.7.tar.gz

Home | TCPDUMP & LIBPCAP -------> tcpdump-4.99.1.tar.gz

Download: tcpdump-4.99.1.tar.gz (change log) (PGP signature and key) 版本选择之类的

Download: libpcap-1.10.1.tar.gz (change log) (PGP signature and key

git clone https://github.com/the-tcpdump-group/tcpdump
git clone https://github.com/the-tcpdump-group/libpcap

如何在嵌入式平台使用:

A: 下载源码  libpcap-1.5.3.tar.gz  和 tcpdump-4.99.1.tar.gz

在你的ubuntu或者其他主机上解压编译:

        我是PC下载后再上传到服务器解压编译的;

B:解压配置环境变量

新建一个目录存放这两个压缩文件 mkdir  tcpdump 

tar -zxvf  libpcap-1.5.3.tar.gz  得到   libpcap-1.5.3 

tar -zxvf  tcpdump-4.99.1.tar.gz  得到  tcpdump-4.99.1

设置环境变量也就是我们目标平台的交叉编译工具:存放到一个文件如tcpdump_env.sh

#/bin/bash
export PATH=$PWD/tools/xilinx-v2018.3/linux-i386/aarch64-linux-gnu/bin:$PWD/tools/bin:$PATH
export VIVADO_PATH=/home/code/data/tools/
export CROSS_COMPILE=aarch64-linux-gnu-
export CC=aarch64-linux-gnu-gcc
export ARCH=arm64
export XILINX=v2018.3

之后使用命令source tcpdump_env.sh 

C:配置编译生成Makefile

进入 libpcap-1.5.3  目录 然后执行配置语句生成makefile文件

./configure ac_cv_linux_vers=4.14.0 --host=arm-linux --with-pcap=linux --prefix=/xxx/tcpdump/tcpdump/ 

配置选项README.xxx文件有讲解一点点,,比如README.install;我没看太懂,也可以直接看这个脚本configure

ac_cv_linux_vers: 指定目标板子的linux版本

--prefix: 指定这个编译后生成的文件安装在那个目录

--host: 指定平台arm-linux

执行完成后:查看是否生成Makefile如果没有,很有可能是环境变量文件配置错误,检查下是否路径错了;

 他的CC编译工具应该就是我们的交叉编译工具:

 执行make   之后再  make   install 

之后就会在之前--prefix指定的目录下生成: bin  include lib share 这几个目录

 放到文件系统lib库中: /usr/lib 

 同理编译tcpdump使用同样的./configure xxx配置 生成Makefile; 之后

./configure ac_cv_linux_vers=4.14.0 --host=arm-linux --with-pcap=linux --prefix=/xxx/tcpdump/tcpdump_temp

会在tcpdump中生成  bin  share 两个文件夹: bin中就包含了tcpdump;

之后把这个tcpdump拷贝到文件系统中的/usr/sbin目录就ok了 

下一篇讲解tcpdump的命令:

tcpdump --help
tcpdump version 4.9.3
libpcap version 1.9.1 (with TPACKET_V3)
Usage: tcpdump [-aAbdDefhHIJKlLnNOpqStuUvxX#] [ -B size ] [ -c count ]
                [ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ]
                [ -i interface ] [ -j tstamptype ] [ -M secret ] [ --number ]
                [ -Q in|out|inout ]
                [ -r file ] [ -s snaplen ] [ --time-stamp-precision precision ]
                [ --immediate-mode ] [ -T type ] [ --version ] [ -V file ]
                [ -w file ] [ -W filecount ] [ -y datalinktype ] [ -z postrotate-command ]
                [ -Z user ] [ expression ]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值