Windows UWP 應用連不上 Clash 代理:解除回送限制的兩種方法

Windows 的 UWP 應用預設禁止存取本機回送位址,導致市集應用無法走系統代理,本文介紹用系統內建工具解除回送限制的兩種方法與注意事項。

故障現象:市集應用斷網,桌面軟體正常

系統代理已開啟,瀏覽器與各類桌面程式都正常走代理,Clash 面板上也能看到持續的連線記錄,但 Microsoft Store、天氣、郵件、Xbox 這類從市集安裝的應用全部提示「沒有網路連線」或一直轉圈。重啟客戶端、切換節點、重新匯入訂閱都沒有效果。

這不是訂閱或節點的問題。這些應用有一個共同身分:UWP(通用 Windows 平台)應用。它們執行在 AppContainer 沙盒裡,而 Windows 預設禁止沙盒應用存取本機回送位址 127.0.0.1——Clash 的系統代理位址恰好就是 127.0.0.1。

原因:UWP 的回送隔離機制

Clash 開啟系統代理後,寫入系統設定的代理位址是 127.0.0.1:7890(預設混合埠,實際依客戶端設定而定)。桌面 Win32 程式讀到這個位址後直接連接本機埠,一切正常;UWP 應用讀到同樣的位址後,發出的連線會被系統的網路隔離層直接擋下,請求根本到不了 Clash 核心,於是表現為「代理開了但沒網路」。

這項限制是系統的安全設計:沙盒應用不允許探測與存取本機服務,藉此防止惡意市集應用攻擊本機其他程式。解除方式是把指定應用加入回送豁免清單(Loopback Exemption),Windows 內建的命令列工具 CheckNetIsolation.exe 即可完成,不需要安裝第三方軟體。以下兩種方法依需求選擇。

方法一:依套件名稱精確豁免單一應用

適合只讓個別市集應用走代理的情境,豁免範圍最小,對隔離策略的改動也最小。開始之前先確認兩件事:一是 Clash 客戶端的系統代理已經開啟,二是你手邊有系統管理員權限的帳戶——整個操作只涉及兩條指令,但每一步都依賴系統管理員身分。

  1. 在開始選單按右鍵,選擇「終端機(系統管理員)」或「Windows PowerShell(系統管理員)」。豁免操作必須具備系統管理員權限,一般權限執行會被拒絕。
  2. 查詢目標應用的套件系列名稱(PackageFamilyName)。以天氣應用為例,執行:
Get-AppxPackage *bingweather* | Select-Object Name, PackageFamilyName

輸出裡 PackageFamilyName 一欄形如 Microsoft.BingWeather_8wekyb3d8bbwe。把星號之間的關鍵字換成目標應用的英文名即可,例如 *windowsstore**windowscalculator*

  1. 把查到的套件系列名稱加入豁免清單:
CheckNetIsolation.exe LoopbackExempt -a -n=Microsoft.BingWeather_8wekyb3d8bbwe

參數 -a 表示新增,-n= 後面貼上上一步查到的完整套件系列名稱。

  1. 關閉並重新開啟該應用,網路即恢復。設定立即生效,不需要重新啟動系統。

方法二:一條命令豁免全部 UWP 應用

如果市集應用安裝得多、不想逐個查套件名稱,可以依 SID 一次性豁免所有應用套件。同樣在系統管理員終端機執行:

CheckNetIsolation.exe LoopbackExempt -a -p=S-1-15-2-1

S-1-15-2-1 是 Windows 內建安全識別碼「ALL APPLICATION PACKAGES」(所有應用程式套件)的 SID。加入豁免清單後,所有 UWP 應用都可以存取回送位址,系統代理對它們整體生效,新安裝的市集應用同樣會被涵蓋。

注意隔離範圍

一鍵豁免會放寬全部市集應用的沙盒隔離,任何市集應用都能存取本機服務。對安全隔離有要求的環境,建議回到方法一,只為確實需要代理的應用逐個新增豁免。

驗證與還原

豁免清單隨時可查、可刪,常用命令如下:

  • 查看目前所有豁免項目:CheckNetIsolation.exe LoopbackExempt -s
  • 刪除單一應用的豁免:CheckNetIsolation.exe LoopbackExempt -d -n=套件系列名稱
  • 刪除依 SID 新增的豁免:CheckNetIsolation.exe LoopbackExempt -d -p=S-1-15-2-1
  • 清空全部豁免項目:CheckNetIsolation.exe LoopbackExempt -c

驗證是否生效:重新開啟之前斷網的 UWP 應用,同時觀察 Clash 客戶端的連線面板——出現該應用進程產生的連線記錄,表示流量已經進入核心。豁免設定會寫入系統設定,重新啟動後仍會保留;Windows 大版本更新後建議用 -s 複查一次清單是否完整。

豁免後仍不通的排查與 TUN 替代方案

如果完成豁免後應用依然無法連網,依以下順序檢查:

  • 確認命令是在系統管理員終端機執行的,權限不足會提示操作需要提升;
  • 確認 Clash 的混合埠或 HTTP 埠未被修改,與系統代理設定裡的埠保持一致;
  • 檢查 Windows 防火牆或第三方安全軟體是否擋掉了 Clash 核心程式的本機監聽;
  • 查看 Clash 記錄檔確認請求是否到達核心,完全沒到達表示流量仍被隔離層擋下。

另一種思路是繞過系統代理本身:開啟 TUN 模式。TUN 在網路層建立虛擬網卡接管整機流量,UWP 應用的流量經虛擬網卡直接進入 mihomo 核心,不經過 127.0.0.1 這個代理位址,回送限制自然不再生效。Clash Verge Rev、Clash Plus 等基於 mihomo 核心的客戶端均支援 TUN 模式,首次開啟需要安裝服務模式或以系統管理員身分執行。長期大量使用市集應用的使用者,直接用 TUN 模式比維護豁免清單更省事。

兩種方式可以依情境組合:平時以瀏覽器和桌面軟體為主、偶爾用一兩個市集應用,用方法一精確豁免即可,系統隔離策略幾乎不受影響;工作流程重度依賴市集應用,或經常遇到新的 UWP 應用斷網,直接開 TUN 模式一勞永逸。需要留意的是,TUN 模式與部分 VPN 類軟體、虛擬機網卡可能爭搶路由,同時開啟時如遇異常,先關掉其中一方再逐項排查。

TUN 模式的額外收益

TUN 接管的是全部流量,包括不讀系統代理設定的命令列工具與遊戲客戶端,設定一次即可涵蓋 UWP 之外的所有情境。

DOWNLINK READY

下載 Clash 客戶端

涵蓋 Windows、macOS、Linux、Android 與 iOS 的 Clash 客戶端下載入口,含 mihomo 核心與圖形介面版本。

下載 Clash