一、典型现象:为什么「开了代理」商店仍不行?

很多用户描述的情况高度相似:本机已安装 Clash 系客户端(如 Clash Verge Rev),在设置里打开了系统代理,Chrome、Edge 访问外站正常,但打开 Microsoft Store 时提示无法连接、错误代码五花八门,或 Xbox Game Pass、部分预装 UWP 游戏启动器长时间「正在下载」却毫无进度。也有人发现:把代理改成「全局」或换节点后,桌面 Steam 能下,商店依旧不动。

这类问题未必是节点质量差或规则写错。Windows 对从 Microsoft Store 安装的沙箱应用使用独立网络栈,并默认禁止它们访问本机回环地址上的服务——而绝大多数 Clash 客户端默认把 HTTP/SOCKS 监听在 127.0.0.1:端口。于是系统代理虽然告诉系统「把 HTTP 流量交给 127.0.0.1:7890」,UWP 却因回环隔离无法真正连上这个地址,表现为「代理对浏览器生效、对商店不生效」。这与你在《Clash 局域网代理》里为手机开 allow-lan 是不同维度:后者解决的是「别的设备连本机」,这里要解决的是「本机 UWP 连本机代理」。

二、原理:UWP、系统代理与回环隔离

简言之:系统代理是告诉「谁愿意遵守」的应用把流量交给指定主机与端口;而 UWP 在容器内运行时,除微软允许的路径外,默认不能向 127.0.0.1 发起连接,以免恶意应用扫描本机服务。因此,仅勾选「使用系统代理」对 Win32 程序通常足够,对商店应用却可能仍被拦在回环之外。

解决思路有两类。其一,让流量不依赖回环:例如使用TUN虚拟网卡在更底层接管,使应用无需直连 127.0.0.1 上的代理端口(具体取决于客户端实现与策略,详见下文「与 TUN 的关系」)。其二,在保持端口代理的前提下,对特定应用的包族名称(Package Family Name,简称 PFN)授予回环豁免,允许它访问本机环回接口——这正是 CheckNetIsolation 工具的职责,也是本文步骤的核心。

三、操作前准备:确认 Clash 监听与系统代理一致

在折腾 CheckNetIsolation 之前,请先确认 Clash 的本地代理端口与 Windows「设置 → 网络和 Internet → 代理」中的地址一致。常见为 127.0.0.1 加混合端口(如 7890),与客户端界面或 config.yaml 中的 mixed-port / port 对应。若此处填错,即便做了回环豁免,流量也会打到错误端口。

建议用系统自带的 Edge(桌面版)访问一个仅海外可打开的检测页,确认系统代理链路正常;再打开「代理」设置页,核对「使用代理服务器」开关为开,且地址与端口与 Clash 一致。若你使用仅托盘图标、无图形界面的内核,同样以实际监听的 YAML 为准。更多端口与报错排查可对照《Clash 常见报错解决方案》

四、如何查到要豁免的应用 PFN?

CheckNetIsolationLoopbackExempt 子命令需要「包族名称」字符串,不能凭应用显示名称猜测。常用做法有两种。

方法一:在开始菜单找到目标应用图标,右键 →「更多」→「应用设置」(或进入「已安装的应用」),在应用详情页底部或「高级选项」附近,部分版本会列出与包相关的技术信息;更稳妥的是在管理员 PowerShell 中执行 Get-AppxPackage,用应用关键字过滤,从输出中读取 PackageFamilyName 字段。例如与商店相关的包常包含 Microsoft.WindowsStore 等片段,具体以你系统输出为准。

方法二:若你明确知道应用的完整包名,可用 Get-AppxPackage -Name '完整包名' 查询。对 Xbox、Xbox Game Bar 等,各自对应不同 PFN,需要分别添加豁免。建议只为你确实需要走代理的应用添加,减少不必要的暴露面。

五、使用 CheckNetIsolation 添加回环豁免(核心步骤)

以下命令需在以管理员身份运行的「命令提示符」或 PowerShell 中执行(右键开始菜单 →「终端(管理员)」或「Windows PowerShell(管理员)」)。将示例中的 <PFN> 替换为上一步查到的包族名称整串,注意不要多余空格或引号错误。

