先判断是不是 UWP 回环限制
浏览器能通过 Clash 正常访问网络,但 Microsoft Store、Xbox、部分邮件或流媒体应用一直报连接失败,常见原因不是节点失效,而是 Windows 的 AppContainer 网络隔离。UWP 应用通常运行在 AppContainer 沙箱中,默认不能随意连接本机回环地址,也就是 127.0.0.1 或 localhost。
Clash、Clash Meta(现名 mihomo)及其图形客户端一般在本机监听代理端口。例如混合端口 mixed-port: 7890 对应 127.0.0.1:7890。系统代理开启后,普通桌面程序可以连接这个地址;受限制的商店应用却可能无法连接,于是出现“网页正常,商店应用离线”的差异。
符合回环问题的典型表现
- Edge、Firefox 或普通桌面软件可以通过代理访问外部站点。
- Microsoft Store 长时间停在加载状态,或显示无法连接网络。
- Xbox、反馈中心、旧版邮件等打包应用连接失败。
- 关闭 Clash 的系统代理后,应用可以直连;重新开启后又失败。
- Clash 日志中看不到该应用发出的连接记录。
先核对本地代理端口
打开客户端的「设置」→「端口设置」或「设置」→「Mihomo 配置」,确认当前使用的是 HTTP、SOCKS 还是混合端口。常见值是 7890,但实际端口也可能是 7897、7899 或用户自定义值。Windows 系统代理中的地址必须与客户端监听值一致。
mixed-port: 7890
allow-lan: false
mode: rule
log-level: info
mixed-port 表示同一个端口同时接收 HTTP 与 SOCKS 连接。这里的 allow-lan 控制局域网设备是否可以访问代理,与本机 UWP 回环权限不是同一个开关。把它改成 true 不能替代回环豁免。
办法一:使用客户端内置的 UWP 回环工具
图形客户端内置工具是更适合普通用户的处理方式。它通常会列出已安装的 AppContainer 应用,勾选后调用 Windows 的系统接口写入回环豁免。不同客户端的菜单名称略有差异,但核心操作相同。
常见菜单路径
- Clash Verge Rev 2.x:进入「设置」→「系统设置」,查找「UWP 回环」或「Loopback」入口。
- 保留经典界面的客户端:进入「常规」或「General」,点击「UWP Loopback」旁的启动按钮。
- 部分 mihomo 客户端:进入「设置」→「网络」,查找「解除 UWP 回环限制」。
如果当前客户端没有该入口,不代表 mihomo 内核缺少代理能力。回环豁免属于 Windows 权限配置,通常由图形界面或系统命令处理,并不是代理内核配置文件中的字段。
具体操作步骤
- 先保持 Clash 客户端运行,并确认系统代理已开启。
- 进入客户端的 UWP 回环工具,等待应用列表加载完成。
- 找到需要使用代理的应用,例如 Microsoft Store 或 Xbox。
- 勾选目标应用,不必一次选中全部条目。
- 点击「保存」「应用」或「解除限制」。系统弹出权限确认时允许执行。
- 完全关闭目标应用,再重新打开。仅最小化窗口通常不会重建网络进程。
勾选哪些应用更合适
按需授权比全选更容易排查。先勾选当前出问题的应用,保存后立即验证。若 Microsoft Store 恢复,而另一个应用仍失败,再为第二个包增加豁免。这样可以明确哪项修改产生了效果,也便于以后撤销。
| 目标 | 建议操作 | 验证重点 |
|---|---|---|
| Microsoft Store | 勾选对应商店包 | 首页内容与应用详情能否加载 |
| Xbox | 分别检查主程序与身份组件 | 登录、商店与下载队列 |
| 反馈中心 | 仅勾选反馈中心包 | 账户状态与内容列表 |
| 第三方商店应用 | 按显示名称与包族名称定位 | 重新启动后观察 Clash 日志 |
办法二:用 CheckNetIsolation 精确添加豁免
CheckNetIsolation 是 Windows 自带的命令行工具,可查看、添加和删除 AppContainer 回环豁免。它适合客户端没有内置入口、图形列表加载失败,或需要明确记录修改内容的情况。
命令中的关键参数是 Package Family Name,中文常称“包族名称”,缩写为 PFN。它不是开始菜单里看到的应用标题,也不是安装目录名称。输入错误的包族名称时,命令可能无法作用于目标应用。
第一步:查询应用的包族名称
右键开始菜单,打开「终端(管理员)」或「Windows PowerShell(管理员)」。查询 Microsoft Store 可以运行:
Get-AppxPackage -Name Microsoft.WindowsStore |
Select-Object Name, PackageFamilyName
常见输出结构如下,实际后缀由发布者标识决定:
Name PackageFamilyName
---- -----------------
Microsoft.WindowsStore Microsoft.WindowsStore_8wekyb3d8bbwe
如果不知道内部名称,可按标题关键字筛选全部包:
Get-AppxPackage |
Where-Object {
$_.Name -like "*Store*" -or
$_.PackageFamilyName -like "*Store*"
} |
Select-Object Name, PackageFamilyName
第二步:添加回环豁免
确认包族名称后,在管理员终端执行:
CheckNetIsolation.exe LoopbackExempt -a -n=Microsoft.WindowsStore_8wekyb3d8bbwe
参数 LoopbackExempt 表示管理回环豁免,-a 表示添加,-n 后面填写包族名称。执行完成后关闭 Microsoft Store,并在任务管理器中确认相关进程已经结束,再重新启动。
第三步:查看当前豁免列表
CheckNetIsolation.exe LoopbackExempt -s
列表中出现目标包的名称或安全标识,说明豁免已经写入。若命令返回成功,但应用仍无法连接,需要继续检查系统代理端口、Clash 日志和规则命中结果。
需要撤销时删除豁免
CheckNetIsolation.exe LoopbackExempt -d -n=Microsoft.WindowsStore_8wekyb3d8bbwe
-d 表示删除。撤销后重新启动应用即可。系统更新或应用重新安装后,包注册信息可能变化;如果问题再次出现,应重新查询 PackageFamilyName,而不是直接复用旧命令。
验证应用流量是否真的进入 Clash
应用恢复加载不一定代表流量已经按预期走代理。部分请求可能直连,缓存内容也可能让页面看起来正常。更可靠的办法是结合 Clash 连接日志、规则命中和出口地址进行验证。
观察实时连接
- 把 Clash 模式保持为「规则」模式。
- 打开客户端的「连接」或「Connections」页面。
- 清空筛选条件,记录当前连接数量。
- 完全关闭目标 UWP 应用,再重新打开并刷新内容。
- 观察是否出现新的域名、目标 IP、进程或策略组记录。
例如打开 Microsoft Store 后,连接页应出现微软服务相关请求,并显示命中的规则和最终策略。不同系统版本、区域和账户状态使用的域名会变化,因此不应只依赖某一个固定域名判断。
临时使用全局模式交叉验证
如果规则模式下仍然失败,可以短暂切换到「全局」模式并选择一个可用节点。若应用在全局模式下恢复,说明回环连接已经建立,后续问题更可能位于规则匹配、DNS 或节点可达性。完成测试后应切回「规则」模式,避免所有流量长期使用同一策略。
对比三个结果
| 测试结果 | 更可能的原因 | 下一步 |
|---|---|---|
| 日志里完全没有新连接 | 回环豁免未生效或应用未重启 | 重新查询豁免列表并结束应用进程 |
| 有连接,但全部命中 DIRECT | 规则将目标流量设为直连 | 检查规则顺序与策略组选择 |
| 有代理连接,但显示超时 | 节点不可用或目标服务拒绝连接 | 切换节点并测试同一目标 |
| 全局模式正常,规则模式失败 | 规则或 DNS 配置问题 | 定位命中规则并检查域名解析 |
仍然不能联网时检查这五项
1. 系统代理端口与 mixed-port 不一致
假设 mihomo 监听 127.0.0.1:7890,Windows 系统代理却仍指向旧端口 7897,应用即使获得回环权限也无法建立连接。进入 Windows 11 的「设置」→「网络和 Internet」→「代理」,检查手动代理是否由客户端正确接管。
通常不建议同时手工填写 Windows 代理并开启客户端的系统代理开关。两处配置容易在重启或切换端口后不同步。优先让当前客户端统一管理,修改端口后关闭再开启一次系统代理。
2. 客户端没有成功启动内核
查看客户端主页或日志,确认 mihomo 内核处于运行状态。若日志出现端口占用,应先关闭占用进程,或把 mixed-port 从 7890 改为其他空闲端口,并同步刷新系统代理。
netstat -ano | findstr :7890
命令最后一列是进程 PID。可在任务管理器的「详细信息」页按 PID 定位进程。不要直接结束不认识的系统进程,先确认它是否属于另一个代理客户端或上一次未退出的内核实例。
3. 规则把微软服务分到不可用策略
回环豁免只解决“应用能否连接本机代理”,不会替应用选择节点。进入「连接」页面查看请求命中了哪个策略组。如果策略组处于不可用节点、拒绝策略或错误的直连路径,仍会表现为加载失败。
测试时可以为对应策略组手动选择一个延迟稳定的节点。延迟测试成功只说明测试地址可达,不等于所有微软服务都能访问,因此还要结合实际连接状态判断。
4. DNS 解析结果异常
若日志里持续出现 DNS 超时、域名解析失败或目标地址为空,应检查 mihomo 配置中的 dns.enable、上游 DNS 和工作模式。启用 TUN 模式时,还要确认客户端的服务模式或管理员权限已经正常安装,否则 DNS 劫持可能没有生效。
dns:
enable: true
ipv6: false
enhanced-mode: fake-ip
nameserver:
- 1.1.1.1
- 8.8.8.8
这段配置只是结构示例,不能脱离现有订阅直接覆盖。订阅可能已经设置规则、备用解析与 Fake-IP 过滤列表。修改前应保留原配置,并优先使用客户端提供的覆写功能。
5. 应用进程没有真正重启
关闭窗口后,商店应用可能仍在后台运行。打开任务管理器,在「进程」或「详细信息」页结束对应任务,等待 5 秒再启动。也可以注销 Windows 账户后重新登录,让 AppContainer 进程重新读取权限。
常见问题
为什么浏览器正常,Microsoft Store 却显示离线?
普通桌面浏览器可以连接 127.0.0.1 上的 Clash 代理,而部分 AppContainer 应用默认受到回环限制。先为 Microsoft Store 添加回环豁免,再重新启动应用。
解除回环限制后需要重启电脑吗?
多数情况下不需要。完全结束目标应用进程并重新启动即可。如果应用仍使用旧网络状态,可以注销账户或重启 Windows 后再测。
可以一次勾选全部 UWP 应用吗?
技术上部分工具允许全选,但排障时更建议只处理确实需要代理的应用。按需添加便于验证效果,也方便以后通过 CheckNetIsolation.exe LoopbackExempt -s 核对列表。
切换 Clash 客户端后要重新设置吗?
回环豁免由 Windows 保存,通常不会因为更换客户端立即消失。但新客户端的监听端口、系统代理和 TUN 设置可能不同,仍需确认 Windows 指向当前正在运行的代理端口。
CheckNetIsolation 返回成功,但应用还是无法联网怎么办?
依次检查应用是否彻底重启、系统代理端口是否一致、Clash 连接日志是否出现请求,以及请求命中的规则和策略。全局模式正常而规则模式失败时,重点检查规则与 DNS。
处理顺序总结
- 确认普通桌面程序可以通过 Clash 联网。
- 确认本地监听端口与 Windows 系统代理一致。
- 使用客户端内置工具为目标 UWP 应用添加回环豁免。
- 没有图形入口时,用 PowerShell 查询包族名称,再运行
CheckNetIsolation。 - 彻底结束并重新启动目标应用。
- 在 Clash 连接页观察请求、命中规则和最终策略。
- 仍失败时再检查节点、DNS、TUN 服务和端口占用。
这类故障的关键是把两个问题分开:回环豁免决定应用能否连接本机代理,Clash 配置决定连接进入代理后如何解析、分流与转发。先确认请求能进入日志,再处理规则和节点,排查会更直接。