在实际应用中开发中,嵌入式设备使用网络通信时,经常不好分析数据,通常只能使用串口打印和依耐服务器端使用抓包工具获取网络数据,使开发工作有不同程度的受到阻碍,这里简单的介绍一下如何使用tcpdump工具在嵌入式设备上抓包。

移植:
下载资源tcpdump,libpcap,可到官网上:http://www.tcpdump.org/ 下载,我这里下载的版本如下:

tcpdump-4.7.4.tar.gz 
libpcap-1.7.4.tar.gz 
也可以到我的csdn中下载:

http://download.csdn.net/detail/yuanbinquan/9556572

http://download.csdn.net/detail/yuanbinquan/9556592

交叉编译tcpdump:

1、交叉编译libpcap

打开configure屏蔽5254-5256行
#if test -z "$with_pcap" && test "$cross_compiling" = yes; then
#    as_fn_error $? "pcap type not determined when cross-compiling; use --with-pcap=..." "$LINENO" 5
#fi

#./configure --prefix=/home/tcpdump/Demo/ CC=arm-hisiv100nptl-linux-gcc --host=arm-linux
# make
#make install

2、交叉编译tcpdump

#./configure --prefix=/home/tcpdump/Demo/ CC=arm-hisiv100nptl-linux-gcc --host=arm-linux
#make
#make install

3、将/home/tcpdump/Demo/sbin 下的tcpdump 复制到你的开发上即可运行。

使用
下面就是对抓包工具的的使用简单介绍如下,直接复制网友的,嘿嘿嘿。。。

1.第一种是关于类型的关键字主要包括host,net,port

例如: host host 10.10.10.12,指明host 10.10.10.12是一台主机,net 202.0.0.0 指明 202.0.0.0是一个网络地址,port 80 指明端口号是80。如果没有指定类型,缺省的类型是host.

[root@platform_c ~]# tcpdump  host 10.10.10.12 -n
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
14:47:54.338648 IP 10.10.10.12 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 90, authtype simple, intvl 1s, length 20
14:47:55.339591 IP 10.10.10.12 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 90, authtype simple, intvl 1s, length 20
14:47:55.460784 IP 10.10.10.17.5540 > 10.10.10.12.scp-config: P 990305450:990305578(128) ack 3936126663 win 10281 <nop,nop,timestamp 128715924 4061149870>
14:47:55.461037 IP 10.10.10.12.scp-config > 10.10.10.17.5540: P 1:134(133) ack 128 win 10285 <nop,nop,timestamp 4061151871 128715924>
14:47:55.461090 IP 10.10.10.17.5540 > 10.10.10.12.scp-config: . ack 134 win 10281 <nop,nop,timestamp 128715924 4061151871>
14:47:56.340551 IP 10.10.10.12 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 90, authtype simple, intvl 1s, length 20
14:47:56.682367 arp who-has 10.10.10.12 tell 10.10.10.89
14:47:57.341512 IP 10.10.10.12 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 90, authtype simple, intvl 1s, length 20
14:47:57.461844 IP 10.10.10.17.5540 > 10.10.10.12.scp-config: P 128:256(128) ack 134 win 10281 <nop,nop,timestamp 128717925 40611518

2.第二种是确定传输方向的关键字主要包括src , dst ,dst or src, dst and src

这些关键字指明了传输的方向,例如:src 10.10.10.12,指明ip包中源地址是10.10.10.12, dst net 202.0.0.0 指明目的网络地址是202.0.0.0。如果没有指明方向关键字,则缺省是src or dst关键字。

[root@platform_c ~]# tcpdump  src 10.10.10.12 -n     
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
14:50:48.504155 IP 10.10.10.12 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 90, authtype simple, intvl 1s, length 20
14:50:49.132905 IP 10.10.10.12.21002 > 10.10.10.17.20742: P 1000890141:1000890152(11) ack 1991025729 win 2998
14:50:49.134210 IP 10.10.10.12.21002 > 10.10.10.17.20742: P 11:862(851) ack 209 win 3108
14:50:49.135543 IP 10.10.10.12.21002 > 10.10.10.17.20742: P 862:873(11) ack 230 win 3108
14:50:49.504790 IP 10.10.10.12 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 90, authtype simple, intvl 1s, length 20
14:50:49.548064 IP 10.10.10.12.scp-config > 10.10.10.17.5540: P 3936138234:3936138367(133) ack 990316714 win 10285 <nop,nop,timestamp 4061325974 128890011>
14:50:50.505743 IP 10.10.10.12 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 90, authtype simple, intvl 1s, length 20

3.第三种是协议的关键字,主要包括fddi,ip,arp,rarp,tcp,udp等类型。

