- 前言
- 读者对象
- 如何阅读本书
- 勘误和支持
- 致谢
- 第 1 篇 高性能网站构建
- 第 1 章 深入理解 DNS 原理与部署 BIND
- 第 2 章 全面解析 CDN 技术与实战
- 第 3 章 负载均衡和高可用技术
- 第 4 章 配置及调优 LVS
- 第 5 章 使用 HAProxy 实现 4 层和 7 层代理
- 第 6 章 实践 Nginx 的反向代理和负载均衡
- 第 7 章 部署商业负载均衡设备 NetScaler
- 第 8 章 配置高性能网站
- 第 9 章 优化 MySQL 数据库
- 第 2 篇 服务器安全和监控
- 第 10 章 构建企业级虚拟专用网络
- 第 11 章 实施 Linux 系统安全策略与入侵检测
- 第 12 章 实践 Zabbix 自定义模板技术
- 第 13 章 服务器硬件监控
- 第 3 篇 网络分析技术
- 第 14 章 使用 tcpdump 与 Wireshark 解决疑难问题
- 第 15 章 分析与解决运营商劫持问题
- 第 16 章 深度实践 iptables
- 第 4 篇 运维自动化和游戏运维
- 第 17 章 使用 Kickstart 完成批量系统安装
- 第 18 章 利用 Perl 编程实施高效运维
- 第 19 章 精通 Ansible 实现运维自动化
- 第 20 章 掌握端游运维的技术要点
- 第 21 章 精通手游运维的架构体系
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
最佳实践 74:在 Android 系统上抓包的最佳方法
随着移动应用的增加,移动设备访问系统应用的情况越来越多,我们经常会遇到有用户抱怨说使用移动设备访问网站等业务慢的问题。在这种情况下,如果能够同时在移动设备和服务器上同时抓包,那么对于分析问题将会有很大的帮助。
幸运的是,Linux 环境中强大的抓包工具在 Android 系统里面也有移植的版本。
注意
在 Android 系统抓包时,需要 root 权限,不同型号手机的 root 过程不同,在此不再赘述。
Android 版本的 tcpdump 下载地址是 http://www.androidtcpdump.com/android-tcpdump/downloads 。
另外,在 Android 系统抓包时,需要使用 adb 这个工具,下载地址是 http://developer.android.com 。
把下载后的 tcpdump 和 adb 工具及其依赖的 dll 放在 c:\adb 目录下,如下所示:
c:\adb>dir 驱动器 C 中的卷没有标签。 卷的序列号是 FCAD-A4A7 c:\adb 的目录 2016/02/02 15:21 <DIR> . 2016/02/02 15:21 <DIR> .. 2013/12/16 10:27 815,104 adb.exe 2013/12/16 10:27 96,256 AdbWinApi.dll 2013/12/16 10:27 60,928 AdbWinUsbApi.dll 2016/02/02 15:21 1,893,728 tcpdump 4 个文件 2,866,016 字节 2 个目录 5,564,440,576 可用字节
使用 tcpdump 在 Android 系统抓包的步骤如下。
步骤 1 创建 tcpdump 存储目录并修改权限。
c:\adb>adb shell shell@Coolpad8720L:/ $ id #检查当前用户的权限,在设置目录权限时用到该信息 id uid=2000(shell) gid=2000(shell) groups=1003(graphics),1004(input),1007(log),1011(adb),1015(sdcard_rw),1028(sdcard_r), 3001(net_bt_admin),3002(net_bt),3003(inet),3006(net_bw_stats) shell@Coolpad8720L:/ $ su #切换成 root su root@Coolpad8720L:/ # mkdir /data/local/tmp #创建目录 mkdir /data/local/tmp root@Coolpad8720L:/ # chown shell.shell /data/local/tmp #修改权限,否则无法使用 adb push 传输 tcpdump 文件到该目录中 chown shell.shell /data/local/tmp root@Coolpad8720L:/ # exit #退出 root 权限 exit shell@Coolpad8720L:/ $ exit #退出 adb shell exit
步骤 2 把 tcpdump 传到 Android 系统中。
c:\adb>adb push tcpdump /data/local/tmp/ 2379 KB/s (1893728 bytes in 0.777s)
步骤 3 确认 Android 系统的基本网络环境。
确认网卡名称。
root@Coolpad8720L:/ # netcfg netcfg ip6tnl0 DOWN 0.0.0.0/0 0x00000080 00:00:00:00:00:00 ccinet6 DOWN 0.0.0.0/0 0x00000080 00:00:00:00:00:00 ccinet7 DOWN 0.0.0.0/0 0x00000080 00:00:00:00:00:00 ccinet3 DOWN 0.0.0.0/0 0x00000080 00:00:00:00:00:00 ccinet4 DOWN 0.0.0.0/0 0x00000080 00:00:00:00:00:00 ccinet5 DOWN 0.0.0.0/0 0x00000080 00:00:00:00:00:00 ccinet0 DOWN 0.0.0.0/0 0x00000080 00:00:00:00:00:00 ccinet1 DOWN 0.0.0.0/0 0x00000080 00:00:00:00:00:00 ccinet2 DOWN 0.0.0.0/0 0x00000080 00:00:00:00:00:00 lo UP 127.0.0.1/8 0x00000049 00:00:00:00:00:00 sit0 DOWN 0.0.0.0/0 0x00000080 00:00:00:00:00:00 p2p0 UP 0.0.0.0/0 0x00001003 12:dc:56:7c:35:7d wlan0 UP 192.168.74.27/21 0x00001043 18:dc:56:7c:35:7d #该网卡为此时上网用到的网线网卡 tunl0 DOWN 0.0.0.0/0 0x00000080 00:00:00:00:00:00
检查路由表。
root@Coolpad8720L:/ # ip route show ip route show default via 192.168.72.1 dev wlan0 default via 192.168.72.1 dev wlan0 metric 318 192.168.72.0/21 dev wlan0 scope link 192.168.72.0/21 dev wlan0 proto kernel scope link src 192.168.74.27 metric 318 192.168.72.1 dev wlan0 scope link
检查 DNS 配置。
root@Coolpad8720L:/ # getprop net.dns1 getprop net.dns1 202.96.209.5 #本手机使用的 DNS 服务器
步骤 4 使用 tcpdump 抓包。
root@Coolpad8720L:/ # cd /data/local/tmp cd /data/local/tmp root@Coolpad8720L:/data/local/tmp # chown root.root tcpdump #修改用户 chown root.root tcpdump root@Coolpad8720L:/data/local/tmp # chmod 755 tcpdump #修改权限 chmod 755 tcpdump root@Coolpad8720L:/data/local/tmp # ./tcpdump -i wlan0 tcp -s 0 -nnn -w Coolpad8720L.pcap -c 1000 p -s 0 -nnn -w Coolpad8720L.pcap -c 1000 < tcpdump: listening on wlan0, link-type EN10MB (Ethernet), capture size 262144 bytes 1000 packets captured 1129 packets received by filter 0 packets dropped by kernel root@Coolpad8720L:/data/local/tmp # chown shell.shell Coolpad8720L.pcap
步骤 5 把抓包文件传到本地。
c:\adb>adb pull /data/local/tmp/Coolpad8720L.pcap . 2557 KB/s (659948 bytes in 0.252s)
经过以上 5 个步骤的操作后,即可使用 Wireshark 打开 Coolpad8720L.pcap 进行网络通信协议的分析了。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论