驗收單 · 2026-10-22 · 约 12 分钟

PCAPdroid 深度盤點 — 手機上能做到怎麼樣的流量抓包

軟體PCAPdroid分類系统工具
版本1.9.1體積6.55M
開發方Emanuele Faranda狀態已歸檔
PCAPdroid 深度盤點 — 手機上能做到怎麼樣的流量抓包

PCAPdroid 是什麼

PCAPdroid 是一款由 Emanuele Faranda 開發的 Android 端網路流量監控與抓包工具,它利用 Android 系統提供的 VpnService API,在手機本機建立一個虛擬網路介面,把所有應用程式的網路請求先經過它再送出去——從而實時觀察、記錄甚至攔截每一條 TCP/UDP 連線。

與電腦上的 Wireshark、tcpdump 同屬一個抓包家族,但 PCAPdroid 的定位非常明確:給沒有 root 的普通 Android 手機用,不用刷機、不用接 OTG,裝上 APK 就能開始。它的能力面遠不止「把流量記下來」這件事——TLS 解密、HTTP 結構化檢視、PCAP 檔匯出、擴充元資料、黑名單過濾、防火牆規則……幾乎把手機抓包這件事能做的都做了。對網路開發、應用測試、隱私 排查這三類場景來說,它是目前 Android 上最完整的一站式方案。

安裝

PCAPdroid下載 的安裝檔只有 6.55MB,對一台 Android 手機來說就是點一下 APK 就能完成的事,但幾個容易忽略的前置條件值得提一下。

首先,Android 8.0 以上的系統對後台服務有硬性限制——任何需要長時間運行的應用都必須以前台服務(Foreground Service)形式存在,通知欄會顯示一個常駐通知顯示抓包速率、累計流量與運行時長。這不是 PCAPdroid 想不想顯示的問題,是 Android 系統的強制要求,沒辦法關掉。

更麻煩的是國產 ROM 的後台激進清理策略。小米、OPPO、vivo、華為、三星 One UI 的早期版本都可能在系統判定「佔用資源過多」時把前台服務直接殺掉——表現就是 PCAPdroid 抓包突然停止、通知消失、重新打開應用發現抓包已結束。解決方式因廠商而異,統一要做的事有兩件:把 PCAPdroid 加入自啟動白名單,以及把省電策略設為「無限制」或「不受限制」。如果用了 TLS 解密還需要安裝 PCAPdroid-mitm 插件,那個插件也需要同樣的白名單設置,因為 TLS 解密時它以獨立進程運行,被殺掉就解不通了。

安裝完成後第一次啟動會引導你設定 VpnService 權限、選擇抓包介面(預設就行),TLS 解密需要額外安裝 CA 證書,這部分留到後面的進階段落再講。

能力域一:連線實時觀察

連線列表是 PCAPdroid 打開後第一個看到的畫面,也是整個應用的基礎。每一行代表一條 TCP 或 UDP 連線,顯示目標主機、應用圖示、傳輸方向、速率與累計流量。頂部篩選欄可以按應用、主機、連線狀態、協定類型過濾,想只看某個 App 的流量或者排除掉系統程式的噪音都在這裡。

真正好用的是連線列表的資訊密度——大部分同類工具只告訴你連了哪個 IP,PCAPdroid 會主動解析 DNS 把 IP 轉換成主機名,並標註這條連線是哪個應用發起的。這對排查「某個 App 偷偷在後台連了什麼伺服器」這種問題來說是最直觀的入口,打開就能看,不用做任何配置。

能力域二:TLS 解密與 HTTP 結構化檢視

這是 PCAPdroid 與其他 VpnService 抓包工具拉開差距的核心功能。開啟 TLS 解密後,PCAPdroid-mitm 插件會充當中間人代理,把 HTTPS 流量的加密層剝開,讓你看到明文請求與響應。解密成功後 Connections 旁會出現一個 HTTP 視圖切換按鈕,點擊進入 HTTP requests 視圖——這裡不再是原始 TCP 位元組流,而是結構化展開的每一個 HTTP 請求:方法、路徑、響應碼、Content-Type、Body 大小,一目了然。

HTTP 視圖的頂部篩選欄支援按方法(POST/GET/PUT)、狀態碼(2xx/4xx/5xx)、Content-Type(JSON/HTML/圖片)和請求大小區間過濾。想看某個頁面加載過程中發出的所有 XHR、或者找出響應碼 500 的錯誤請求,在這裡幾秒鐘就能定位。點擊任意一行進入請求詳情,Request 與 Response 分頁分別顯示完整的請求頭與響應頭,JSON 會自動格式化。

解密成功的前提是目標應用信任 PCAPdroid 安裝的 CA 證書——而 Android 7 之後這件事變得複雜了。應用 targetSdk 24 以上時,預設不信任使用者安裝的證書,只信任系統預裝的證書。解決方案的複雜程度從「有沒有 Magisk root」開始分岔:有 root 的話 movecert 模組可以把 CA 搬進系統證書目錄,乾淨且不破壞應用;有 root 但目標 App 做了證書鎖定(certificate pinning)的話,還需要 LSPosed + sslunpinning 模組 Hook 證書驗證鏈路;沒 root 的話 VirtualXposed 虛擬環境(Android 11+ 已停維護)或 apk-mitm 重簽名可以繞過,但後者會導致應用 SSO 登錄失效。這是 PCAPdroid 進階使用中資訊密度最高的一塊,也是很多人第一次接觸時會卡住的地方。

