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最新版下载