Android 版 Clash 用戶端通常會透過系統提供的 VpnService 接管裝置流量。首次啟動時出現「連線要求」並顯示 VPN 鑰匙圖示,代表系統正將應用程式流量交給本機虛擬網卡處理,並不表示手機直接連上某個傳統遠端 VPN 伺服器。Clash 核心會讀取這些流量,依照設定中的規則、策略組與節點選擇,決定流量要走代理、直連或拒絕。
這套機制能涵蓋大多數不主動使用系統代理的應用程式,但也更容易受到 Android 背景限制影響。鎖定螢幕後斷線、切換 Wi-Fi 後無法恢復、通知關閉後服務消失,往往不是訂閱本身的問題,而是 VpnService、前景服務、省電策略與網路切換共同造成的結果。正確的設定順序應先確認設定可用,再處理系統權限,最後觀察待機與網路切換時的表現。
VpnService 如何接管 Android 流量
用戶端取得系統授權後,會建立一個 TUN 類型的虛擬網路介面。Android 會將選定應用程式產生的 IP 封包送入該介面,Clash 或 mihomo 核心再進行 DNS 處理、規則比對與代理轉送。在規則模式下,流量通常會依設定檔由上至下比對;符合網域、IP、程序或規則集後,便進入對應的策略組。未符合的連線通常由最後的兜底規則處理。
這裡的「VPN」主要是 Android 提供的流量入口。代理節點仍由 Clash 設定決定,VpnService 本身不會提供節點,也不能取代訂閱。匯入訂閱後仍需更新設定、選擇策略組,並確認目前節點可用。若訂閱中只有規則與策略組,沒有有效代理,即使系統顯示 VPN 圖示,也無法建立需要代理的外部連線。
| 組成部分 | 主要作用 | 常見現象 |
|---|---|---|
| Android VpnService | 建立虛擬介面,將應用程式流量交給用戶端 | 狀態列出現 VPN 標記 |
| Clash 或 mihomo 核心 | 解析設定、處理 DNS、比對規則並轉送連線 | 記錄中顯示規則與策略命中結果 |
| 訂閱設定 | 提供節點、策略組、規則及相關參數 | 更新後節點與策略選擇可能變更 |
| 前景服務通知 | 向系統表示代理服務正在持續執行 | 通知列保留執行狀態入口 |
Android 在同一個使用者空間通常只能保留一個已啟用的 VPN 服務。其他 VPN 用戶端、企業工作資料的 VPN、廣告過濾工具和部分防火牆應用程式也可能使用 VpnService。啟動新的服務時,原有服務可能立即停止。因此排查 Clash Android 無法啟動時,應先查看系統 VPN 設定中是否已有正在運作的連線,而不是連續重複點擊啟動按鈕。
首次啟動與匯入訂閱後的設定順序
首次使用建議依固定順序操作,避免將節點故障、規則問題與系統權限問題混在一起。先匯入設定並完成更新,再於代理或策略頁面選擇明確的節點。若策略組維持自動選擇,可先執行延遲測試,但延遲數字只代表測試位址的回應情況,不等於所有網站都能正常存取。
- 匯入訂閱:確認訂閱網址有效,設定更新過程沒有解析錯誤。YAML 縮排錯誤、引用的規則集下載失敗或訂閱已過期,都可能導致設定無法載入。
- 選擇策略:進入主要代理策略組,選擇目前可連線的節點。設定更新可能重設策略組內容,更新後應重新檢查選項。
- 啟動服務:開啟 VPN 或 TUN 執行開關,閱讀 Android 顯示的連線要求,並允許此用戶端建立 VPN。
- 保留執行通知:確認通知列能看到用戶端的前景服務狀態。通知受到系統限制時,應進入應用程式通知設定檢查對應類別。
- 驗證連線:分別開啟一個預期直連的網站和一個預期經由代理的網站,再查看用戶端記錄中的規則命中情況。
如果應用程式支援分應用程式代理,可選擇「僅代理所選應用程式」或「繞過所選應用程式」。前者適合只讓少數應用程式經過 Clash,後者適合排除銀行、區域網路管理或相容性較差的應用程式。修改分應用程式清單後,應徹底關閉並重新開啟目標應用程式,因為已建立的連線未必會立即切換至新的網路路徑。
DNS 設定也會影響首次連線結果。mihomo 核心常搭配 fake-ip 或 redir-host 增強模式處理網域名稱。若設定已定義 DNS 伺服器、回退規則與網域策略,不宜同時在多個位置任意覆寫。Android 的「私人 DNS」會使用加密 DNS,部分網路或設定組合可能與用戶端的 DNS 接管產生差異。出現網域無法開啟但 IP 可存取時,可以暫時將私人 DNS 調回自動狀態進行比對,而不是立即重新安裝用戶端。
mode: rule
dns:
enable: true
enhanced-mode: fake-ip
nameserver:
- 1.1.1.1
- 8.8.8.8
以上片段僅用於說明常見欄位關係,實際訂閱可能已提供完整 DNS 設定。修改前應保留原始設定,並留意遠端訂閱再次更新時可能覆蓋本機變更。Android 用戶端介面中的 VPN 開關通常負責建立系統虛擬介面,不應簡單等同於設定檔中的每一個 tun 欄位。
背景執行、省電白名單與通知權限
Android 會根據電量、使用頻率與廠商策略限制背景程序。Clash 執行期間雖然通常會啟動前景服務,但長時間鎖定螢幕、低電量模式或記憶體壓力下,仍可能受到限制。典型表現是亮起螢幕時連線正常,鎖定螢幕數分鐘後要求逾時;重新開啟用戶端後連線又恢復;或者系統清理最近使用的工作後,VPN 圖示也隨之消失。
將電池使用方式設為不受限制
進入系統「設定 → 應用程式 → Clash 用戶端 → 電池」一類的頁面,將背景電池使用調整為「不受限制」、「允許背景活動」或廠商系統中的同等選項。不同 Android 版本的名稱並不一致,有些裝置會將相關入口放在「應用程式耗電管理」、「電池最佳化」或「特殊應用程式權限」中。設定完成後,應鎖定螢幕等待一段時間再測試,不能只以前景瀏覽幾分鐘來判斷是否生效。
所謂省電白名單,本質上是讓系統減少對該應用程式的待機限制。它不會修復失效節點,也不會提升節點頻寬。若前景執行時就已無法連線,應先檢查設定、節點與 DNS;只有前景正常、背景失效時,才應優先處理電池策略。
允許自動啟動與背景活動
部分裝置提供「自動啟動」、「關聯啟動」、「背景彈出介面」或「背景執行」開關。對需要開機後恢復代理的情境,可允許用戶端自動啟動;對只在手動使用時開啟代理的情境,則不必啟用所有啟動權限。用戶端本身還需要支援開機恢復或始終開啟 VPN,單獨授予自動啟動權限並不保證服務一定會建立。
某些系統會在清理最近使用的工作時,同時終止背景服務。若裝置提供最近使用工作鎖定功能,可以將用戶端保留在工作清單中。不過工作鎖定只是廠商系統的附加措施,不能取代 VpnService 授權、前景服務通知與電池最佳化設定。
檢查通知與前景服務狀態
Android 13 及後續版本會單獨詢問通知權限。用戶端執行時的常駐通知可用於顯示服務狀態、流量或停止入口。若通知權限遭拒絕,系統呈現前景服務的方式可能改變,也會讓使用者難以判斷服務是否仍在執行。應在應用程式通知設定中允許執行狀態相關類別,並避免將該類別設為會頻繁響鈴的高干擾等級。
還需要檢查系統的資料節省模式。開啟「流量節省程式」後,可允許用戶端在背景使用行動數據,否則從 Wi-Fi 切換到行動網路時,前景服務雖然存在,新的代理連線卻可能無法正常建立。雙 SIM 裝置還應確認目前的數據 SIM 已連線,切換 SIM 後等待系統預設網路穩定,再觀察 Clash 是否重新連線。
始終開啟 VPN 與「封鎖未使用 VPN 的連線」
Android 系統 VPN 設定中通常提供「始終開啟 VPN」。選擇 Clash 用戶端後,系統會嘗試讓該 VpnService 保持啟用,並可在裝置啟動後要求恢復。這個選項適合希望所有日常流量持續進入規則系統的使用者,但前提是用戶端、設定與節點在開機階段都能正常載入。
「封鎖未使用 VPN 的連線」是更嚴格的系統選項。開啟後,只要 VpnService 尚未建立,裝置流量就可能遭到封鎖。用戶端當機、設定載入失敗、訂閱規則集尚未下載完成或系統剛開機時,都可能暫時無法連線。啟用前應確認自己知道如何進入系統 VPN 頁面關閉此選項,並先驗證用戶端在 Wi-Fi、行動數據與鎖定螢幕恢復等情境下都能穩定運作。
嚴格封鎖模式還可能影響分應用程式繞過、區域網路存取與需要直接探索裝置的應用程式。印表機、投放裝置、路由器管理頁面依賴本機網段時,應確認設定允許區域網路存取,並查看目標流量是否命中 DIRECT。即使規則選擇直連,流量也可能先進入 VpnService,再由核心依本機路由送出,因此錯誤的路由、DNS 或嚴格限制仍會影響結果。
Android 熱點分享流量通常不會因為手機上啟動了 VpnService,就自動以相同方式進入 Clash。是否支援熱點轉送取決於用戶端實作、系統版本與裝置權限,不能只憑手機本身的存取結果判斷分享出去的裝置也已使用代理。需要分享時,應查看用戶端是否提供專用的熱點、區域網路監聽或轉送設定,並留意本機連接埠的暴露範圍。
切換網路後斷線的恢復順序
從家庭 Wi-Fi 切換到行動數據、進入需要網頁登入的公共 Wi-Fi,或從無訊號區域恢復時,Android 預設網路會發生變化。舊有的 TCP 或 UDP 連線通常無法直接沿用,Clash 需要在新網路上重新建立與節點的連線。短暫中斷屬於正常現象;若等待後仍無法恢復,應依由外到內的順序檢查。
- 先確認基礎網路:暫停 Clash,確認目前的 Wi-Fi 或行動數據本身能否存取網路。公共 Wi-Fi 應先完成驗證頁面登入。
- 重新啟動 VpnService:關閉用戶端執行開關,等待 VPN 圖示消失後再重新開啟,避免連續快速點擊造成狀態不同步。
- 更換節點:選擇另一個已知可用的節點並重新測試。某個節點無法連線不代表 Android 背景設定失效。
- 更新訂閱:確認訂閱尚未過期,並查看更新過程是否出現網路、憑證或設定解析錯誤。
- 檢查系統時間:自動日期、時間與時區錯誤可能導致 TLS 連線失敗,記錄中常表現為握手或憑證時間異常。
- 比對 DNS:若只有網域名稱連線失敗,檢查私人 DNS、設定中的 DNS 與目前網路的劫持情況;若 IP 與網域都失敗,則繼續檢查節點與路由。
- 檢查其他 VPN:停用同時使用 VpnService 的防火牆、過濾器或企業 VPN,再重新授權 Clash。
記錄是區分故障層級的主要依據。反覆出現連線逾時,通常需要檢查節點位址、連接埠、目前網路可達性與防火牆;出現網域解析失敗,應檢查 DNS 與網路驗證;出現設定解析錯誤,則應回頭檢查訂閱與 YAML 內容;服務直接消失而記錄中沒有新的網路錯誤,則更符合背景程序受到限制或遭系統終止的特徵。
| 現象 | 優先檢查 | 建議動作 |
|---|---|---|
| 鎖定螢幕後 VPN 圖示消失 | 電池最佳化、背景活動、前景服務 | 設為不受限制並保留執行通知 |
| 切換行動數據後持續逾時 | 背景數據、節點可達性、舊有連線 | 重新啟動服務並更換節點測試 |
| 只有網域無法開啟 | 設定 DNS、私人 DNS、公共網路驗證 | 比對自動私人 DNS,並查看解析記錄 |
| 啟動時立即被其他服務取代 | 其他 VPN、過濾器或工作資料 | 保留一個 VpnService 後重新授權 |
| 重新啟動手機後沒有自動連線 | 始終開啟 VPN、自動啟動、用戶端恢復選項 | 逐項開啟並完成一次重新啟動驗證 |
穩定運作的日常檢查清單
長期使用時,不需要頻繁清除應用程式資料或重複安裝。清除資料會移除已授予的狀態、匯入的設定與本機選擇,反而增加重新定位問題的步驟。更合適的做法是保留一份簡單的檢查清單,在系統更新、用戶端升級或訂閱更新後逐項確認。
- 設定可以正常載入,主要策略組中存在可選節點。
- Android VPN 授權仍然有效,狀態列能看到對應的執行狀態。
- 電池使用方式符合需求,長時間執行時設為不受限制。
- 執行通知可見,系統沒有完全關閉相關通知類別。
- 資料節省模式允許用戶端依需求在背景使用行動數據。
- 同一時間沒有其他應用程式佔用 Android VpnService。
- 切換 Wi-Fi 與行動數據後,服務能在合理時間內恢復。
- 始終開啟與嚴格封鎖選項只在完成穩定性驗證後啟用。
Clash Android 的穩定性取決於三個層面:底層是可用的網路與節點,中間是正確的 Clash 或 mihomo 設定,上層則是 Android 對 VpnService 與背景程序的管理。依照這個層次排查,可以避免將省電限制誤認為訂閱故障,也能避免節點失效時反覆修改系統權限。完成一次有順序的設定與待機測試後,後續維護通常只需關注訂閱更新、策略選擇,以及系統更新帶來的權限變化。