VpnService 授權究竟允許了什麼
Android 版 Clash 客戶端啟用代理後,通常會呼叫系統提供的 VpnService 介面。系統隨即顯示「連線要求」或「此應用程式想要設定 VPN 連線」視窗,狀態列也會出現鑰匙或 VPN 標誌。這項授權不是訂閱登入權限,也不是傳統企業 VPN 的帳號驗證,而是允許客戶端建立本機虛擬網路介面。
建立虛擬介面後,Android 會把所選應用程式的 IP 流量交給客戶端。Clash 核心再依據設定中的 rules、策略組與節點決定出口:符合 DIRECT 的連線直接存取,符合代理策略的連線透過所選節點轉送,符合 REJECT 的要求則會被攔截。這種處理方式接近桌面版的 TUN 模式,因此瀏覽器、即時通訊工具與不支援手動代理的應用程式也能套用規則分流。
授權視窗中的三個關鍵事實
- 同一個使用者空間通常只能維持一個 VPN。如果系統已連線至公司 VPN、WireGuard、廣告攔截器或其他代理工具,啟動 Clash 時可能會中斷舊連線,或直接提示 VPN 已被其他應用程式佔用。
- 授權會按應用程式記錄。首次啟用、重新安裝客戶端、清除應用程式資料,或更換簽章不同的安裝套件後,系統可能會再次詢問。
- 系統鑰匙圖示屬於正常狀態。它表示 VpnService 正在執行,不能單獨證明節點可用。節點連通性仍須透過延遲測試與實際瀏覽網頁確認。
本機 VPN 與遠端代理節點的關係
Android 設定頁會將這條連線統一歸類為「VPN」,但 VpnService 本身只負責在裝置內接收流量。真正的遠端連線仍由 Clash 設定中的代理節點建立。換句話說,看到 VPN 已連線,只能表示虛擬介面已建立;若訂閱已過期、節點逾時、DNS 設定錯誤或規則選擇不當,應用程式仍可能無法存取網路。
部分客戶端也提供「僅代理模式」或本機 HTTP、SOCKS 連接埠。常見連接埠包括 HTTP 7890、SOCKS 7891 與混合連接埠 7890,實際值以設定檔中的 port、socks-port 或 mixed-port 為準。手動代理只涵蓋明確使用該連接埠的應用程式,VpnService 模式則更適合整機分流;不清楚流量路徑時,不要同時重複啟用兩者。
正確處理授權視窗與首次連線
首次啟動的建議順序
- 先匯入可用訂閱或本機 YAML 設定,並執行一次設定更新。
- 進入代理或策略組頁面,選擇可用節點;延遲測試能回傳數值不代表所有網站都能存取,但可先排除完全無法連線的節點。
- 返回客戶端首頁,開啟「服務」、「連線」或「啟動」開關;不同客戶端的按鈕名稱可能略有差異。
- 系統出現 VPN 連線要求時,確認應用程式名稱後選擇「允許」。
- 等待狀態列出現 VPN 標誌,再造訪一般網頁與需要代理規則的網站,分別檢查直連與代理路徑。
使用 Clash Meta(mihomo)核心的 Android 客戶端時,介面可能將執行方式標示為「VPN 模式」、「TUN」或「服務模式」。這些名稱的側重點不同,但只要最終呼叫 Android VpnService,系統就會顯示 VPN 授權。部分版本還允許設定繞過應用程式、僅代理選取的應用程式、IPv6 路由與系統 DNS 接管;首次連線時建議先保留預設值,確認基本鏈路可用後再逐項調整。
點選允許後卻立即中斷
先開啟 Android 系統的 VPN 頁面,檢查是否有其他 VPN 設定為自動重新連線。原生 Android 14、Android 15 的常見路徑是「設定」→「網路和網際網路」→「VPN」;三星 One UI 的常見路徑是「設定」→「連線」→「更多連線設定」→「VPN」;中國大陸手機系統也可能位於「設定」→「更多連線」→「VPN」。中斷舊連線後,再返回 Clash 重新啟動服務。
若沒有其他 VPN,佔用問題通常來自「永遠開啟的 VPN」。點開舊 VPN 旁的設定按鈕,關閉「永遠開啟的 VPN」與「封鎖未使用 VPN 的連線」。後一個選項也稱為 VPN 鎖定或封鎖無 VPN 連線;指定 VPN 未成功建立時,它會切斷所有網路。排除問題期間應先關閉,確認設定穩定後再依實際需求啟用。
Android 13 以上的通知權限
Android 13 引入執行階段通知權限。VpnService 授權與通知權限是兩項獨立設定,但客戶端通常需要以前景服務方式維持執行,並顯示常駐通知。首次啟動時應允許客戶端傳送通知,才能查看執行狀態、目前上下行速度與停止按鈕。若先前拒絕,可進入「設定」→「應用程式」→「Clash 客戶端」→「通知」→「允許通知」重新開啟。
通知被關閉時,部分系統仍允許前景服務執行,但使用者無法直觀看到狀態;另一些深度客製化系統則會更積極限制不可見的背景工作。因此,排查「鎖定螢幕幾分鐘後中斷」時,通知權限、省電策略與自動啟動權限需要一併檢查。
省電白名單為何會影響代理穩定性
Clash Android 連線期間需要持續維護虛擬網卡、DNS 查詢、TCP 或 UDP 工作階段以及節點心跳。螢幕熄滅後,Android 的 Doze 模式會延後一般背景工作;中國大陸手機系統還可能疊加應用程式凍結、自動清理與背景耗電管理。客戶端程序一旦被凍結,可能出現 VPN 圖示仍短暫存在,但新連線無法建立,之後系統才會徹底移除 VPN。
常見症狀與判斷依據
| 現象 | 優先檢查項目 | 判斷方法 |
|---|---|---|
| 鎖定螢幕 5 至 15 分鐘後中斷 | 電池最佳化、背景活動 | 亮屏期間穩定,熄屏後在固定時間失效 |
| 清除最近使用的工作後立即中斷 | 工作鎖定、自動啟動 | 不清除工作時連線正常 |
| 重新啟動手機後未恢復 | 開機啟動、自動啟動 | 手動開啟客戶端後可以連線 |
| 僅在行動網路下失效 | 背景資料、節省流量功能 | Wi-Fi 正常,切換至 4G 或 5G 後停止傳輸 |
| VPN 圖示存在但網頁逾時 | 節點、DNS、核心狀態 | 重新啟動服務後短暫恢復,或切換節點後恢復 |
加入白名單的目的不是讓客戶端無限制佔用資源,而是避免系統將持續運作的網路服務誤判為可延後的一般背景工作。正常待機時,實際耗電量也會受到節點協定、訊號強度、規則複雜度、DNS 模式與流量大小影響。在 4G 訊號微弱的環境下維持連線,往往比穩定的 Wi-Fi 更耗電,不能只根據系統電量頁面的單次排名判斷。
通用 Android 設定清單
- 在「設定」→「應用程式」→「Clash 客戶端」→「應用程式電池用量」中選擇「不受限制」或「允許背景活動」。
- 在「設定」→「應用程式」→「特殊應用程式存取權」→「電池最佳化」中切換至「所有應用程式」,找到客戶端並選擇「不最佳化」。
- 在「設定」→「應用程式」→「Clash 客戶端」→「行動數據和 Wi-Fi」中允許背景資料,並在需要時允許「不受限制的資料用量」。
- 開啟客戶端通知,保留前景服務的常駐通知。
- 如果系統提供自動啟動或關聯啟動權限,請允許客戶端自動啟動。
- 在最近使用的工作介面鎖定客戶端,避免一鍵清理結束程序。
選單名稱會隨 Android 大版本與廠商系統更新而變更。找不到入口時,可直接在系統設定頂端搜尋「電池最佳化」、「自動啟動」、「背景活動」或「不受限制」。設定完成後應鎖定螢幕等待至少 20 分鐘,再分別使用 Wi-Fi 與行動網路測試,不要只看 VPN 圖示。
小米、華為、OPPO、vivo 等系統的設定路徑
小米 HyperOS 與 MIUI
- 進入「設定」→「應用程式設定」→「應用程式管理」→選擇 Clash 客戶端→「省電策略」,設定為「不受限制」。
- 進入「設定」→「應用程式設定」→「授權管理」→「自動啟動管理」,開啟對應客戶端。
- 開啟最近使用的工作,上滑或長按客戶端卡片,選擇鎖頭按鈕固定工作。不同桌面手勢下,也可能需要下拉卡片後點選鎖頭。
- 進入應用程式詳細資料頁的「流量使用情況」,確認 WLAN、行動數據與背景連網均已允許。
HyperOS 部分版本將省電入口放在「設定」→「電量與效能」→「應用程式智慧省電」。如果系統仍在鎖定螢幕後終止服務,可在該頁面再次確認目標應用程式為「不受限制」,並關閉針對該應用程式的暫停背景活動選項。
華為 HarmonyOS 與 EMUI
- 進入「設定」→「應用程式與服務」→「應用程式啟動管理」。
- 找到 Clash 客戶端,關閉「自動管理」。
- 在彈出的手動管理項目中開啟「允許自動啟動」、「允許關聯啟動」與「允許背景活動」。
- 進入「設定」→「電池」→「更多電池設定」,檢查休眠時網路連線相關選項。
- 進入「設定」→「行動網路」→「流量管理」→「應用程式連網」,允許客戶端使用行動數據與 WLAN。
如果只開啟「允許自動啟動」而未開啟「允許背景活動」,客戶端仍可能在鎖定螢幕後被凍結。三項權限應一併核對。系統管理員執行一鍵最佳化後,也可能再次顯示耗電提示;更新系統後建議重新檢查一次應用程式啟動管理。
OPPO ColorOS 與一加 OxygenOS
- 進入「設定」→「應用程式」→「應用程式管理」→選擇客戶端→「耗電管理」。
- 開啟「允許前景活動」、「允許背景活動」與「允許自動啟動」;部分版本會顯示為「允許應用程式自動啟動」。
- 進入「設定」→「電池」→「更多設定」→「最佳化電池使用量」,找到客戶端並選擇「不最佳化」。
- 在最近使用的工作中點選客戶端卡片右上角的選單,選擇「鎖定」。
- 在應用程式的「流量使用情況」頁面允許背景行動數據。
ColorOS 的「自動最佳化耗電」可能在長時間未使用應用程式後重新收緊背景權限。如果中斷問題每隔幾天再次出現,請先檢查耗電管理是否仍設定為允許背景活動,而不是反覆刪除並匯入訂閱。
vivo OriginOS 與 Funtouch OS
- 進入「設定」→「應用程式與權限」→「權限管理」→「自動啟動」,開啟客戶端。
- 進入「設定」→「電池」→「背景耗電管理」,選擇客戶端並設定為「允許背景高耗電」。
- 開啟最近使用的工作,找到客戶端卡片並選擇「鎖定」。
- 進入「i 管家」→「流量管理」→「連網管理」,允許 WLAN、數據網路與背景連網。
「允許背景高耗電」是 vivo 系統中相當關鍵的設定。名稱聽起來像效能模式,實際作用是允許持續執行的網路服務在鎖定螢幕後繼續運作。若只設定自動啟動,正在執行的 VpnService 仍可能被背景策略停止。
榮耀 MagicOS
- 進入「設定」→「應用程式」→「應用程式啟動管理」。
- 關閉客戶端的自動管理,手動開啟自動啟動、關聯啟動與背景活動。
- 進入「設定」→「電池」→「更多電池設定」,檢查休眠時的網路連線設定。
- 在應用程式詳細資料的「流量使用情況」中允許背景資料。
MagicOS 的應用程式啟動管理邏輯與部分 EMUI 版本相近。升級系統後若服務頻繁退出,應重新開啟該頁面確認手動管理狀態,因為系統移轉或重新安裝應用程式可能會恢復預設策略。
三星 One UI
- 進入「設定」→「電池」→「背景使用限制」→「永不自動休眠的應用程式」,加入 Clash 客戶端。
- 進入「設定」→「應用程式」→選擇客戶端→「電池」,選擇「不受限制」。
- 進入「設定」→「連線」→「數據使用量」→「允許應用程式使用數據流量」,確認背景資料可用。
- 檢查「設定」→「連線」→「更多連線設定」→「VPN」,排除其他永遠開啟的 VPN。
分應用程式代理、DNS 與背景斷線的聯動排查
先確認分應用程式範圍
許多 Android 客戶端允許設定「繞過所選應用程式」或「僅代理所選應用程式」。兩種模式的含義相反:前者讓清單內的應用程式直接連網,後者只會將清單內的應用程式送入 VpnService。若瀏覽器可以存取,而某個應用程式始終直連,請先檢查該應用程式是否被排除,不要立即修改規則檔案。
系統元件也會影響登入與推播。例如部分應用程式會透過外部瀏覽器完成 OAuth 登入;主應用程式進入代理而瀏覽器被繞過時,登入頁面與回呼可能走不同網路。排查時可暫時關閉分應用程式篩選,讓所有應用程式進入 VPN;確認正常後,再逐一加入繞過清單。
VPN 已連線但無法開啟網域
先分別以 IP 位址與網域進行測試。如果節點延遲有結果、IP 連線正常但網域要求逾時,應優先檢查 DNS。使用 mihomo 核心時,常見設定欄位包括 dns.enable、nameserver、fallback、enhanced-mode 與 fake-ip-range。YAML 縮排必須一致,列表項目前的短橫線也不能遺漏。
dns:
enable: true
ipv6: false
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
nameserver:
- 1.1.1.1
- 8.8.8.8
這段內容只展示欄位結構,不代表所有網路都應固定使用同一組 DNS。若訂閱提供者已提供完整 DNS 區段,應優先保留其設定。Android 的「私人 DNS」也可能與客戶端 DNS 接管互相影響;出現解析異常時,可暫時進入「設定」→「網路和網際網路」→「私人 DNS」,改為「自動」進行對照測試。
用系統資訊判斷程序是否被終止
具備電腦除錯條件時,可透過 ADB 查看 VPN 與程序狀態。先在開發人員選項中開啟 USB 偵錯,再執行以下命令。不同 Android 版本的輸出欄位會有所變化,重點查看目前的 VPN 套件名稱、前景服務與程序是否仍然存在。
adb shell dumpsys connectivity
adb shell dumpsys activity services
adb shell dumpsys deviceidle
adb shell pidof 客戶端套件名稱
如果鎖定螢幕前 pidof 能回傳程序編號,鎖定螢幕後卻回傳空值,通常表示程序已被系統結束;如果程序與 VPN 介面都存在,但流量不再增加,則應檢查節點工作階段、DNS 或核心日誌。日誌中出現 timeout 多半指向連線逾時;出現設定解析錯誤時,應回到 YAML 檢查欄位與縮排。
穩定執行設定與日常檢查
完成授權與白名單設定後,可執行一次固定流程測試:連線至 Wi-Fi,啟動服務並瀏覽網頁;鎖定螢幕 20 分鐘後再次測試;切換至 4G 或 5G,等待 30 秒後測試;從最近使用的工作返回客戶端,確認服務狀態與流量計數仍在更新。若四個步驟都正常,表示 VpnService、背景權限與網路切換基本穩定。
建議保留的系統權限
- VPN 連線授權,用於建立本機虛擬網路介面。
- 通知權限,用於顯示前景服務狀態與執行控制。
- 背景活動與電池最佳化豁免,用於在鎖定螢幕期間維持連線。
- 自動啟動權限,用於系統重新啟動後依客戶端設定恢復服務。
- 背景資料權限,用於在行動網路與節省流量模式下繼續連網。
不穩定時不要同時修改所有選項
一次只調整一個變數,並記錄測試時間。先關閉其他 VPN,再將電池設定為「不受限制」,然後測試鎖定螢幕;仍然中斷時,再開啟自動啟動與工作鎖定。網路可用但個別網站異常時,應改查規則與 DNS,不要繼續疊加系統權限。這樣才能區分系統終止背景程序、節點故障與設定錯誤。
客戶端更新、系統大版本升級或重新安裝後,應重新檢查 VPN 授權、通知、電池策略與自動啟動狀態。Android 可能保留部分權限,也可能將其視為新應用程式重新管理。訂閱更新通常不會改變系統權限,但可能修改代理組名稱、DNS 區段與規則順序;更新後若只有特定應用程式異常,應先比較設定變化。
完整的穩定方案可以概括為四點:讓目前的 Clash 客戶端獨佔系統 VPN;允許前景服務顯示通知;將客戶端加入電池與背景執行白名單;分別驗證 Wi-Fi、行動網路與鎖定螢幕情境。VPN 圖示只是起點,持續傳輸、正確分流與穩定解析才是最終檢查標準。