Android之用tcpdump常用抓包命令使用总结

来源:互联网 发布:unity3d能做帧动画吗 编辑:程序博客网 时间:2024/06/04 18:17

1、搞好Android手机抓包环境

         1 手机需要root
         2 把tcpdump工具 push到手机 /data/local 目录下去,至于怎么搞,读者百度。

2、常见tcpdump抓包命令介绍

          -w    把包数据直接写入文件而不进行分析和打印输出. 这些包数据可在随后通过-r 选项来重新读入并进行分析和打印.
           -i  interface   指定tcpdump 需要监听的接口.  如果没有指定, tcpdump 会从系统接口列表中搜寻编号最小的已配置好的接口(不包括 loopback 接口).一但找到第一个符合条件的接口, 搜寻马上结束.比如我们可以 ,any 就是任何的意思
  
-i tun0   -i eth0  -i any

        -vv   产生比-v更详细的输出. 比如, NFS回应包中的附加域将会被打印, SMB数据包也会被完全解码.
-s  snaplen
    设置tcpdump的数据包抓取长度为snaplen, 如果不设置默认将会是68字节(而支持网络接口分接头(nt: NIT, 上文已有描述,可搜索'网络接口分接头'关键字找到那里)的SunOS系列操作系统中默认的也是最小值是96).68字节对于IP, ICMP(nt: Internet Control Message Protocol,因特网控制报文协议), TCP 以及 UDP 协议的报文已足够, 但对于名称服务(nt: 可理解为dns, nis等服务), NFS服务相关的数据包会产生包截短. 如果产生包截短这种情况, tcpdump的相应打印输出行中会出现''[|proto]''的标志(proto 实际会显示为被截短的数据包的相关协议层次). 需要注意的是, 采用长的抓取长度(nt: snaplen比较大), 会增加包的处理时间, 并且会减少tcpdump 可缓存的数据包的数量, 从而会导致数据包的丢失. 所以, 在能抓取我们想要的包的前提下, 抓取长度越小越好.把snaplen 设置为0 意味着让tcpdump自动选择合适的长度来抓取数据包,一般我们这样使用.

     -s 0

          udp 指定协议

         and port 4567 指定端口4567   ,还可以是or and 这些读者自己测试
         -XX   当分析和打印时, tcpdump 会打印每个包的头部数据, 同时会以16进制和ASCII码形式打印出每个包的数据, 其中包括数据链路层的头部.这对于分析一些新协议的数据包很方便.
         host  22.22.22.22 指定主机
         
         tcpdump -i eth0 src host hostname  截获主机hostname发送的所有数据
         tcpdump -i eth0 dst host hostname    监视所有送到主机hostname的数据包

这些都是常见的,如果需要读者再去百度查清楚


3、常见使用总结

./tcpdump -i any -nv -s 0 -Xx -w ./capture.cap//抓取tun 0的包./tcpdump -i tun0 nv -s 0 -Xx -w ./capture.cap./tcpdump - i tun0 -vv  udp and port 53./tcpdump -i eth0 -s 0 udp and port 53 -w ./1.cap



0 0
原创粉丝点击