Android 用 Clash 的兩個關鍵設定:VpnService 授權與省電白名單

安卓端 Clash 依賴 VpnService 建立本機隧道,授權彈窗、背景被殺、分應用程式代理是三大高頻問題。本文講清授權原理,並給出主流廠商系統加入省電白名單的路徑。

為什麼安卓上的 Clash 一定要彈授權視窗

Windows、macOS 上的 Clash 客戶端靠系統代理設定或 TUN 虛擬網卡攔截流量,而 Android 系統出於安全考量,把這條路封死了——普通應用程式沒有權限直接讀寫網路介面。系統留了一個官方通道叫 VpnService,任何想要接管全域流量的應用程式(不只是代理工具,也包括正規的企業 VPN、家長監護軟體)都必須透過這個介面向使用者申請授權。

所以第一次打開 Clash 安卓客戶端並啟動代理時,系統會彈出一個類似「要連線至 VPN 連線嗎?此應用程式要求建立一個 VPN 連線以便對所有網路流量進行監控」的對話框。這不是 Clash 本身的行為,而是安卓系統對 VpnService 介面的強制提示,任何走這條技術路線的應用程式都繞不過去。點擊「確定/允許」之後,系統才會分配虛擬網路介面,Clash 才能把裝置流量拉進核心處理並依規則分流。

授權一次之後,只要沒有卸載重裝、沒有清除應用程式資料,系統通常會記住這次選擇,後續啟動不會重複彈窗。如果你發現每次開啟代理都要重新授權,大機率是電量管理軟體在背景清理了應用程式狀態,或是系統更新後重置了 VPN 權限記錄。

授權彈窗不出現、點了沒反應怎麼辦

少數機型會出現點擊「啟動」按鈕後彈窗一閃而過、或者根本沒有彈窗、代理開關亮著但流量並未走代理的情況。按下面的順序逐一排查:

  • 檢查是否已存在其他 VPN 連線。安卓系統同一時間只允許一個 VpnService 實例生效,如果裝置上還開著企業 VPN、其他代理工具或「私人 DNS」裡設定了某些需要虛擬網卡的功能,Clash 的隧道會被頂掉或直接無法建立,系統設定裡的「VPN」列表能看到目前佔用者。
  • 確認沒有被「應用程式鎖定」或權限管理攔截。部分客製化系統會把 VPN 權限單獨列在隱私管理裡,和一般的網路權限分開管理,需要在設定的隱私或權限頁面裡單獨找到「VPN 服務」或「建立 VPN 連線」這一項手動打開。
  • 重裝一次應用程式資料全部清空後再試。如果權限記錄被系統寫壞,重新走一遍授權流程通常能修復,注意重裝前先匯出訂閱和自訂規則,避免設定遺失。
  • 切換到系統代理模式驗證。如果客戶端同時支援 TUN 模式和傳統的系統代理模式,可以先用系統代理模式確認訂閱和節點本身沒問題,再回頭單獨排查 VpnService 授權,縮小問題範圍。

為什麼裝了白名單還是會被系統殺背景

VpnService 建立的隧道是一個長期執行的背景行程,安卓的電量管理機制預設會把長時間不在前台互動的行程視為「可疑背景活動」並主動回收,這是台廠、陸廠客製化系統尤其激進的一項策略。表現出來就是:鎖螢幕一段時間後代理斷開、切到背景幾分鐘後網路恢復直連、深夜或長時間閒置時行程被靜默殺掉。

要保住這條隧道,核心思路是讓系統的電量最佳化策略「看不到」這個應用程式,或者明確告訴系統它可以豁免省電限制。這通常涉及兩層設定,缺一不可:

  1. 系統級電池最佳化白名單。大多數安卓系統的設定裡都有「電池最佳化」「耗電排行」或「應用程式智慧管理」入口,找到 Clash 客戶端後選擇「不最佳化」或「允許背景活動」。
  2. 廠商客製化的省電管理器白名單。這是各家系統額外加的一層,和系統原生電池最佳化是兩套獨立機制,必須分別放行,下一節按廠商逐個列出路徑。
