聶永的博客

          記錄工作/學習的點點滴滴。

          隨手記之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。

          1. 第一名 Fing,大名如雷貫耳,跨Android、IOS平臺,DNS、PING等不在話下,居家生活之必備
          2. 第二名嘛,暫時還沒有發現呢
          3. shark for root,也不錯,Android平臺推薦
          4. 網速測試,可以看到當前網絡的延遲等,也不錯

          有更好的APP推薦,歡迎推薦一二。

          小結

          1. 希望可以給遇到同樣問題的同學一些幫助
          2. 記錄下來便于以后索引

          posted on 2014-11-20 22:05 nieyong 閱讀(9963) 評論(2)  編輯  收藏 所屬分類: Socket

          評論

          # re: 隨手記之Android網絡調試簡要記錄 2014-12-12 03:20 祥磊部落

          看得多 評的少  回復  更多評論   

          # re: 隨手記之Android網絡調試簡要記錄 2014-12-24 08:47 geewu

          一直在找相關方面的內容,感謝,感謝。  回復  更多評論   

          公告

          所有文章皆為原創,若轉載請標明出處,謝謝~

          新浪微博,歡迎關注:

          導航

          <2014年11月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          統計

          常用鏈接

          留言簿(58)

          隨筆分類(130)

          隨筆檔案(151)

          個人收藏

          最新隨筆

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 西平县| 永嘉县| 桓台县| 黑水县| 周宁县| 奇台县| 开封市| 永平县| 海城市| 广丰县| 思南县| 焉耆| 霞浦县| 金沙县| 策勒县| 乌拉特后旗| 兴安县| 巴塘县| 白银市| 苗栗市| 桃园市| 宁河县| 高台县| 安塞县| 铜梁县| 漳浦县| 武川县| 鹤庆县| 漳州市| 衡水市| 桂阳县| 扶余县| 巫溪县| 岢岚县| 隆昌县| 尖扎县| 文安县| 米易县| 修文县| 迭部县| 怀安县|