最近一段时间,移动2G/3G客户端连接成功率不高,着实让人头疼。
说是Android网络调试,其实也不过是在被ROOT后Android系统操作,使用adb shell执行一些常规的终端命令,检测2G/3G/4G/WIFI网络等,进而确定一些因网络等导致的问题而已。但adb shell默认没有几个支持的命令,比如 cat, tcpdump,这些都是最基本的必备命令,也不支持。对于想要查看网络请求有几次跳转,不借助些外力,确实是件很不可能的事情。
基本将会包含如下内容: 如何安装需要的Linux终端命令tcpdump,mtr
调试2G/3G等网络连通,域名请求跳转
请求丢包情况
Android终端扩展神器opkg
说它是神器,一点都不夸张。Homepage((http://dan.drown.org/android/))上开篇明义: Unix command-line programs ported to run on android. This project uses opkg, which handles downloading and installing packages and their dependencies (like yum or apt). Source for all packages are available.
作者Dan (http://blog.dan.drown.org/)为我们移植到Android平台,并且还为我们编译好相当多的常用程序,具体支持列表,可从Changelog(http://dan.drown.org/android/)中找到,这里不再累述。
十分难得,由衷感谢。
下载opkg包
预先把依赖下载到本地: http://dan.drown.org/android/system/xbin/busybox
http://dan.drown.org/android/opkg.tar.gz
安装opkg
设安装到Android手机的 /data/local 目录,那么首先需要确保这个目录具有可读写权限。 记得要使用su命令切换到root管理员账户,操作、权限才不会受阻。adb shell chmod 777 /data/local
拷贝opkg到/data/local目录adb push busybox /data/local
adb push opkg.tar.gz /data/local
adb shell进去之后,开始编译安装:cd /data/local
chmod 777 busybox
./busybox tar zxvf opkg.tar.gz
设置环境变量:export PATH=$PATH:/data/local/bin
执行更新、安装准备opkg update
opkg install opkg
opkg list # 可以查看可以支持安装的终端应用程序(命令)
话说,opkg可以应用于各种嵌入式环境中,超强的说。
安装linux终端应用/命令
可以一口气安装几个试试:opkg install mtr curl tcpdump cat
当然,你也可以一个一个安装。
安装好之后呢,就是直接运行应用/命令了,测试baidu.com域名解析、丢包情况。
mtr -r baidu.com HOST: localhost Loss% Snt Last
Avg Best Wrst StDev
1.|-- ??? 100.0 10 0.0 0.0 0.0 0.0 0.0
2.|-- 192.168.61.1 0.0% 10 504.3 635.0 339.3 1024. 238.7
3.|-- 192.168.63.138 0.0% 10 392.9 588.7 298.5 847.7 220.3
4.|-- 221.130.39.106 0.0% 10 340.9 557.3 257.4 823.5 211.7
5.|-- 221.179.159.45 10.0% 10 649.6 631.4 332.6 821.4 165.0
6.|-- 111.13.14.6 10.0% 10 561.9 551.3 268.2 777.0 170.0
7.|-- 111.13.0.162 10.0% 10 510.6 570.6 385.5 767.6 116.6
8.|-- 111.13.1.14 10.0% 10 775.4 565.2 377.7 775.4 130.9
9.|-- 111.13.2.130 10.0% 10 707.2 564.6 381.1 887.3 173.4
嗯,通过mtr确实很容易就看出,网络跳数,每一个节点丢包率。这样就能很容易找到在移动2G/3G网络连接超时比较严重的问题所在。下面就是希望运维的同学尽快处理好,避免再次出现由联通机房再次跳转到移动机房问题。
非常感谢陈杰同学推荐的比ping+traceroute还要好用命令mtr。一旦拥有,不会放手!
移动2G/3G下网络抓包
要想抓取2G/3G网络下数据包,必须安装一个tcpdump命令:opkg install tcpdump
opkg很贴心的会把所依赖的libpcap也都一并安装上,完全不用担心版本问题!tcpdump -i any -p -vv -s 0 -w /sdcard/capture.pcap
下面就是一气呵成的导出,使用wireshark进行分析了。adb pull /sdcard/tmp1.pcap c:/tmp
其它有利于诊断网络的APP
不习惯使用终端诊断网络,可以直接使用现成的APP。
第一名 Fing,大名如雷贯耳,跨Android、IOS平台,DNS、PING等不在话下,居家生活之必备
第二名嘛,暂时还没有发现呢
shark for root,也不错,Android平台推荐
网速测试,可以看到当前网络的延迟等,也不错
有更好的APP推荐,欢迎推荐一二。
小结
希望可以给遇到同样问题的同学一些帮助
记录下来便于以后索引