常見情況:瀏覽器正常,只有特定應用無法連線
Windows 已啟用系統代理,瀏覽器可以透過客戶端連上目標網站,但某個 UWP 應用持續顯示網路錯誤,客戶端的連線清單也看不到對應請求。這可能與 AppContainer 網路隔離有關。應用嘗試連線本機代理,例如 127.0.0.1:7890,卻在抵達 mihomo 核心之前就受到系統限制。
回環豁免解決的是「受隔離的應用能否連線本機服務」,與節點品質、訂閱失效或代理規則無關。確認問題出在這一層後,新增豁免才有幫助。透過 Microsoft Store 下載,也不代表應用一定是 UWP:商店中的傳統桌面程式或封裝的 Win32 程式,不一定會受到相同限制。
- 優先檢查回環限制:本機代理運作正常,其他程式也能連線,只有受 AppContainer 隔離的應用無法連線。
- 優先檢查客戶端:所有程式都無法連線、代理連接埠未在監聽,或記錄中出現節點連線錯誤。
- 優先檢查規則與伺服器:應用請求已出現在連線清單,但套用錯誤的策略,或目標服務回傳業務錯誤。
回環位址與 AppContainer 網路隔離
127.0.0.1 是 IPv4 回環位址,::1 是 IPv6 回環位址。連線至這些位址時,流量仍留在目前電腦中。客戶端會將 HTTP 或混合代理連接埠繫結至回環位址,應用再將請求送至該連接埠,由 mihomo 核心比對規則並建立對外連線。
UWP 應用通常在 AppContainer 隔離環境中執行。Windows 限制這類應用存取本機回環服務;即使系統代理指向本機,應用仍可能無法建立這段連線。CheckNetIsolation.exe 提供回環豁免機制,可為指定的應用程式容器解除相關限制。
豁免本身不會替應用設定代理,也不會新增應用程式資訊清單中的網路功能。如果應用忽略系統代理、使用獨立的網路元件,或受到企業政策限制,仍須另外處理對應問題。
操作前確認:代理連接埠與系統設定
確認目前的監聽連接埠
先在客戶端確認目前使用的設定與連接埠。以下以 7890 示範混合連接埠,不代表所有客戶端都預設使用此值。若實際連接埠是 7897,後續指令與系統設定都應使用 7897。
mixed-port: 7890
allow-lan: false
bind-address: 127.0.0.1
mode: rule
這段內容僅示範參數,並非完整設定,請勿用來覆寫現有訂閱。為本機 UWP 應用新增回環豁免,不必將監聽位址改為 0.0.0.0,也不必啟用「允許區域網路連線」。遠端訂閱更新可能會覆蓋直接寫入的參數,建議優先使用客戶端提供的持續性設定或覆寫功能。
確認 Windows 指向相同連接埠
- 在 Windows 11 中,依序開啟「設定」→「網路和網際網路」→「Proxy」→「手動設定 Proxy」→「使用 Proxy 伺服器」旁的「設定」。Windows 10 的路徑為「設定」→「網路和網際網路」→「Proxy」。
- 確認位址與連接埠符合目前客戶端的設定。如果系統代理由客戶端自動管理,請優先使用客戶端開關來調整,避免兩邊的設定互相覆蓋。
- 在 PowerShell 中執行以下指令,檢查連接埠是否正在監聽。若沒有輸出,請先啟動核心或修正連接埠,再處理應用豁免。
Get-NetTCPConnection -State Listen -LocalPort 7890 |
Select-Object LocalAddress, LocalPort, OwningProcess
curl.exe --proxy http://127.0.0.1:7890 --head --max-time 15 https://example.com/
明確指定代理的 curl.exe 適合用來確認連接埠能否完成請求。收到 HTTP 回應表示這段測試連線已建立;若逾時,請接著檢查節點與記錄。此指令是在一般桌面程序中執行,測試成功不代表 UWP 回環限制已解除,也不能只憑回應判斷實際出口是否符合預期。
方法一:使用客戶端內建的回環豁免工具
部分 Windows 客戶端提供回環豁免工具,選單名稱可能是「UWP 回環」、「Loopback」或「回環豁免」。功能入口會因客戶端及版本而異,不能將舊版的選單路徑套用到所有 mihomo 客戶端。
如果使用舊版 Clash for Windows,可前往「General」→「UWP Loopback」→「Launch Helper」開啟相應工具。該客戶端已停止維護,這裡僅供辨識既有環境,不建議為了使用此功能而安裝舊版客戶端。若目前的客戶端沒有同名選項,請直接使用下一節的 Windows 指令。
- 開啟工具,視需要確認系統提示的管理員權限。請核對發行者與程式來源,勿執行來源不明的「修復工具」。
- 在應用程式清單中找到發生問題的應用,並核對套件資訊,不要只憑相似的顯示名稱選取。
- 只勾選目標應用,再按工具提供的儲存或套用按鈕。只勾選而未儲存,通常不會將項目寫入豁免清單。
- 完全關閉目標應用後再重新開啟。若關閉視窗後應用仍在背景執行,可在工作管理員中結束對應工作後再測試。
圖形化工具通常只是包裝系統豁免機制。操作後仍可使用 CheckNetIsolation.exe LoopbackExempt -s 獨立確認結果。若工具中找不到應用,請先確認該應用是否安裝在目前帳戶,以及是否屬於適用的應用類型。
方法二:使用 CheckNetIsolation 為指定應用新增豁免
以管理員身分開啟終端機
在開始功能表搜尋「終端機」或「Windows PowerShell」,選擇「以管理員身分執行」。以下範例使用 PowerShell 語法。如果管理員驗證使用了另一個帳戶,請留意應用套件查詢的使用者範圍,避免將「目前使用者未安裝」誤認為程式不存在。
查詢 PackageFamilyName
回環豁免的 -n 參數需使用套件系列名稱 PackageFamilyName,不是桌面捷徑名稱,也不是包含版本與架構資訊的 PackageFullName。先列出目前使用者已安裝的套件:
Get-AppxPackage |
Sort-Object Name |
Select-Object Name, PackageFamilyName
以下以 Microsoft Store 套件示範篩選方式。排查其他應用時,請從上方清單找出對應套件,再替換查詢條件;不要替無關的應用新增權限。
Get-AppxPackage -Name Microsoft.WindowsStore |
Select-Object Name, PackageFamilyName
常見結果中的套件系列名稱是 Microsoft.WindowsStore_8wekyb3d8bbwe,仍請以本機輸出為準。若查詢結果為空,請先確認使用者範圍與套件名稱;不要依照其他裝置的套件完整名稱猜測。
新增豁免並確認清單
CheckNetIsolation.exe LoopbackExempt -a -n="Microsoft.WindowsStore_8wekyb3d8bbwe"
CheckNetIsolation.exe LoopbackExempt -s
-a 代表新增,-s 代表列出現有豁免。清單可能同時顯示應用程式容器名稱與 SID,請確認其中包含目標套件。若出現存取遭拒,請確認終端機已使用提升權限開啟;若找不到應用程式容器,請重新檢查套件系列名稱與安裝狀態。
若已透過查詢準確選取目標套件,也可以在 PowerShell 中使用變數傳遞,減少手動複製錯誤:
$app = Get-AppxPackage -Name Microsoft.WindowsStore
if ($null -ne $app) {
CheckNetIsolation.exe LoopbackExempt -a "-n=$($app.PackageFamilyName)"
} else {
Write-Output "目前使用者找不到指定的應用程式套件。"
}
確認結果:分辨連線、規則與出口
驗證時請保持條件一致:使用相同網路、相同設定及相同目標操作。開啟客戶端的連線頁面,再於應用中重新整理實際發生問題的頁面或執行登入。不要只以應用首頁是否顯示快取內容判定成功。
| 觀察結果 | 可能的問題層級 | 下一步 |
|---|---|---|
| 豁免清單中沒有目標套件 | 權限或套件名稱 | 以管理員身分開啟終端機,重新查詢並新增 |
| 清單中已有目標套件,但仍沒有連線記錄 | 應用未使用該代理,或尚未送出請求 | 重新啟動應用,確認系統代理與應用程式網路設定 |
| 出現連線,但策略為 DIRECT | 規則分流 | 查看命中的規則,確認是否應使用代理策略 |
| 連線套用代理策略後逾時 | 節點、DNS 或目標網路 | 查看核心記錄與所選節點狀態 |
| 網路請求成功,但帳戶操作仍失敗 | 應用服務或帳戶地區 | 檢查服務狀態、帳戶與錯誤碼 |
如果客戶端能顯示程序名稱,可用來協助辨識目標應用;若無法顯示,請搭配請求時間與網域判斷。若記錄中出現 DNS、TLS 或驗證錯誤,請沿著對應連線流程排查,不要重複新增相同豁免。暫時切換至全域模式只能用來判斷規則是否造成影響,測試後請恢復原本模式。
TUN 模式與回環豁免的適用範圍
系統代理會將代理位址提供給願意使用它的應用;TUN 模式則透過虛擬網路介面與路由接管符合條件的流量,兩者的連線方式不同。如果應用不讀取系統代理,回環豁免不會讓它自動開始使用代理,此時可評估客戶端的 TUN 模式。
不過,啟用 TUN 不代表一定能解除 AppContainer 的所有網路限制。如果應用仍直接連線至受限制的回環連接埠,仍須另外處理相關限制。TUN 能否成功接管流量,也會受到權限、路由、DNS、介面排除規則及其他 VPN 軟體影響。
- 請先分別確認系統代理與回環豁免運作正常,再測試 TUN,避免同時變更多項設定。
- 啟用 TUN 後,請確認實際連線是否進入核心,不要只看開關狀態。
- 企業裝置若有安全軟體或網路政策,請依管理員指示處理,不要自行停用防護元件。
撤銷豁免與後續維護
若不再需要透過本機代理連線,或已確認故障與回環無關,可以移除剛新增的豁免。以下沿用同一個範例套件,只撤銷這一項,不影響其他應用原有的設定:
CheckNetIsolation.exe LoopbackExempt -d -n="Microsoft.WindowsStore_8wekyb3d8bbwe"
CheckNetIsolation.exe LoopbackExempt -s
-d 代表刪除指定項目。執行後重新查看清單,確認目標項目已移除。排查前建議先儲存原始清單,以便分辨這次新增的項目與裝置原有設定。
若正常更新後的套件系列名稱未變,通常不必重新新增豁免;若解除安裝後重新安裝、更換發行管道或套件身分有所變更,則應重新查詢。建議依序處理:確認連接埠可用、確認應用類型、為目標套件新增豁免、重新啟動應用、查看連線與規則。只有在連線正常而應用服務仍失敗時,才繼續檢查節點、DNS 與帳戶服務。