先判断是否属于本地回环限制
浏览器可以通过 Clash 打开网页,但某个 Windows 应用商店应用无法登录、加载列表或获取内容,这种差异可能来自 AppContainer 网络隔离。典型链路是:应用读取系统代理,尝试连接本机的 127.0.0.1:7890,却在到达 Clash 监听端口之前被限制。此时更换节点、调整分流规则,通常不会改变这一步的结果。
UWP 应用通常运行在 AppContainer 中,默认不能随意访问本地回环服务。回环豁免的作用,是允许指定应用容器访问本机服务;它不是代理配置,也不会自动指定节点或修改 DNS。应用仍需采用能够经过 Clash 的网络路径。
执行前确认三个条件
- Clash 内核已运行,且普通浏览器通过同一代理可以访问目标服务。
- 正在使用系统代理或应用自身的本地代理设置,而不只是开启了客户端窗口。
- 问题集中在特定应用;如果所有应用都无法联网,应先检查订阅、节点、端口和网络连接。
本文命令适用于 Windows 10、Windows 11 的 PowerShell 环境。示例端口统一为 7890,实际操作必须以当前生效配置为准。不要因为教程使用这个数值,就覆盖客户端已经正常工作的监听端口。
确认系统代理与 Clash 监听端口
在 Windows 11 打开「设置」→「网络和 Internet」→「代理」;Windows 10 的路径为「设置」→「网络和 Internet」→「代理」。检查手动代理或设置脚本是否与客户端当前状态一致。若使用本机手动代理,常见地址是 127.0.0.1,端口应对应 Clash 的 HTTP 或混合端口。
# 配置片段:只说明监听字段,不是完整配置
mixed-port: 7890
allow-lan: false
mode: rule
mixed-port 同时接受 HTTP 和 SOCKS 代理连接。Windows 手动代理使用的是 HTTP 代理入口,不能随意填入一个仅接受 SOCKS 的端口。若配置分别使用 port 和 socks-port,应选择前者。
在 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://www.microsoft.com/
- 没有监听记录:先检查内核是否启动、配置是否加载成功,以及端口是否写错。
- 监听正常但请求超时:结合 Clash 日志检查节点、规则和目标服务,不要直接进入豁免操作。
- 请求收到 HTTP 响应:说明这次桌面进程的代理请求能够完成;即使返回重定向或访问拒绝,也应继续区分网络连通与业务权限。
这条 curl.exe 命令不是 UWP 测试,它只验证本地代理链路。netsh winhttp show proxy 查看的是 WinHTTP 代理配置,也不能代替检查用户系统代理。不要为了修复一个 UWP 应用,就直接重置整台机器的 WinHTTP 设置。
方式一:使用客户端的回环豁免工具
部分 Windows Clash 图形客户端提供外部回环管理工具入口,名称可能包含「UWP 回环豁免」「Loopback」或「UWP Loopback」。入口位置和是否集成取决于客户端及版本,不能假设所有 mihomo 客户端都有同一个菜单。找不到入口时,直接使用下一节的系统命令即可,不需要安装另一个代理客户端。
- 先保存当前配置,并记下发生问题的应用名称。
- 在客户端设置中找到回环管理入口,启动工具;出现用户账户控制提示时,确认程序来源后授权。
- 在应用列表中找到目标应用,勾选对应项。优先只授权确实需要访问本地代理的应用。
- 点击工具中的保存或应用更改操作。只勾选但未保存,通常不会写入系统豁免列表。
- 完全退出目标应用后重新打开,再执行相同的登录或加载操作。
如果应用列表缺少目标项,先确认它已安装在当前 Windows 用户下。某些应用由多个包或独立组件组成,界面显示名称不一定等于实际发起请求的包名。此时应通过 PowerShell 查询包标识,而不是勾选名称相近的所有项目。
方式二:用 CheckNetIsolation 添加豁免
1. 查询 PackageFamilyName
在当前登录用户的 PowerShell 中执行以下命令。这里以 Microsoft Store 的包为示例,示例仅用于说明标识查询方法,不代表它的每一种下载或登录故障都能用回环豁免解决。
Get-AppxPackage -Name Microsoft.WindowsStore |
Select-Object Name, PackageFamilyName
常见的包系列名称为 Microsoft.WindowsStore_8wekyb3d8bbwe,但仍应以本机输出为准。其他应用可以先列出当前用户的包,再按显示的 Name 缩小范围:
Get-AppxPackage |
Sort-Object Name |
Select-Object Name, PackageFamilyName
PackageFamilyName 与 PackageFullName 不同。后者通常带有版本、架构等信息,不要把它直接传给下面的 -n 参数。也不要照抄应用安装目录路径。查询没有输出时,应先核对包名、安装用户和应用类型。
2. 在管理员终端添加并核对
右键开始按钮,选择「终端(管理员)」或「Windows PowerShell(管理员)」。尽量在目标应用所属的同一账户下提权操作;如果通过输入另一位管理员的凭据启动终端,要留意查询到的应用包是否属于正确用户。
CheckNetIsolation.exe LoopbackExempt -s
CheckNetIsolation.exe LoopbackExempt -a -n="Microsoft.WindowsStore_8wekyb3d8bbwe"
CheckNetIsolation.exe LoopbackExempt -s
-s 列出现有豁免,-a 添加指定应用。第一次查询用于保留变更前状态,第二次查询用于确认结果。输出可能同时显示应用名称与 SID;应核对目标条目,而不是只看命令窗口没有报错。
添加后,完全关闭目标应用并重启它。必要时在任务管理器中确认其进程已退出。通常不必重启整个 Windows;如果应用采用常驻后台进程,仅关闭窗口可能不足以建立新的连接。
3. 删除单个豁免
CheckNetIsolation.exe LoopbackExempt -d -n="Microsoft.WindowsStore_8wekyb3d8bbwe"
CheckNetIsolation.exe LoopbackExempt -s
-d 用于撤销指定应用的授权。排查时不要顺手清空全部豁免,因为其他开发工具或本机服务可能正在依赖已有条目。若出现拒绝访问,先检查终端是否已提权;受组织策略管理的设备,应联系管理员确认权限范围。
豁免后仍不生效:按连接阶段排查
豁免列表出现目标应用,只证明授权已写入,不证明请求已经经过代理。建议在 Clash 中打开连接记录或日志,再重试一次目标操作;每次只改变一个条件,避免同时更换节点、打开 TUN、修改 DNS 后失去判断依据。
| 观察结果 | 优先检查 | 下一步操作 |
|---|---|---|
| Clash 没有对应连接 | 应用是否使用系统代理、包标识是否正确 | 重启应用,核对系统代理和实际联网组件 |
| 连接记录命中 DIRECT | 规则顺序及当前运行模式 | 检查命中的具体规则,不要继续重复添加豁免 |
| 已进入代理但连接超时 | 节点可用性、出口及目标服务 | 使用同一目标进行对照,查看拨号错误 |
| 域名解析失败 | 应用、系统及内核的实际解析路径 | 确认 DNS 请求由谁处理,再调整对应配置 |
| 仅登录或下载环节失败 | 独立后台服务、账户及业务限制 | 分别观察登录、列表与下载请求 |
应用不采用系统代理
回环豁免不会强迫应用读取 Windows 代理设置。如果应用使用独立网络栈、直接连接远端,或请求由系统服务代发,那么给前台应用添加豁免未必影响实际链路。商店页面能打开但下载失败,也可能是下载阶段切换到了另一套服务路径。
规则已匹配,但出口不符合要求
当连接已经出现在 Clash 中,应检查 mode: rule 下命中的规则与策略组最终选择。服务端可能根据出口地区、账户状态或访问频率返回错误;这类响应不能靠新增回环权限解决。也不要只根据节点延迟测试成功,就认定目标业务一定可用。
防火墙、组织策略与网络能力
本地防火墙、终端安全策略或应用自身声明的网络能力,仍可能限制连接。回环豁免不是对所有网络限制的总开关。保留具体错误码、出错时间和对应日志,按单个进程核对策略,不建议通过关闭整套防火墙来做长期修复。
何时改用 TUN,何时保留系统代理
如果应用明确不遵守系统代理,而又需要由 Clash 接管其 IP 流量,可以评估 mihomo 的 TUN 模式。TUN 通过虚拟网络接口与路由处理流量,不依赖每个应用主动连接 HTTP 代理端口,但其覆盖范围仍受路由、排除规则、DNS 配置及系统权限影响。
- 只有少量 AppContainer 应用需要访问本地代理:先使用系统代理加按需回环豁免,便于控制影响范围。
- 应用直接联网、不采用代理设置:在基础配置已验证后,单独测试 TUN,并观察实际连接记录。
- 开启 TUN 后仍保留系统代理:应用可能继续主动访问本地代理,因此回环限制仍可能存在,不能认为 TUN 开关必然替代豁免。
- 设备正在使用企业 VPN 或其他虚拟网卡:先检查路由与 DNS 冲突,不要同时启用多套流量接管机制来碰运气。
allow-lan: true 不是回环豁免的替代项。该字段涉及允许其他设备访问代理监听,与授权本机 AppContainer 访问回环不是同一件事。仅为修复 UWP 而扩大监听范围,会引入额外的访问控制工作。
完成后的验证与维护
- 保留添加前后的
LoopbackExempt -s输出,确认只增加了预期应用。 - 重新打开目标应用,分别测试登录、内容加载和下载,不只检查启动页。
- 在 Clash 连接记录中核对目标域名、命中规则和实际策略,确认流量路径符合预期。
- 撤销为排查而做的临时全局模式、临时 DNS 或其他无关改动,再重复测试。
应用常规更新通常不会改变包系列名称,因此不应把每次升级都当作重新授权的理由。如果应用被卸载重装、改用另一个发行渠道、切换 Windows 账户或重建系统,则需要重新查询包标识和豁免列表。
排查结论应落在明确的一环:本机端口是否监听、应用能否访问回环、请求是否进入内核、规则把请求交给谁、目标服务返回什么。按这个顺序处理,可以把 AppContainer 权限问题与订阅、节点、DNS 和业务服务问题分开。