注意 兩層白名單只做一層往往不夠。很多使用者只在「電池最佳化」裡選了「不允許」,卻漏了廠商自己的「省電管理」或「自啟動管理」,代理依然會在背景被靜默清理,建議按下文逐一核對。

主流廠商系統的白名單設定路徑

不同品牌的入口名稱和層級略有差異,以下路徑基於目前主流版本的常見位置,如果選單文案對不上,直接在設定搜尋框裡輸入「電池」「省電」或「自啟動」通常能快速定位。

小米 / Redmi(MIUI / HyperOS)

設定 → 應用程式設定 → 應用程式管理 → 找到 Clash 客戶端 → 省電策略選擇「無限制」;另外在設定 → 電池與效能 → 應用程式智慧管控裡關閉該應用程式的「記憶體與背景佔用管理」限制,兩處都要放行才能穩定駐留背景。

華為(HarmonyOS / EMUI)

設定 → 電池 → 更多電池設定 → 啟動管理,把 Clash 客戶端的自動管理關掉並手動打開「允許自啟動」「允許關聯啟動」「允許背景活動」三個開關;部分機型還需要在「應用程式啟動管理」外單獨關閉「智慧省電」對該應用程式的限制。

OPPO(ColorOS)

設定 → 電池 → 應用程式耗電管理,找到應用程式後選擇「允許背景執行」;再到設定 → 應用程式管理 → 應用程式啟動管理裡改為手動管理並打開全部三個開關(自啟動、關聯啟動、背景執行)。

vivo(OriginOS / Funtouch OS)

i管家 → 省電管理 → 背景高耗電,把 Clash 客戶端加入允許背景高耗電的名單;再到手機管家 → 應用程式管理 → 權限管理 → 自啟動管理裡打開該應用程式的自啟動開關。

三星(One UI)

設定 → 電池和裝置維護 → 電池 → 背景使用限制,把應用程式從「休眠應用程式」「深度休眠應用程式」名單裡移除,再單獨確認它未被列入「應用程式待機」限制,三星的省電策略相對溫和,通常只需這一處調整。

分應用程式代理:按需選擇走隧道的 App

Android 上的 VpnService 除了建立隧道,還允許客戶端指定哪些應用程式的流量納入代理、哪些直接放行,這就是分應用程式代理(有的客戶端叫「應用程式白名單」或「應用程式黑名單」兩種反向模式)。典型使用情境是:只讓瀏覽器和幾個特定 App 走代理,銀行、支付類應用程式保持直連,或者反過來只排除某幾個對代理敏感的應用程式。

設定分應用程式代理時注意兩點:一是白名單模式和黑名單模式互斥,同一時間只能生效一種,選錯模式會導致該走代理的應用程式沒走、不該走的反而被代理了;二是修改分應用程式列表後通常需要重新啟動一次代理服務才能生效,系統的 VpnService 隧道參數是在建立連線時一次性寫入的,執行中途改名單不會即時熱更新。

如果只是想快速驗證某個應用程式是否走了代理,不必依賴分應用程式功能,直接觀察客戶端的連線日誌或流量面板裡對應應用程式的網域請求記錄即可,比反覆調整名單更直觀。

綜合排查思路小結

把上面的內容串起來,安卓端代理不穩定的完整排查順序建議是:先確認 VpnService 授權本身是否成功建立(看系統 VPN 列表裡是否有活躍連線圖示);再確認沒有其他應用程式搶佔了同一個 VpnService 名額;然後依次核對系統電池最佳化和廠商省電管理器兩層白名單;最後如果用了分應用程式代理,檢查模式和名單是否符合預期。這四步基本能覆蓋安卓平台上絕大多數「裝了但不穩定」的情況,比盲目重裝或換客戶端效率高得多。

下載Clash