先判斷是否為 UWP 回環限制
瀏覽器能透過 Clash 正常存取網路,但 Microsoft Store、Xbox、部分郵件或串流應用程式持續顯示連線失敗,常見原因不是節點失效,而是 Windows 的 AppContainer 網路隔離。UWP 應用程式通常在 AppContainer 沙箱中執行,預設無法任意連線至本機回環位址,也就是 127.0.0.1 或 localhost。
Clash、Clash Meta(現稱 mihomo)及其圖形化客戶端通常會在本機監聽代理連接埠。例如混合連接埠 mixed-port: 7890 對應 127.0.0.1:7890。啟用系統代理後,一般桌面程式可以連線至這個位址;受到限制的商店應用程式卻可能無法連線,因此出現「網頁正常、商店應用程式離線」的差異。
符合回環問題的典型情況
- Edge、Firefox 或一般桌面軟體可以透過代理存取外部網站。
- Microsoft Store 長時間停留在載入狀態,或顯示無法連線至網路。
- Xbox、意見反應中心、舊版郵件等封裝應用程式連線失敗。
- 關閉 Clash 的系統代理後,應用程式可以直接連線;重新啟用後又再次失敗。
- Clash 記錄中看不到該應用程式發出的連線紀錄。
先確認本機代理連接埠
開啟客戶端的「設定」→「連接埠設定」或「設定」→「Mihomo 設定」,確認目前使用的是 HTTP、SOCKS 還是混合連接埠。常見值為 7890,但實際連接埠也可能是 7897、7899 或自訂值。Windows 系統代理中的位址必須與客戶端監聽的值一致。
mixed-port: 7890
allow-lan: false
mode: rule
log-level: info
mixed-port 表示同一個連接埠同時接收 HTTP 與 SOCKS 連線。這裡的 allow-lan 控制區域網路裝置是否可以存取代理,與本機 UWP 回環權限不是同一個開關。將它改為 true 並不能取代回環豁免。
方法一:使用客戶端內建的 UWP 回環工具
圖形化客戶端的內建工具更適合一般使用者。它通常會列出已安裝的 AppContainer 應用程式,勾選後呼叫 Windows 系統介面寫入回環豁免。不同客戶端的選單名稱略有差異,但核心操作相同。
常見選單路徑
- Clash Verge Rev 2.x:進入「設定」→「系統設定」,尋找「UWP 回環」或「Loopback」入口。
- 保留經典介面的客戶端:進入「一般」或「General」,點擊「UWP Loopback」旁的啟動按鈕。
- 部分 mihomo 客戶端:進入「設定」→「網路」,尋找「解除 UWP 回環限制」。
如果目前的客戶端沒有這個入口,不代表 mihomo 核心缺少代理功能。回環豁免屬於 Windows 權限設定,通常由圖形介面或系統指令處理,不是代理核心設定檔中的欄位。
具體操作步驟
- 先讓 Clash 客戶端保持執行,並確認系統代理已啟用。
- 進入客戶端的 UWP 回環工具,等待應用程式清單載入完成。
- 找到需要使用代理的應用程式,例如 Microsoft Store 或 Xbox。
- 勾選目標應用程式,不必一次選取所有項目。
- 點擊「儲存」、「套用」或「解除限制」。系統跳出權限確認時,請允許執行。
- 完全關閉目標應用程式後再重新開啟。僅將視窗最小化通常不會重新建立網路程序。
應勾選哪些應用程式
按需授權比全部勾選更容易排除問題。先勾選目前發生問題的應用程式,儲存後立即驗證。若 Microsoft Store 恢復正常,而另一個應用程式仍然失敗,再為第二個套件新增豁免。如此可確認哪項修改產生效果,也方便日後撤銷。
| 目標 | 建議操作 | 驗證重點 |
|---|---|---|
| Microsoft Store | 勾選對應的商店套件 | 首頁內容與應用程式詳細資訊是否能載入 |
| Xbox | 分別檢查主程式與身分元件 | 登入、商店與下載佇列 |
| 意見反應中心 | 僅勾選意見反應中心套件 | 帳戶狀態與內容清單 |
| 第三方商店應用程式 | 依顯示名稱與套件族名稱定位 | 重新啟動後觀察 Clash 記錄 |
方法二:使用 CheckNetIsolation 精確新增豁免
CheckNetIsolation 是 Windows 內建的命令列工具,可查看、新增與刪除 AppContainer 回環豁免。當客戶端沒有內建入口、圖形化清單載入失敗,或需要明確記錄修改內容時,這種方法相當適合。
指令中的關鍵參數是 Package Family Name,中文通常稱為「套件族名稱」,縮寫為 PFN。它不是開始選單中看到的應用程式標題,也不是安裝目錄名稱。輸入錯誤的套件族名稱時,指令可能無法套用至目標應用程式。
第一步:查詢應用程式的套件族名稱
以滑鼠右鍵點擊開始選單,開啟「終端機(系統管理員)」或「Windows PowerShell(系統管理員)」。查詢 Microsoft Store 可執行:
Get-AppxPackage -Name Microsoft.WindowsStore |
Select-Object Name, PackageFamilyName
常見的輸出結構如下,實際後綴由發行者識別碼決定:
Name PackageFamilyName
---- -----------------
Microsoft.WindowsStore Microsoft.WindowsStore_8wekyb3d8bbwe
如果不知道內部名稱,可以依標題關鍵字篩選所有套件:
Get-AppxPackage |
Where-Object {
$_.Name -like "*Store*" -or
$_.PackageFamilyName -like "*Store*"
} |
Select-Object Name, PackageFamilyName
第二步:新增回環豁免
確認套件族名稱後,在系統管理員終端機中執行:
CheckNetIsolation.exe LoopbackExempt -a -n=Microsoft.WindowsStore_8wekyb3d8bbwe
參數 LoopbackExempt 表示管理回環豁免,-a 表示新增,-n 後方填入套件族名稱。執行完成後關閉 Microsoft Store,並在工作管理員中確認相關程序已結束,再重新啟動。
第三步:查看目前的豁免清單
CheckNetIsolation.exe LoopbackExempt -s
清單中出現目標套件的名稱或安全識別碼,表示豁免已寫入。如果指令回報成功,但應用程式仍無法連線,請繼續檢查系統代理連接埠、Clash 記錄與規則命中結果。
需要撤銷時刪除豁免
CheckNetIsolation.exe LoopbackExempt -d -n=Microsoft.WindowsStore_8wekyb3d8bbwe
-d 表示刪除。撤銷後重新啟動應用程式即可。系統更新或重新安裝應用程式後,套件註冊資訊可能會變更;如果問題再次出現,應重新查詢 PackageFamilyName,而不是直接重複使用舊指令。
確認應用程式流量是否確實進入 Clash
應用程式恢復載入不一定代表流量已按照預期透過代理傳送。部分要求可能直接連線,快取內容也可能讓頁面看起來正常。更可靠的方式是結合 Clash 連線記錄、規則命中情況與出口位址進行驗證。
觀察即時連線
- 將 Clash 模式維持在「規則」模式。
- 開啟客戶端的「連線」或「Connections」頁面。
- 清除篩選條件,記下目前的連線數量。
- 完全關閉目標 UWP 應用程式,再重新開啟並重新整理內容。
- 觀察是否出現新的網域、目標 IP、程序或策略群組記錄。
例如開啟 Microsoft Store 後,連線頁面應出現與 Microsoft 服務相關的請求,並顯示命中的規則與最終策略。不同系統版本、地區與帳戶狀態所使用的網域會有所變化,因此不應只依賴某個固定網域判斷。
暫時使用全域模式交叉驗證
如果規則模式下仍然失敗,可以暫時切換至「全域」模式並選擇可用節點。若應用程式在全域模式下恢復正常,表示回環連線已建立,後續問題更可能位於規則匹配、DNS 或節點可達性。測試完成後應切回「規則」模式,避免長期讓所有流量使用同一項策略。
比較三種結果
| 測試結果 | 較可能的原因 | 下一步 |
|---|---|---|
| 記錄中完全沒有新連線 | 回環豁免未生效或應用程式未重新啟動 | 重新查詢豁免清單並結束應用程式程序 |
| 有連線,但全部命中 DIRECT | 規則將目標流量設為直連 | 檢查規則順序與策略群組選擇 |
| 有代理連線,但顯示逾時 | 節點無法使用或目標服務拒絕連線 | 切換節點並測試相同目標 |
| 全域模式正常,規則模式失敗 | 規則或 DNS 設定問題 | 找出命中的規則並檢查網域解析 |
仍然無法連線時檢查這五項
1. 系統代理連接埠與 mixed-port 不一致
假設 mihomo 監聽 127.0.0.1:7890,但 Windows 系統代理仍指向舊連接埠 7897,即使應用程式取得回環權限也無法建立連線。進入 Windows 11 的「設定」→「網路和網際網路」→「代理」,檢查手動代理是否由客戶端正確接管。
通常不建議同時手動填寫 Windows 代理並啟用客戶端的系統代理開關。兩處設定容易在重新啟動或切換連接埠後不同步。優先讓目前的客戶端統一管理,修改連接埠後關閉再重新啟用一次系統代理。
2. 客戶端未成功啟動核心
查看客戶端首頁或記錄,確認 mihomo 核心處於執行狀態。如果記錄出現連接埠遭佔用,應先關閉佔用程序,或將 mixed-port 從 7890 改為其他空閒連接埠,並同步更新系統代理。
netstat -ano | findstr :7890
指令最後一欄是程序 PID。可在工作管理員的「詳細資料」頁面依 PID 找出程序。不要直接結束不熟悉的系統程序,先確認它是否屬於另一個代理客戶端或上次未退出的核心執行個體。
3. 規則將 Microsoft 服務分配至無法使用的策略
回環豁免只解決「應用程式能否連線至本機代理」,不會代替應用程式選擇節點。進入「連線」頁面查看請求命中了哪個策略群組。如果策略群組使用無法連線的節點、拒絕策略或錯誤的直連路徑,仍會顯示載入失敗。
測試時可以為對應策略群組手動選擇延遲穩定的節點。延遲測試成功只代表測試位址可達,不等於所有 Microsoft 服務都能存取,因此仍要結合實際連線狀態判斷。
4. DNS 解析結果異常
如果記錄中持續出現 DNS 逾時、網域解析失敗或目標位址為空,應檢查 mihomo 設定中的 dns.enable、上游 DNS 與工作模式。啟用 TUN 模式時,還要確認客戶端的服務模式或系統管理員權限已正常安裝,否則 DNS 劫持可能不會生效。
dns:
enable: true
ipv6: false
enhanced-mode: fake-ip
nameserver:
- 1.1.1.1
- 8.8.8.8
這段設定只是結構範例,不能脫離現有訂閱直接覆蓋。訂閱可能已經設定規則、備用解析與 Fake-IP 過濾清單。修改前應保留原有設定,並優先使用客戶端提供的覆寫功能。
5. 應用程式程序並未真正重新啟動
關閉視窗後,商店應用程式可能仍在背景執行。開啟工作管理員,在「處理程序」或「詳細資料」頁面結束對應工作,等待 5 秒後再啟動。也可以登出 Windows 帳戶後重新登入,讓 AppContainer 程序重新讀取權限。
常見問題
為什麼瀏覽器正常,Microsoft Store 卻顯示離線?
一般桌面瀏覽器可以連線至 127.0.0.1 上的 Clash 代理,但部分 AppContainer 應用程式預設受到回環限制。先為 Microsoft Store 新增回環豁免,再重新啟動應用程式。
解除回環限制後需要重新啟動電腦嗎?
多數情況不需要。完全結束目標應用程式程序後重新啟動即可。如果應用程式仍使用舊的網路狀態,可以登出帳戶或重新啟動 Windows 後再測試。
可以一次勾選所有 UWP 應用程式嗎?
技術上部分工具允許全選,但排除問題時更建議只處理確實需要代理的應用程式。按需新增有助於驗證效果,也方便日後透過 CheckNetIsolation.exe LoopbackExempt -s 核對清單。
切換 Clash 客戶端後需要重新設定嗎?
回環豁免由 Windows 儲存,通常不會因為更換客戶端而立即消失。不過新客戶端的監聽連接埠、系統代理與 TUN 設定可能不同,仍需確認 Windows 指向目前正在執行的代理連接埠。
CheckNetIsolation 回報成功,但應用程式仍無法連線怎麼辦?
依序檢查應用程式是否已徹底重新啟動、系統代理連接埠是否一致、Clash 連線記錄是否出現請求,以及請求命中的規則與策略。全域模式正常而規則模式失敗時,請重點檢查規則與 DNS。
處理順序總結
- 確認一般桌面程式可以透過 Clash 連線。
- 確認本機監聽連接埠與 Windows 系統代理一致。
- 使用客戶端內建工具為目標 UWP 應用程式新增回環豁免。
- 沒有圖形化入口時,使用 PowerShell 查詢套件族名稱,再執行
CheckNetIsolation。 - 徹底結束並重新啟動目標應用程式。
- 在 Clash 連線頁面觀察請求、命中規則與最終策略。
- 仍然失敗時,再檢查節點、DNS、TUN 服務與連接埠佔用情況。
這類故障的關鍵,是將兩個問題分開處理:回環豁免決定應用程式能否連線至本機代理,Clash 設定則決定連線進入代理後如何解析、分流與轉送。先確認請求能進入記錄,再處理規則與節點,排查會更直接。