Fddi指明是在FDDI(分布式光纤数据接口网络)上的特定的网络协议,实际上它是"ether"的别名,fddi和ether具有类似的源地址和目的地址,所以可以将fddi协议包当作ether的包进行处理和分析。其他的几个关键字就是指明了监听的包的协议内容。如果没有指定任何协议,则tcpdump将会监听所有协议的信息包。

[root@platform_c ~]# tcpdump  tcp  port 80 -n                    
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
14:48:51.852424 IP 10.10.10.12.20278 > 10.10.10.17.http: S 1416876662:1416876662(0) win 14600 <mss 1460,nop,nop,sackOK,nop,wscale 4>
14:48:51.852447 IP 10.10.10.17.http > 10.10.10.12.20278: S 1206855618:1206855618(0) ack 1416876663 win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 4>
14:48:51.852568 IP 10.10.10.12.20278 > 10.10.10.17.http: . ack 1 win 913
14:48:51.852590 IP 10.10.10.12.20278 > 10.10.10.17.http: R 1:1(0) ack 1 win 913

除了这三种类型的关键字之外,其他重要的关键字如下:gateway, broadcast,less,greater,还有三种逻辑运算,取非运算是'not ' ,'! ',与运算是'and','&&';或运算 是'or','││';这些关键字可以组合起来构成强大的组合条件来满足人们的需要,下面举几个例子来说明。普通情况下,直接启动tcpdump将监视第一个网络界面上所有流过的数据包。

[root@platform_c ~]# tcpdump  src 10.10.10.12  and dst 10.10.10.17 -n
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
14:51:45.867526 IP 10.10.10.12.20336 > 10.10.10.17.http: S 492616728:492616728(0) win 14600 <mss 1460,nop,nop,sackOK,nop,wscale 4>
14:51:45.867663 IP 10.10.10.12.20336 > 10.10.10.17.http:

A. tcpdump –i eth0 –c 10

使用-i参数指定tcpdump监听的网络界面,这在计算机具有多个网络界面时非常有用,
使用-c参数指定要监听的数据包数量,
使用-w参数指定将监听到的数据包写入文件中保存

