先判斷:是 UWP 回環限制,還是代理本身無法使用
瀏覽器可以上網,但 Microsoft Store 或某個商店應用程式一直載入,是排查 UWP 回環限制時常見的起點。Clash 的系統代理通常指向本機位址,例如 127.0.0.1:7890。在 AppContainer 隔離環境中執行的應用程式,預設無法像一般桌面程式一樣存取本機回環服務,因此可能連不上這個代理入口。
不過,「從商店安裝」不代表「受到相同的 UWP 限制」。Microsoft Store 也會發佈傳統桌面程式,而封裝式桌面應用程式的網路行為也可能不同。本文介紹的回環豁免方式,主要適用於受 AppContainer 網路隔離限制的應用程式,並非所有商店下載失敗都能歸因於此。
先完成 3 項基本檢查
- 確認代理連接埠。在用戶端的連接埠設定中查看 HTTP 連接埠或混合連接埠。本文以
7890為例;若實際使用的是7897,以下測試也必須改用7897。 - 確認 Windows 的代理位址。在 Windows 11 開啟「設定」→「網路和網際網路」→「Proxy」→「手動設定 Proxy」→「編輯」,確認位址和連接埠與用戶端設定相符。使用用戶端的系統代理開關時,應由用戶端管理這些設定,避免雙方反覆覆寫。
- 確認代理出口可用。使用瀏覽器連線至目標服務,並在 Clash 的連線或記錄面板查看請求。若瀏覽器也無法連線,請先檢查訂閱、所選節點及分流規則,不要直接大量新增回環豁免。
在 PowerShell 中可用以下兩個指令,分別檢查本機連接埠及明確指定的 HTTP 代理。第二個指令中的位址適用於測試 HTTP 連接埠或支援 HTTP 的混合連接埠,不適用於僅提供 SOCKS 的連接埠。
Test-NetConnection -ComputerName 127.0.0.1 -Port 7890
curl.exe --proxy http://127.0.0.1:7890 --head --max-time 20 https://www.microsoft.com/
三種方法怎麼選:單一應用程式優先使用回環豁免
前兩種方法都是修改 Windows 的回環豁免清單:圖形工具方便點選,命令列則便於確認套件名稱及撤銷設定。第三種方法使用 TUN 接管網路流量,不需要應用程式主動連線到本機 HTTP 代理;這是替代流量路徑,並未授予應用程式回環權限。
| 方法 | 適用情況 | 操作影響 |
|---|---|---|
| 用戶端內建回環工具 | 用戶端提供 UWP 或 Loopback 入口,且只需處理少數應用程式 | 為勾選的應用程式新增回環豁免 |
| CheckNetIsolation 指令 | 需要確認套件名稱、查看目前設定或精確撤銷 | 依套件系列名稱管理豁免清單 |
| TUN 虛擬網卡 | 應用程式不遵循系統代理,或需要接管更多網路流量 | 變更流量接管方式,並需額外檢查路由及 DNS |
建議先試用前兩種方法之一。新增豁免後若仍無法使用,再確認應用程式是否讀取系統代理、目標網域是否被分流為直連,以及是否需要使用 TUN。排查時一次只變更一項設定,並保留變更前後的記錄。
方法一:使用用戶端內建的 UWP 回環工具
部分 Windows 用戶端內建回環豁免工具,選單可能標示為「UWP 回環」、「UWP Loopback」或「Loopback Exemption」。不同用戶端及版本的選項位置不盡相同,並非所有 Clash 用戶端都有相同選單。若設定頁面沒有這個選項,請直接使用下一節介紹的 Windows 內建指令。
- 讓 Clash 保持正常執行,確認系統代理已啟用,並記下目前的監聽連接埠。
- 在用戶端設定中尋找 UWP 或 Loopback 相關選項並開啟工具;如果 Windows 要求管理員授權,請先確認程式來源再允許。
- 在應用程式清單中找到目標應用程式,例如 Microsoft Store。若清單同時顯示名稱和套件識別碼,請比對套件識別碼確認對象,不要只看相似的圖示。
- 只勾選需要使用本機代理的應用程式,再按下工具提供的儲存或套用按鈕。按鈕名稱依工具而異。
- 完全關閉目標應用程式後重新開啟。若背景程序仍在執行,可在工作管理員中結束該應用程式的工作,再進行測試。
清單中找不到目標應用程式怎麼辦
先確認應用程式已安裝在目前的 Windows 使用者帳戶,而不是只安裝在其他帳戶。重新整理清單後仍找不到,請使用 PowerShell 查詢套件名稱。傳統 Win32 應用程式可能不在此工具的管理範圍內,不能靠「勾選名稱相似的套件」解決。
方法二:使用 CheckNetIsolation 精確新增及撤銷豁免
Windows 10 和 Windows 11 都提供 CheckNetIsolation.exe,不必另外安裝回環工具。開啟「開始」功能表,搜尋 PowerShell,按右鍵選擇「以系統管理員身分執行」。以下以目前登入使用者已安裝的 Microsoft Store 為例,不必先查詢所有使用者的軟體套件。
步驟一:查詢 PackageFamilyName
Get-AppxPackage -Name Microsoft.WindowsStore |
Select-Object Name, PackageFamilyName
Microsoft Store 常見的套件系列名稱為 Microsoft.WindowsStore_8wekyb3d8bbwe,但請以本機查詢結果為準。參數須使用 PackageFamilyName,而非包含版本號和處理器架構的 PackageFullName。
若要查詢其他應用程式,可以先列出目前使用者的套件,再依名稱篩選。以下指令會依名稱排序,方便找出目標:
Get-AppxPackage |
Sort-Object Name |
Select-Object Name, PackageFamilyName
步驟二:查看現有清單並新增目標套件
CheckNetIsolation.exe LoopbackExempt -s
CheckNetIsolation.exe LoopbackExempt -a -n="Microsoft.WindowsStore_8wekyb3d8bbwe"
CheckNetIsolation.exe LoopbackExempt -s
-s 顯示現有豁免,-a 新增項目,-n 指定套件系列名稱。最後再次查詢,確認目標套件已列入清單。指令成功執行只代表權限設定成功,接著仍須重新啟動應用程式並確認實際請求。
步驟三:用變數處理其他應用程式,避免抄錯套件名稱
以下同樣以 Microsoft Store 為例:先儲存查詢結果,再傳給指令。處理其他應用程式時,請先從上一步的清單確認正確的 Name,再替換查詢條件;不要直接把應用程式的中文顯示名稱當成套件名稱。
$app = Get-AppxPackage -Name Microsoft.WindowsStore
if ($null -ne $app) {
CheckNetIsolation.exe LoopbackExempt -a "-n=$($app.PackageFamilyName)"
} else {
Write-Output "目前使用者找不到 Microsoft Store 套件。"
}
撤銷時只移除本次新增的項目
CheckNetIsolation.exe LoopbackExempt -d -n="Microsoft.WindowsStore_8wekyb3d8bbwe"
CheckNetIsolation.exe LoopbackExempt -s
-d 可刪除指定的豁免。只需排查問題時,不必清空整份清單,以免影響其他已設定的應用程式。若遇到拒絕存取,請先確認終端機是否以系統管理員身分執行;若找不到套件,請重新查詢目前使用者的安裝狀態及套件系列名稱,不要繼續猜測識別碼。
方法三:使用 TUN 接管不遵循系統代理的應用程式
如果應用程式不讀取 Windows 系統代理,即使新增回環豁免,也不會自動將請求送進 Clash。此時可考慮使用支援 TUN 的用戶端與核心,例如以 mihomo 為基礎的用戶端。TUN 透過虛擬網路介面和路由接管符合條件的 IP 流量,讓應用程式不必主動連線至 127.0.0.1:7890。
- 確認核心及權限。在用戶端的核心資訊中確認目前使用的核心支援 TUN。若用戶端要求安裝服務模式,請依畫面指示完成安裝並確認服務正在執行;部分實作需要以系統管理員權限啟動。
- 建立單一測試條件。先記錄系統代理狀態,再暫時關閉系統代理,只啟用 TUN 進行測試,避免無法判斷是哪一種連線方式生效。
- 啟用路由及 DNS 接管。檢查用戶端 TUN 設定中的自動路由及 DNS 相關選項。mihomo 設定中常見的欄位包括
tun.enable、auto-route和dns-hijack,但不能只複製一段設定,就認定所有用戶端都會套用。 - 重新啟動目標應用程式並查看連線。確認請求出現在用戶端的連線清單中,再查看符合的規則、策略群組及實際出口。
TUN 接管不代表所有流量都會經過代理節點。Clash 使用 Rule 模式時,請求仍會依規則比對,可能命中 DIRECT,也可能進入代理策略群組。若商店相關網域設為直連,而目前網路的直連路徑無法使用,仍可能無法載入。
新增豁免後仍無法使用:依記錄區分 4 類問題
1. 完全看不到目標請求
先確認應用程式已結束並重新啟動,再檢查 Windows 系統代理是否仍指向用戶端實際使用的連接埠。如果回環清單正確,瀏覽器明確指定代理的測試也成功,但該應用程式始終沒有請求記錄,可能是它不使用系統代理,或請求是由其他元件發出。可改用 TUN 進行對照測試,不要重複新增相同套件。
2. 出現請求,但規則命中 DIRECT
這代表請求已進入核心,接下來應檢查分流設定。查看連線詳細資訊中的目標網域、規則類型及出口。Microsoft Store 的登入、頁面內容和下載可能使用不同網域或系統元件,修正一個入口不一定涵蓋所有下載流程;不要只因頁面能開啟,就認定背景下載也使用相同路徑。
3. 連上代理後逾時,或出現 DNS 錯誤
檢查所選節點是否能連線至相同目標,並查看記錄中是否有網域解析失敗。使用 TUN 時,也要確認 DNS 請求是否由預期的設定接管。企業網路的內部網域、其他 VPN 的 DNS 及用戶端 DNS 設定可能互相衝突,請逐項測試,不要同時更換 DNS 伺服器、節點和路由。
4. 頁面可以開啟,下載工作仍停滯
下載可能由系統服務或其他程序參與處理;單一應用程式的回環豁免,不代表整台電腦的所有服務都會使用使用者代理。不要直接執行修改 WinHTTP 全域代理的指令,也不要一再重設商店快取來取代網路問題排查。先觀察下載時是否出現新連線,以及連線由哪個程序發起,再決定是否需要 TUN 或調整規則。
驗證結果及復原:保留可重現的設定
- 確認應用程式功能:分別測試啟動、登入、載入內容及下載,不要只因某個按鈕恢復正常,就認定問題已全部解決。
- 確認代理路徑:查看連線記錄中的規則和出口;測試完成後,將設定從暫時測試狀態還原為日常使用的 Rule 模式。
- 記錄變更:保存應用程式套件系列名稱、實際連接埠及新增的豁免,方便日後移轉或撤銷。
- 需要復原時:在圖形工具中取消對應的勾選,或使用
LoopbackExempt -d刪除指定套件;若測試過 TUN,請一併還原原本的 TUN 及系統代理狀態。
最精簡的排查順序是:先確認本機代理可用,再為受限制的目標應用程式新增回環豁免;若應用程式不讀取系統代理,再考慮 TUN。如此可分別處理連接埠、權限、路由及分流問題,也能在變更後準確判斷是哪個步驟生效。