開啟 AdGuard 後,手機銀行突然閃退、無限載入或顯示「網路異常」,十之八九是因為 HTTPS 證書過濾與銀行的安全機制槓上了。不用解除安裝 AdGuard,也不用放棄安全防護,幾分鐘就能把這問題理順。
為什麼 AdGuard 會讓銀行 App 罷工?
簡單來說,AdGuard 的廣告攔截不只是遮蔽網頁上的橫幅。要過濾加密流量中的廣告和追蹤器,它必須在手機上充當一個「中間人」——解密 HTTPS 流量,檢查完再轉發給 App。為了實現這一步,AdGuard 會請你安裝一個本地的 CA 證書,讓手機信任這個中間人。
問題就出在這裡。銀行 App 對安全的要求比普通應用高得多,很多都內建了證書固定(Certificate Pinning)技術。這意味著 App 只認銀行自家伺服器下發的特定證書,拒絕任何中間人頒發的證書,哪怕系統已經信任了 AdGuard 的根證書也不行。
當銀行 App 偵測到證書鏈裡多了一個它不信任的環節,就會直接中斷連線,反映到介面上就是打不開、白畫面、閃退,或者提示「無法連接伺服器」「偵測到網路代理」。這不是 AdGuard 的 Bug,而是兩種安全策略的正面碰撞。
最簡單的解法:把銀行 App 從過濾清單中摘出來
既然銀行不信 AdGuard 的證書,那就不要讓 AdGuard 插手它的流量。這個操作在 AdGuard 裡叫加入「白名單」或者關閉對該應用的過濾,不會影響手機其他部分的防護。
操作步驟(以 Android 版最新介面為例,iOS 邏輯類似):
- 打開 AdGuard App,底部導航欄找到盾牌圖示,進入「防護」頁面。
- 點擊「應用程式管理」,你會看到手機上已安裝的應用清單。
- 在搜尋框輸入銀行 App 的名稱,例如「中國工商銀行」「招商銀行」「建設銀行」。
- 點進對應的 App,找到「路由所有流量通過 AdGuard」或者「啟用 HTTPS 過濾」的開關,直接關掉。
- 返回主畫面就能生效,不用重新開機。
這樣設定後,銀行 App 的所有流量會完全繞過 AdGuard 的 HTTPS 過濾模組,等於回到系統預設的加密連線狀態,自然不會觸發證書警報。DNS 層級的過濾和 Safari 瀏覽器的防護依然正常運作,銀行 App 本身也不會有廣告——它們的介面是原生渲染的,本就沒有廣告可攔,關掉過濾幾乎不損失什麼。
換個思路:針對證書搞不定的應用批次關閉 HTTPS 過濾
如果你不想一個個修改應用,或者不清楚到底哪些 App 會踩坑,可以直接在 HTTPS 過濾設定裡管理「例外清單」。
進入 AdGuard → 設定 → HTTPS 過濾,你會看到兩個關鍵入口:
- HTTPS 過濾開關:負責全域控制。別關這個,關了等於自廢武功,所有加密流量都不檢查了。
- 應用白名單/例外清單:點進去可以手動勾選不需要過濾的應用,把銀行類、證券類、支付類 App 統統選上。
這裡有個小技巧:先把所有金融類 App 一次性加入白名單,日後安裝新的理財或銀行應用時,養成第一時間來這裡看一眼的習慣。因為銀行 App 更新頻繁,某次版本升級可能突然加入更嚴格的證書校驗,提前放進白名單能避免某天急著轉帳時發現 App 掛掉。
另一種常見情況:系統級證書和使用者證書的衝突
Android 7.0 以後,系統對使用者自行安裝的 CA 證書做了嚴格限制。預設情況下,只有系統預置的證書才會被 App 信任,使用者手動安裝的證書(包括 AdGuard 請你安裝的這張)只對標記為「信任使用者證書」的應用生效。絕大多數銀行 App 都強制只認系統證書,這就導致即使你把證書裝好了,銀行 App 也根本不認它。
AdGuard 的 HTTPS 過濾恰好依賴這張使用者證書,而銀行 App 恰好不信使用者證書——死結就這麼來的。
在 iOS 上情況稍好,因為 AdGuard 透過本地 VPN 或代理方式處理流量,證書信任的設定相對統一。但如果你裝了 iOS 版的 AdGuard 並啟用了「進階防護」,同樣需要安裝一個描述檔來信任 AdGuard 的證書,銀行 App 依然有可能不買帳。解決方法跟 Android 一樣,要麼關閉該 App 的 HTTPS 過濾,要麼在設定裡把它從過濾範圍中移除。
排查時容易被忽略的幾個細節
如果按上面的操作設定完白名單,銀行 App 還是不正常,別著急,問題可能出在這些角落:
- AdGuard 旁路/代理殘留:在一些深度定製 Android 系統上(MIUI、ColorOS、HarmonyOS 等),即使 AdGuard 顯示已放行,系統可能還緩存在舊的代理配置。試著關閉 AdGuard 的防護總開關,等 5 秒再打開,或者切一下飛航模式重新整理網路狀態。
- VPN 模式的限制:AdGuard 在 Android 上通常以本地 VPN 模式運作,而某些銀行 App 會偵測裝置是否開啟了 VPN,一旦發現就直接拒絕服務。這種情況下僅關 HTTPS 過濾不夠,需要把該 App 設定為「不透過 VPN 路由」。在同一個「應用程式管理」介面把路由流量開關也關掉。
- 系統時間偏差:證書驗證嚴重依賴準確的系統時間。如果手機時間是手動設定且有較大誤差,就算證書本身沒問題,銀行 App 的 SSL 握手也會失敗。開啟自動同步時間,讓手機跟電信業者或網路時間對齊。
我的真實體驗:哪些銀行 App 最敏感
作為電子產品的重度使用者,我手機上常年掛著 AdGuard,也裝了好幾家銀行的 App。從實際體驗來看,國有大型銀行的 App 普遍對證書變更極其敏感——中國工商銀行、中國建設銀行、中國農業銀行,只要證書鏈條有一丁點不對勁,立刻罷工,有的甚至直接閃退不給任何提示。招商銀行和浦發銀行相對寬容,偶爾只是彈個「網路不安全」的提醒,手動點掉還能繼續用。中國銀行的中銀跨境 GO 和部分地方銀行 App 差不多是同一套安全策略,建議一視同仁都放進白名單。
證券類 App 也有類似特徵,例如華泰漲樂財付通、同花順,如果出問題,症狀往往是行情載不出來,或者交易頁面提示「網路異常」。解決方法完全一致,把 AdGuard 的過濾關掉就行。
記得有一回,某家銀行 App 更新後突然在啟動頁卡死,我排查了十幾分鐘,最後發現它悄悄把證書校驗策略調嚴格了,而 AdGuard 的例外清單裡沒有它。白名單加進去,重啟 App,一切恢復流暢。這個小插曲讓我意識到,不能在 App 更新時才手忙腳亂,提前把金融類應用統一放養,省心很多。
當白名單還不夠:重新安裝 AdGuard 證書
極少數情況下,證書本身損壞或過期會導致即使正確設定了白名單,HTTPS 過濾全域表現異常,銀行 App 只是受害者之一。這時你可以嘗試重置信書:
- 進入 AdGuard 設定 → HTTPS 過濾。
- 關閉 HTTPS 過濾總開關。
- 回到手機系統設定 → 安全 → 加密與憑證 → 信任的憑證(不同手機路徑略有差異),在「使用者」欄找到 AdGuard 的證書,手動刪除。
- 回到 AdGuard,重新打開 HTTPS 過濾,依照提示重新安裝證書。
- 重新啟動手機。
這個過程相當於把中間人身份重新註冊一遍,能解決因系統更新或證書遷移引發的一系列詭異問題。但注意,重新安裝證書後,瀏覽器的加密連線需要重新建立,有些 App 可能短時間內出現連線遲鈍,屬於正常現象。
這幾個操作可能會讓你後悔
我見過網上有人建議,為了讓銀行 App 繞過 AdGuard,直接把手機整個 HTTPS 過濾功能關掉。這等於為了偶爾用一次的銀行 App,放棄所有應用的隱私保護,絕對不值。還有人會說「把系統 Root 了,把 AdGuard 證書搬到系統信任區」,先不說操作門檻和變磚風險,銀行 App 偵測到裝置已 Root 本身就會拒絕執行,完全是鑽進另一個死胡同。
最合理的策略很簡單:保持全域 HTTPS 過濾開啟,享用 AdGuard 帶來的清爽體驗,只把極少數對證書有潔癖的金融 App 拉出過濾範圍。這種平衡既不犧牲安全性,也不影響日常支付。
如果你還沒入手 AdGuard,或者正在用免費版、功能受限,經常因為缺少進階特性而折騰這類問題,現在有個相當划算的管道。Titikey 提供AdGuard 正版永久折扣訂閱,僅需 $24.99,比官網動不動三十多美元的價格友好得多,一個帳號能覆蓋多台裝置,長期使用下來能省出好幾杯咖啡錢。配上 AdGuard VPN 或者 AdGuard 家庭計劃,把全家人的上網環境都打理乾淨,也不至於被銀行 App 的小脾氣搞得焦頭爛額。
希望這篇指南能幫你把 AdGuard 和銀行 App 這對冤家調教成相安無事的鄰居。遇到新的問題,記得先從證書和過濾設定入手排查,十之八九能管用。