武汉嵌入式培训
达内武汉民大中心

15271940953

热门课程

武汉嵌入式培训机构:嵌入式开发之工具--TCPDUMP移植和使用

  • 时间:2017-05-23
  • 发布:武汉嵌入式培训
  • 来源:嵌入式教程

今天,达内武汉嵌入式培训机构的小编将要为大家带来的是嵌入式开发之工具--TCPDUMP移植和使用。

一. tcpdump概念

tcpdump就是 dump the traffic on a etwork,根据使用者的定义对网络上截获的数据包进行分析的工具。tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。其下载地址为:http://www.tcpdump.org/

二.tcpdump相关参数

tcpdump参数分为以下几类:

1.按照关于类型的关键字,主要包括host,net,port。

2.确定传输方向的关键字,主要包含src,dst,dst or src, dst and src。这些关键字指明了传输的方向。

3.关于协议的关键字,主要包括fddi,ip,arp,tcp,udp等类型。

除了这三种类型的关键字之外,其他重要的关键字如下:gateway,broadcast,less,greater,还有三种逻辑运算,取非运算是’not’,’|’,与运算是’and’,’&&’,或运算是’or’,’ ||’;这些关键字可以组合起来。

三实例

1.使用如下命令,默认启动。一般情况下,直接启动tcpdump将监视第一个网络接口上所有流过的数据包。

#tcpdump

2.监视指定网络接口上的数据包

#tcpdump -i eth0

note:

(1)使用-i可以指定tcpdump监听的网络接口。

(2)使用-c参数指定要监听的数据包流量。

(3)使用-w参数指定将监听到的数据写入文件中保存。

3.监视指定主机的数据包

(1)打印所有进入或离开主机jibo的数据包

#tcpdump hostjibo

(2)监听jibo与tiger或者与john之间通信的数据包

#tcpdump  host jibo and tigerorjohn

(3)监听主机210.27.48.1和主机210.27.48.2或210.27.48.3的通信

#tcpdumphost  210.27.46.1 and 210.27.48.2or210.27.48.3

(4)监听tiger与任何其他主机通信的IP数据包,但不包括与jibo之间的数据包

#tcpdump ip hosttiger and not jibo

(5)监听主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包

#tcpdump ip  host 210.27.48.1 and ! 210.27.48.2

(6)监听主机jibo发送的所有数据

#tcpdump -i eth0src host jibo

(7)监听所有发送到主机jibo的数据包

#tcpdump  -i eth0 dst host jibo

3.监听指定主机和端口的数据包

(1)监听主机210.27.481.接收或发送出去的telnet包,

#tcpdump  tcp port 23 host 210.27.48.1

(2)监听本机udp 123端口进行监视123为ftp的服务端口

#tcpdump udp port123

四.tcpdump移植

1.编译安装libcap-1.4.0

(1)解压并进入libcap-1.4.0目录,打开configure,将下面的代码注释掉

  1. <span style="font-size:18px;"><span style="font-family:SimSun;">if test –z  “$with_pcap” && test “$cross_compile” =yes; then  
  2. { { echo “$as_me:$LINENO:error: pcap type not determined when cross-compiling; use –with-pcap = …” > &5  
  3. echo  “$as_me: error:pcap type not determined when cross-compile:use – with-pcap= …” > &2;}  
  4. fi  
  5. </span></span>  

(2)运行./configure–host =arm-none-linux-gnueabi

#./configure  --host =arm-none-linux-gnueabi

注:此处嵌入式环境平台使用的时arm-none-linux-gnueabi交叉链,如果你使用的时其他的交叉编译链则改为自己的即可。

(3)配置完成后,配置之后,会生成Makefile。打开Makefile发现CC=arm-none-gnueabi,说明交叉编译配置成功。

(4)执行make命令进行编译

#make

(5)执行makeinstall命令进行安装。执行成功后会在/usr/local/include目下有3个pcap文件,表明libpcap编译安装成功。

#sudo makeinstall

Note:

如果,使用sudo make install编译时提示找不到交叉编译链找不到。则用su命令切到root用户,然后使用source命令,激活交叉编译链变量。

2.编译安装tcpdump-4.4.0

(1)进入tcpdump目录,修改configure,将下面的代码注释掉

#vim configure

  1. <span style="font-size:18px;"><span style="font-family:SimSun;"># if test $ac_cv_linux_vers = unknown; then  
  2. # as_fn_error $? “cannot determine linux version when cross-compiling”  “$LINENO” 5  
  3. # fi  
  4. </span></span>  

(2)运行configure命令生成makefile

#./configure  --host =arm-none-linux-gnueabi

(3) 打开生成的Makefile,修改以下编译选项

  1. <span style="font-size:18px;"><span style="font-family:SimSun;">INCLS= -I. -I./../libpcap-1.4.0 -I./missing -I/usr/local/include  
  2. DEFS= -DHAVE_CONFIG_H -I/usr/local/include -I./missing -D_U=”__attribute__((unused))”  
  3. LDFLAGS= -L/usr/local/lib  
  4. </span></span>  

(4)执行make命令进行编译

#make

Note:

在进行编译时候,如果提示无法找到libpcap.a,是由于libpcap的目录名要和Makefile中LIBS = ./../libcap-1.4.0/libpcap.a中libcap-1.4.0一致。

(5)执行makeinstall命令进行安装。执行成功后会在/usr/local/sbin/目录下有一个tcpdump的二进制文件,该文件就是交叉编译成功的tcpdump。

#sudo makeinstall

(6)使用以下命令减少生成可执行文件的大小

#arm-none-linux-genueabi-striptcpdump

以上就是今天的分享内容,更多知识敬请关注达内武汉嵌入式培训机构官网!

上一篇:武汉嵌入式培训:FPGA的嵌入式系统
下一篇:武汉嵌入式培训机构:掌握嵌入式开发系统的七个小技巧

武汉嵌入式培训:嵌入式如何系统学习

RTOS核心——调度和分割

向量中断与非向量中断

选择城市和中心
贵州省

广西省

海南省