如何对Android设备进行网络抓包

本文介绍了使用tcpdump对Android设备进行抓包的技术,包括下载、复制工具、设置读写权限、复制包到电脑以及使用wireshark进行分析的过程。通过抓包分析,能够有效诊断和解决访问服务器的间接性失败问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述:

       前段时间自己的app访问服务器的url总是会出现间接性失败的问题,于是服务器的同事开了个会,提出了他们服务器存在的这个bug,我的同事自然说自己的服务器没问题,然后要我重现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的文件夹

/*修改读写权限*/
mount -t yaffs2 -o remount,rw,noatime,nodiratime /mnt/sdcard/data/tcpdump
-t vfstype 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型。
-o options 主要用来描述设备或档案的挂接方式。

如果还是不行可以用下面指令修改读写权限
/*修改读写权限*/
chmod 6755 /data/local/tcpdump


5、将抓到的包复制到电脑

adb pull /sdcard/capture.pcap  C:\Users\XXX\Desktop\ capture.pcap

5、抓包完成,用wireshark进行分析

wireshark的下载链接很多,我就不贴了。

结论:

android设备抓包的方式还有不止这一种,假如你的电脑能开wifi热点的话,可以让android设备连接自己的wifi热点。可以直接用wireshark直接进行抓包,会简便很多。
抓包以及分析技能做网络应用的童鞋们还是需要掌握的,比如访问服务器速度过慢的原因,也可以通过抓包来进行分析。

下面我会继续介绍如何分析网络抓包,找出开头提到的访问服务器间隙性失败的原因。在抓包分析之前,先了解一下TCP的三次握手和四次握手
《TCP建立连接三次握手和断开连接四次握手 》,这篇文章从抓包分析了TCP建立连接的三次握手和四次握手机制



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值