對 iOS 開發者與測試工程師來説,iOS 手機抓包軟件不僅是調試接口的工具,更是定位複雜網絡問題的關鍵手段。隨着移動端安全策略不斷增強(ATS、證書鏈校驗、pinning)、網絡協議演進(HTTP/2、HTTP/3、QUIC)、以及應用自定義協議的普遍使用,單純依賴某一種抓包軟件往往無法覆蓋所有場景。

因此,一個可長期複用、覆蓋全面的 iOS 抓包體系應該是“工具分層 + 多工具協同”,而非寄希望於某個萬能工具。


一、為什麼 iOS 上抓包比 Android 或 PC 更復雜?

HTTPS 證書鏈嚴格校驗

iOS 對證書鏈的要求嚴格,因此很多代理抓包工具往往只能看到 CONNECT,無法解密真正的 HTTPS 包。


應用啓用了證書 Pinning

特徵:

  • Fiddler/Charles 抓不到
  • 瀏覽器能抓
  • 抓包界面完全沒有數據

Pinning 直接阻斷代理證書,是開發者最常遇到的抓包失敗原因之一。


HTTP/3 / QUIC 使用 UDP,無法被代理捕獲

越來越多應用啓用 QUIC,例如社交類、視頻類 API。代理抓包工具依賴 TCP,因此天然無法抓取這類流量。


很多應用使用自定義協議

例如:

  • 遊戲通信
  • WebSocket
  • 二進制協議
  • SDK 自定義握手

這些都不會走系統代理。


多 App 併發產生大量噪音數據

導致:

  • 抓到無關流量
  • 難以定位到具體 App
  • 分析效率低

這就是 iOS 抓包必須具備過濾能力的原因。


二、iOS 手機抓包軟件的四大分類(按職責分層,而非比較優劣)


① 代理式抓包工具(最常用)

代表:

  • Charles
  • Proxyman
  • Fiddler
  • mitmproxy

適合:

  • HTTPS 明文分析
  • 修改請求/響應
  • 調試 Web API

但無法處理:

  • pinning
  • QUIC
  • 自定義協議

② 協議層抓包工具

包括:

  • tcpdump
  • Wireshark

適合:

  • 分析 TLS 握手錯誤
  • 判斷請求是否發出
  • 查看重傳、超時、鏈路異常
  • 分析加密流量類型

這是所有疑難抓包問題的底層依據。


③ 自動化抓包工具

如:

  • pyshark
  • scapy
  • mitmproxy scripting

用於 CI 流量分析或批量驗證。


④ 底層補抓工具(代理失敗時的關鍵手段)

當代理工具無法工作,例如:

  • pinning
  • QUIC
  • 自定義協議
  • 系統代理被覆蓋
  • App 不走代理

就必須採用底層捕獲。


抓包大師(Sniffmaster):用於補充代理失敗場景的底層抓包工具

Sniffmaster 的核心能力:

  • 捕獲 HTTPS / HTTP / TCP / UDP 數據流
  • App / 域名過濾,解決噪音問題
  • 自動識別協議:HTTPS / mdns / HTTP 等
  • 提供數據流查看(HEX / 文本)
  • 支持 JavaScript 攔截器(可修改請求與響應)
  • 支持導出 Wireshark 兼容的 pcap 文件
  • 可分析 QUIC、自定義協議等代理抓包盲區
  • 跨平台(iOS / macOS / Windows)

這些功能使其更適合作為“代理工具抓不到時的補抓軟件”。


三、iOS 手機抓包的軟件組合方案(適合團隊標準化)

為了覆蓋所有抓包場景,可以採用以下組合式流程。


步驟 1:使用代理抓包(優先嚐試)

如 Charles、Proxyman、Fiddler。

如果能抓到 HTTPS 明文 → 直接開始調試接口。


步驟 2:若只能看到 CONNECT → 檢查證書鏈

檢查:

  • 是否信任證書
  • Wi-Fi 是否插入中間證書
  • ATS 是否阻斷

步驟 3:瀏覽器能抓,但 App 抓不到 → pinning

這是最常見的失敗場景,代理方案已無法繼續。


步驟 4:部分請求抓不到 → QUIC/UDP

通過以下方式驗證:

  • 關閉 QUIC
  • 切換數據網絡
  • 觀察是否走 UDP

步驟 5:代理無效 → 使用 Sniffmaster 補抓

補抓流程:

  1. 打開抓包大師(Sniffmaster)
  2. App/域名過濾 流量
  3. 捕獲 HTTPS / TCP / UDP 數據流
  4. 導出 pcap 到 Wireshark
  5. 分析 TLS 握手、QUIC、自定義協議
  6. 確定抓不到包的根因(pinning/鏈路/UDP)

補抓能解決代理工具無法處理的 70% 以上問題。


步驟 6:最終業務調試

在確認流量路徑後,再返回代理工具或數據分析工具做業務驗證。


四、實例:某 iOS 應用 HTTPS 永遠抓不到

問題表現:

  • 代理工具無任何 HTTPS
  • Safari 可抓
  • 切換網絡無效

排查:

  1. 證書安裝正常
  2. 系統代理生效
  3. App 無流量 → 推測 pinning
  4. 用 Sniffmaster 捕獲流量
  5. Wireshark 顯示 TLS Alert: unknown_ca
  6. 後端無請求記錄
  7. 結論:App 內證書指紋校驗阻斷抓包

最終恢復了抓包鏈路,業務調試繼續進行。


iOS 手機抓包軟件必須多工具協作,不是單選題

層級 工具 適用場景
代理層 Charles / Fiddler / Proxyman 明文 HTTPS 分析
協議層 tcpdump / Wireshark 握手、丟包、鏈路分析
自動化 scapy / pyshark 批量處理
補抓層 抓包大師(Sniffmaster) pinning / QUIC / 自定義協議場景

多工具協同是解決 iOS 抓包問題的唯一可靠方式。