怎样对Android设备进行网络抓包
问题描写叙述:
前段时间自己的app訪问server的url总是会出现间接性失败的问题,于是和server的同事开了个会。提出了他们server存在的这个bug,我的同事自然说自己的server没问题,然后要我重现bug然后提供抓包给他分析。
所以我自己去折腾了各种网络抓包的方法。以下介绍一种实际可行的对android设备抓包的方法。
解决方式:
利用tcpdump对android设备进行抓包,用wireshark进行抓包分析。
在进行抓包之前,须要将设备进行root,推荐是用root工具king root。成功率较高。
1、下载tcpdump
我给大家准备好了tcpdump的下载地址
http://www.strazzere.com/android/tcpdump
2、将tcpdump复制进自己的android设备
不须要adb shell进入设备。直接运行adb push e:\tools\tcpdump /data/local/tcpdump将文件拷贝到指定的目录。
能够手动复制,也能够利用adb push指令进行复制。
这个指令须要进入到你adb所在的文件夹才干运行。
复制完毕后能够用ls查看是否复制成功。
3、进入到tcpdump相应的目录
cd /data/local
4、运行tcpdump的抓包指令
./tcpdump -p -vv -s 0 -w /sdcard/capture.pcap
正常情况下,是能够抓包成功过了。可是你可能会遇到以下的提示
这样的情况下须要对tcpdump进行读写授权,运行读写权限的时候。先进行adb shell进入设备。不须要进入到tcpdump的目录
假设还是不行能够用以下指令改动读写权限
5、将抓到的包拷贝到电脑
adb pull /sdcard/capture.pcap C:\Users\XXX\Desktop\capture.pcap5、抓包完毕。用wireshark进行分析
wireshark的下载链接非常多,我就不贴了。结论:
android设备抓包的方式还有不止这一种,假如你的电脑能开wifi热点的话,能够让android设备连接自己的wifi热点。能够直接用wireshark直接进行抓包。会简便非常多。
抓包以及分析技能做网络应用的童鞋们还是须要掌握的,比方訪问server速度过慢的原因,也能够通过抓包来进行分析。
以下我会继续介绍怎样分析网络抓包。找出开头提到的訪问server间隙性失败的原因。在抓包分析之前,先了解一下TCP的三次握手和四次握手
《TCP建立连接三次握手和断开连接四次握手 》。这篇文章从抓包分析了TCP建立连接的三次握手和四次握手机制