B.想要截获主机172.16.14.107和主机172.16.14.27或172.16.14.99的通信,使用命令:(在命令行中使用括号时,一定要用’/’
tcpdump host 172.16.14.107 and / (172.16.14.27or172.16.14.99 /)

C.如果想要获取主机172.16.14.107除了和主机172.16.14.27之外所有主机通信的ip包,使用命令:
tcpdump ip host 172.16.14.107 and ! 172.16.14.27

D.如果想要获取主机172.16.14.107接收或发出的telnet包,使用如下命令:
tcpdump tcp port 23 host 172.16.14.107

E.对本机的udp 123 端口进行监视 (123 为ntp的服务端口)
tcpdump udp port 123

F.系统将只对名为hostname的主机的通信数据包进行监视。主机名可以是本地主机,也可以是网络上的任何一台计算机。下面的命令可以读取主机hostname发送的所有数据: 
tcpdump -i eth0 src host hostname

G.下面的命令可以监视所有送到主机hostname的数据包: 
tcpdump -i eth0 dst host hostname

#src表示源,即发送

#dst表示目的地,即接收

H.我们还可以监视通过指定网关的数据包: 
tcpdump -i eth0 gateway Gatewayname

I.如果你还想监视编址到指定端口的TCP或UDP数据包,那么执行以下命令: 
tcpdump -i eth0 host hostname and port 80

J.如果想要获取主机172.16.14.107接收或发出的telnet包,使用如下命令:
tcpdump tcp port 23 host 172.16.14.107

K. 如果我们只需要列出送到80端口的数据包,用dst port 80;如果我们只希望看到返回80端口的数据包,用src port 80。 
tcpdump –i eth0 host hostname and dst port 80  目的端口是80
或者
tcpdump –i eth0 host hostname and src port 80  源端口是80

80端口一般是提供http的服务的主机

tcpdump输出格式

总的的输出格式为:系统时间 来源主机.端口 > 目标主机.端口 数据包参数

如果要用wireshark分析数据:

tcpdump -i eth0 -c 100 -s 0 -w /home/data.pcap

直接使用wireshark /home/data.pcap即可 分析结果如下图

————————————————
版权声明:本文为CSDN博主「yuanbinquan」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yuanbinquan/article/details/51735138

arm上使用tcpdump抓包相关推荐

  1. tcpdump抓包并保存到远程服务器

    有的时候,运行tcpdump抓包进程的主机A可能没有足够的硬盘空间.例如我们使用树霉派搭建了一个热点,然后我们想在树霉派上抓包,因为树霉派的存储很小,所以很容易在短时间内将存储空间使用完. 为了解决该 ...

  2. Linux Kernel TCP/IP Stack — L1 Layer — tcpdump 抓包

    目录 文章目录 目录 tcpdump CLI 关键字 常用指令选项 常规操作示例 查看哪些接口可用于捕获 过滤主机 过滤端口 过滤网络(网段) 过滤协议 复杂的逻辑表达式过滤条件 检查数据包内容 输出 ...

  3. linux tcpdump 抓包

    tcpdump是linux命令行下常用的的一个抓包工具,记录一下平时常用的方式,测试机器系统是ubuntu 12.04. tcpdump的命令格式 tcpdump的参数众多,通过man tcpdump ...

  4. 转 Wireshark和TcpDump抓包分析心得

    1. Wireshark与tcpdump介绍 Wireshark是一个网络协议检测工具,支持Windows平台和Unix平台,我一般只在Windows平台下使用Wireshark,如果是Linux的话 ...

  5. tcpdump抓包对性能的影响

    from:http://blog.csdn.net/dog250/article/details/52502623?ref=myread 一直以来,提到这个话题,大家更多的关注的是tcpdump抓包本 ...

  6. 在 Linux 命令行中使用 tcpdump 抓包

    tcpdump抓包时,如果-i选项指定为一个网卡地址,那么抓取的数据包数据链路层是以太网头部:如果指定any,则以太网头部将被替换为linux cooked capture头部 # tcpdump - ...

  7. tcpdump抓包ftp协议_tcpdump抓包并保存成cap文件

    首选介绍一下tcpdump的常用参数 tcpdump采用命令行方式,它的命令格式为: tcpdump [ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ] [ -i 网络接 ...

  8. 【linux】【tcpdump】linux之tcpdump抓包及wireshark分析详解

    linux的tcpdump命令主要用于网络问题的调试中,通过抓取传输过程的数据包进行分析和调试.而wireshark则是一款功能强大,使用方便的数据包分析工具,tcpdump+wireshark组合使 ...

  9. tcpdump抓两个网卡的包_tcpdump 抓包统计 分享助,请问用tcpdump抓包后,如何查看每个包...

    如何用tcpdump抓包统计流量 TCPDUMP 抓包 怎么查看 抓的包的内容小编们每天忙忙碌碌,谁还记得小时候那些大大"的梦想.多久,没有停下脚步,哪怕只是单纯的晒晒太阳.现在的人,科技先 ...

最新文章

  1. 测试MM32F3277-MicroPython 2021-11-17 版本
  2. 抖音出现大量“三岁用户”,马化腾李彦宏都被还童
  3. CentOS 7 yum方式快速安装MongoDB
  4. 漫谈MySQL权限安全,跳槽薪资翻倍
  5. 【转】DICOM的常用Tag分类和说明!!!!
  6. 【Java】Socket多客户端Client-Server聊天程序
  7. nginx启动重启停止
  8. ASICFPGA中的三态
  9. python工资一般多少-Python工资多少?就业发展前景怎么样?
  10. cscope索引软链接解决方法
  11. 测试象棋水平用哪个软件好,佳佳象棋软件作者李国来对象棋软件引擎的专业看法及测试指导...
  12. 【游戏策划】【碎碎念】关于横版跳跃类游戏的关卡设计
  13. python免费课件-python入门ppt下载
  14. 普元:解读歼-20背后的国家安全重要领域信息化跨越
  15. 关于当前安全设置不允许下载文件问题的解决
  16. 倾斜摄影文件和BIM文件加入iServer
  17. TAP-Win32 Adapter OAS“的网络适配器删除后总是出现(kms激活器及win10激活)
  18. 用MATLAB仿真DSB调制
  19. C++实现复杂链表的复制
  20. 700页JVM虚拟机实战手册,呕心巨作,值得一看

热门文章

  1. 美容院没有顾客怎么办?
  2. JMF 利用RTPManager进行视频音频流传输聊天
  3. 价值互链网--从跨链明星以太宇宙ETU的技术创新说起
  4. android和MTKP60哪个好,联发科p60怎么样 联发科p60跟高通660哪个好
  5. 微博/微信登录与分享、微信/支付宝支付
  6. 皕杰报表自定义扩展~自定义函数
  7. 基于arduino的校园灯光控制_基于51单片机智能灯光控制系统(人体感应)
  8. 用multipart/form-data提交表单文件数据获取不了解决办法
  9. 显示器驱动程序无法启动,改为使用Microsoft基本显示器驱动程序【已解决】
  10. 制作gif小软件的使用