在移動端或 Web 調試場景中,Fiddler 是許多人最熟悉的抓包工具:簡單、直觀、適合分析 HTTP/HTTPS,也適合修改請求和響應。但不少開發者在使用時會遇到一個最頭疼的問題:

Fiddler 完全抓不到包,HTTPS 也沒有,界面乾乾淨淨。

無論是 iOS、Android 還是桌面端,只要環境稍微複雜一點,Fiddler 就可能出現抓不到包的情況。 但這並不是工具本身的問題,而是多個網絡層、證書鏈、協議差異和 App 安全策略共同作用的結果。

本文從工程角度拆解 “Fiddler 抓不到包怎麼辦?” 的排查路徑,覆蓋 HTTPS 調試、證書校驗、QUIC/HTTP3、網絡代理衝突、自定義協議等場景


一、為什麼 Fiddler 會抓不到包?(五大典型根因)

HTTPS 證書鏈未被信任

表現:

  • 只能看到 CONNECT
  • 無明文 HTTPS 內容
  • 部分接口報 TLS 錯誤

常見原因:

  • 證書沒有在系統中完全信任
  • Wi-Fi 網關替換了證書
  • 中間證書鏈不完整

App 啓用了證書 Pinning(最高頻原因)

特徵:

  • 瀏覽器能抓
  • App 抓不到
  • Fiddler 面板無任何請求

Pinning 直接拒絕代理證書,Fiddler 自然抓不到。


流量使用 QUIC(HTTP/3),繞過代理

QUIC 是基於 UDP 的傳輸協議,而 Fiddler 只代理 TCP。

症狀:

  • 部分請求無法抓到
  • 切換 4G/5G 後可以抓
  • 視頻/直播/社交類接口更常見

應用使用自定義 TCP 協議或獨立網絡棧

例如:

  • 遊戲協議
  • WebSocket
  • SDK 自定義二進制協議

這類協議根本不會走系統代理。


系統代理失效或被覆蓋

例如:

  • VPN
  • 企業 Wi-Fi 強制代理
  • 系統代理設置被安全軟件修改

此時 Fiddler 的設置自然不會生效。


二、Fiddler 抓不到包時的排查流程(可直接複製到團隊 Wiki)


步驟 ①:檢查代理與證書設置

確認:

  • Fiddler 已啓用 HTTPS 解密
  • 系統代理設置與 Fiddler 端口一致
  • 證書已安裝並“完全信任”
  • 未啓用 VPN 或其他代理

如果 HTTPS 一條都看不到 → 繼續排查。


步驟 ②:判斷是否為證書 Pinning

判斷方法:

  • 瀏覽器能抓到
  • App 抓不到
  • Fiddler 無任何流量

這是 80% 的失敗原因。

此時繼續嘗試代理工具毫無意義。


步驟 ③:檢查是否為 QUIC / HTTP3 流量

驗證方式:

  • 關閉 QUIC
  • 換網絡
  • 查看是否走 UDP

QUIC 天生繞過代理 → 無法抓包。


步驟 ④:確認是否為自定義協議

表現:

  • Fiddler 只能抓到 CONNECT
  • 後端收到的是自定義二進制流
  • 沒有任何 HTTP 請求

這是代理抓包永遠無法覆蓋的場景。


步驟 ⑤:代理無法生效 → 使用底層抓包工具補抓

這一步是解決 Fiddler 抓不到包最關鍵的環節。

補抓工具中比較常用的是:


抓包大師(Sniffmaster):非代理式抓包的補充能力

Sniffmaster 的實際工程用途:

  • 抓取 HTTPS / HTTP / TCP / UDP 數據流
  • 支持按 App / 域名 過濾流量
  • 自動識別 HTTP、HTTPS、mdns、自定義協議
  • 可查看 TCP 數據流(HEX / 文本 / 二進制)
  • 提供 JavaScript 攔截器,可改寫請求和響應
  • 可導出 Wireshark 可讀取的 pcap 文件
  • 跨平台運行(macOS / Windows / iOS)

適用於:

  • Pinning 阻止代理抓包
  • QUIC / HTTP3(UDP)流量
  • 自定義 TCP 協議
  • 系統代理被覆蓋
  • 抓不到 HTTPS 的疑難問題

它的定位不是取代 Fiddler,而是補足代理抓包的技術盲區。


三、實際案例:Fiddler 完全抓不到 HTTPS,如何解決?

場景:

  • Fiddler 只能看到 CONNECT
  • Safari 能抓到
  • App 完全抓不到包

排查與解決:

  1. 核對證書與代理 → 無誤
  2. 瀏覽器正常 → 系統代理生效
  3. App 無流量 → 高度疑似 pinning
  4. 使用 Sniffmaster 捕獲底層 TCP/TLS 流量
  5. 在 Wireshark 中看到 TLS Alert
  6. 服務端 tcpdump 無對應請求
  7. 最終確認:App 內使用證書指紋校驗 → 阻斷代理

通過補抓確認了根因,問題得以解決。


解決 “Fiddler 抓不到包” 可以使用多工具組合抓包

唯一正確的解決方案不是換工具,而是“工具組合”:

抓包層級 工具 適用場景
代理抓包 Fiddler / Charles / Proxyman HTTPS 明文調試
協議分析 tcpdump / Wireshark TLS 握手錯誤、鏈路分析
自動化 mitmproxy scripting / pyshark 腳本化批量分析
補抓 抓包大師(Sniffmaster) pinning、QUIC、自定義協議等代理失敗場景

只有多層工具協同,才能解決移動端和桌面端抓包的全場景問題。