隨手記之Android網絡調試簡要記錄
最近一段時間,移動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推薦,歡迎推薦一二。
小結
- 希望可以給遇到同樣問題的同學一些幫助
- 記錄下來便于以后索引
posted on 2014-11-20 22:05 nieyong 閱讀(9963) 評論(2) 編輯 收藏 所屬分類: Socket