CheckNetIsolation LoopbackExempt -a -n=<PFN>

-a 表示添加(add),-n= 后接 PFN。执行成功后,该 UWP 包即被加入回环豁免列表,允许其连接本机回环地址,从而能与监听在 127.0.0.1 上的 Clash Windows 入站端口通信。

若需为多个应用逐一添加,对每个 PFN 重复执行上述命令即可。完成后完全退出并重新打开 Microsoft Store 或相关 UWP(必要时结束进程或重启一次资源管理器),再尝试下载或登录。

查看当前豁免列表可使用(管理员):

CheckNetIsolation LoopbackExempt -s

若误加或需撤销,可在管理员命令行执行 CheckNetIsolation LoopbackExempt -d -n=<PFN>-d 表示 delete),具体以 CheckNetIsolation /? 或当前 Windows 版本文档为准。

六、Microsoft Store 与 Xbox 常见包的处理提示

实际环境中,商店「本体」、Xbox 应用、以及通过商店安装的各游戏/工具,可能对应不同 PFN。仅添加 Store 主程序仍不足以覆盖所有场景时,请根据下载卡住时前台运行的具体应用,用 Get-AppxPackage 查到对应包族后再做 CheckNetIsolation。以 Microsoft Store 为例,在多数系统上包族名称为 Microsoft.WindowsStore_8wekyb3d8bbwe(若与你机子上 Get-AppxPackage *WindowsStore* 所列 PackageFamilyName 不一致,务必以实际输出为准)。Xbox 相关应用各自有独立 PFN,需分别豁免。部分系统组件还会依赖后台更新通道,若仍有个别错误代码,可结合事件查看器与商店内置反馈,判断是否为证书、时间同步或磁盘权限等非代理因素。

若你同时使用了公司组策略或第三方「网络加固」软件,它们可能改写代理或拦截本地回环,需要在那些工具中同步放行 127.0.0.1 与 Clash 进程,否则单靠回环豁免仍可能失败。

七、与 TUN 模式、局域网代理的关系

开启客户端的 TUN 模式(若你的发行版提供且已正确安装驱动)时,流量可能经虚拟网卡绕行,部分场景下会减轻「UWP 必须连 127.0.0.1」的依赖,但并非所有组合在每一版 Windows 上都表现一致;且 TUN 涉及驱动与路由,排错维度与纯端口代理不同。若你希望系统级透明、少碰 UWP 特例,可在阅读《Clash TUN 模式开启方法》后评估是否采用 TUN 作为主路径,再决定是否仍保留端口代理 + 回环豁免。

局域网代理allow-lan)解决的是其他设备连你电脑;UWP 回环解决的是本机应用连本机——二者不要混用同一套配置。若误以为「开了局域网就能让商店连上代理」,往往徒劳无功。

八、安全与维护上的注意点

回环豁免本质是放宽了「该应用访问本机环回」的限制,宜只添加可信来源的商店应用,并定期用 CheckNetIsolation LoopbackExempt -s 审视列表。系统大版本更新后,若商店再次异常,可复查 PFN 是否变化、豁免是否仍在。切勿从不明教程复制所谓「万能 PFN」,以免匹配错误包或带来不必要的攻击面。

九、验证与排错顺序建议

建议按顺序排查:先确认系统代理地址端口与 Clash 一致 → 再对目标 UWP 执行 CheckNetIsolation 添加 UWP 回环 → 重启应用测试 → 仍失败时再查防火墙、第三方安全软件、时间同步与磁盘空间。可在 Clash 连接列表中观察是否有来自系统进程、商店相关进程的连接;若始终无连接,多半仍是回环或代理未生效,而非单纯节点延迟。

十、小结

Microsoft Store 代理问题在已跑通 Clash Windows 的用户中十分常见,根因常常是 UWP 无法访问本机 本地代理端口,而非订阅失效。通过 CheckNetIsolation 为正确 PFN 配置回环豁免,与系统代理配合,即可在多数环境下让商店与相关应用恢复正常下载与更新。相比零散搜索错误代码,理解「回环隔离 + 豁免」这一层逻辑后,排错路径会更稳定。若你希望用图形客户端统一管理规则与模式,可从本站获取安装包:→ 立即免费下载 Clash,开启流畅上网新体验