HTTP 請求結構化列表視圖

能力域三:PCAP 匯出與擴充元資料

抓包 結束後 PCAPdroid 可以把流量匯出為標準 PCAP 或 PCAPNG 檔案,這時 Wireshark、tcpdump 分析工具就能派上用場。但標準 PCAP 格式本身不儲存「這個包屬於哪個 App」的資訊——這是 PCAPdroid 與傳統抓包工具相比的一個獨特優勢:PCAPdroid extensions(舊名 PCAPdroid trailer)在匯出時給每個包額外附加一段元資料,包括進程 UID 和應用包名。

在 PCAP 格式下,extension 用一段模擬 Ethernet 頭(14 位元組)加 PCAPdroid trailer(28 位元組)嵌入;PCAPNG 格式則用 Custom Block(PEN 62652)存儲 UID 與包名的映射關係,更節省空間。配合 PCAPdroid 倉庫裡的 Lua 插件(pcapdroid.lua)放到 Wireshark plugins 目錄,包詳情裡會多出 App UID 和 App Name 兩個欄位,並且可以直接按 UID 或 App Name 做 Wireshark 過濾器。這對需要離線分析大量流量資料的場景來說是非常有價值的補充——抓包時你知道流量來自哪個 App,匯出後這件事不會丟失。

HTTP 視圖還提供匯出為 HAR 格式的選項,HAR 是瀏覽器開發工具常用的網路日誌格式,可以被 Chrome DevTools、Firefox、Google HAR Analyzer 等工具打開,做跨平台比較或分享給其他人分析都很方便。

能力域四:防火牆與黑名單

PCAPdroid 內建了一套簡單但實用的防火牆功能。在 Firewall 視圖裡可以按應用設置允許/阻止規則,也可以按目標主機或 IP 建立黑名單——被加入黑名單的連線會被即時阻擋,不會建立真正的連線。這對排查「某個 App 是否在偷偷上傳資料」或「哪個域名在頻繁發起可疑連線」來說是最直接的驗證方式:把域名加進黑名單、重現問題場景、看連線是否還能建立。

黑名單狀態面板會顯示當前阻擋了多少條連線、哪些是惡意連線——PCAPdroid 會主動比對已知惡意域名資料庫,在 Connections 列表裡標記可疑連線並顯示惡意連線通知。這部分在排查隱私洩漏和應用惡意行為時特別有用,不用自己去查每個域名是什麼。

短板也要說

PCAPdroid 的能力面雖然完整,但幾個局限是繞不過去的。

TLS 解密的門檻過高:Android 7+ 的證書信任問題讓解密成功率大幅下降——很多主流 App(微信、支付寶等)都做了證書鎖定,沒 root 就解不通;有 root 也要裝 LSPosed + sslunpinning;VirtualXposed 在 Android 11+ 已經停維護。對大部分普通使用者來說,安裝 PCAPdroid 簡單,想要真正看懂 HTTPS 流量這件事本身就需要一定的 Android 系統層知識。

免費版與付費版功能差距大:PCAPNG 格式的擴充元資料、Virtual Hosts 設定、JSON 匯出等功能在付費版才提供。免費版只能用 PCAP 格式,雖然也能用但空間效率和資訊密度都打了折扣。另外付費版的 unlock token 綁定設備,更換手機時需要重新購買。

國產 ROM 的後台清理沒有通用解:雖然廠商設置路徑都列得出來,但不同 ROM 版本的實際行為差異很大——有些 ROM 即使設了無限制,一段時間後還是會殺掉前台服務。這種情況下只能靠把 PCAPdroid 加入深度清理例外名單、或者改用 root + Magisk 的方案來穩定。

PCAPdroid-mitm 插件版本限制:2.0.0 之後 mitm 插件不再支援舊的 x86 模擬器,需要 x86_64 或 AArch64 架構,對用 Android Studio 模擬器做測試的開發者來說需要注意版本對應。

誰適合用 PCAPdroid

網路開發者與應用測試人員:這是 PCAPdroid 最核心的受眾。需要驗證 App 的網路請求是否符合預期、檢查 TLS 證書配置、排查 API 響應異常時,PCAPdroid 在真實手機上的抓包比模擬器裡的代理工具更可靠——畢竟很多網路問題只在真實設備的網路環境下才會出現。擴充元資料把流量與應用關聯起來的特性,對多 App 交互的複雜場景排查來說價值很高。

隱私與安全研究者:想知道某個 App 在後台到底連了哪些伺服器、有沒有傳送敏感資訊、惡意連線通知能不能幫你發現隱私洩漏,PCAPdroid 是少數幾個不用 root 就能做到這件事的 Android 工具。防火牆的即時阻擋功能讓你能夠做 A/B 測試——黑名單前後比較就能驗證某個域名的連線是否影響正常功能。

高級手機使用者與技術愛好者:對 Android 系統層感興趣、想了解手機網路活動在底層是怎麼運作的人來說,PCAPdroid 是很好的入門工具。從最簡單的連線觀察開始,逐步進到 TLS 解密、PCAP 分析、防火牆規則,每個能力域都足夠你花上一段時間深入探索,而且過程中你對 Android VpnService、CA 證書、HTTPS 中間人代理這些概念的理解會非常紮實。

本文為個人基於網路公開資料整理編寫,非官方內容,僅供學習交流參考;軟體版權歸原作者所有,請支持正版;使用過程中遇到問題請查閱官方管道,本文不承擔任何責任。

同類驗收報告