Clash Verge 开启系统代理后,微软服务全部失败
一句话结论
不是微软的服务被墙了,是电脑上 UWP / 系统组件连不上 127.0.0.1 的本地代理。
解法 30 秒:Clash Verge Rev → 设置 → UWP 工具 → 全选 → 保存。
是不是遇到了这些
开启 Clash Verge 的「系统代理」之后:
- Microsoft Edge 登录账号一直转圈,或者显示已登录但数据不同步
- Edge 同步卡死,
edge://sync-internals里Transport State长期停在Initializing - VSCode 的 Settings Sync 登录失败
- Microsoft Store 打不开 / 无法下载应用
- Office 激活、OneDrive、Xbox 应用登录异常
- 关掉系统代理,以上全部恢复正常
最后一条是关键判据。只要”关代理就好、开代理就坏”,基本就是本文说的问题,不用再去折腾规则、DNS、hosts 了。
解决办法
方法一:Clash Verge 图形界面(推荐)
Clash Verge Rev → 设置 → UWP 工具 → 全选 → 保存
“UWP 工具”会列出系统上所有 UWP 应用和 AppContainer 组件,全选保存即把它们批量加入 Windows 的环回(loopback)豁免列表。
改完之后完全退出 Edge 再重新打开(或重启出问题的那个软件),不需要重启电脑。
注意:一定要”完全退出”。Edge 默认开了「启动增强」和「后台继续运行」,关窗口不会真正退出进程,可以在任务管理器里确认
msedge.exe已清零。
方法二:命令行(不用 Clash Verge 也适用)
以普通用户权限打开 PowerShell:
## 批量豁免所有 UWP 应用
Get-AppxPackage | ForEach-Object {
CheckNetIsolation.exe LoopbackExempt -a -n="$($_.PackageFamilyName)"
}
CheckNetIsolation.exe 是 Windows 自带的工具,常用参数:
CheckNetIsolation.exe LoopbackExempt -s ## 查看当前豁免列表
CheckNetIsolation.exe LoopbackExempt -a -n=<包名> ## 添加豁免
CheckNetIsolation.exe LoopbackExempt -d -n=<包名> ## 删除豁免
CheckNetIsolation.exe LoopbackExempt -c ## 清空豁免列表
方法三:开 TUN 模式
Clash Verge 的 TUN 模式在虚拟网卡层接管流量,不经过 127.0.0.1,天然绕开环回隔离问题。
代价是它会接管系统全部流量、并且默认劫持 DNS,对排障和某些局域网场景不太友好。如果只为了解决微软服务登录,方法一更轻量。
原理:为什么开了代理反而连不上
三层因果,缺一不可:
第一层:系统代理的工作方式。
开启系统代理后,Windows 在注册表里写入 ProxyServer = 127.0.0.1:7897。支持系统代理的程序会把流量先发给本机的 Clash,由 Clash 决定走代理还是直连。
第二层:Windows 对 UWP 应用有网络隔离。
出于安全考虑,Windows 默认禁止 AppContainer(UWP 应用和系统组件的运行沙箱)访问回环地址 127.0.0.1。这是设计行为,不是 bug。
第三层:两者撞在一起。
Edge 的账户/同步相关组件、Microsoft Store、VSCode 的部分系统级请求都跑在 AppContainer 里。它们拿到系统代理设置后,尝试连接 127.0.0.1:7897,连接请求被 Windows 直接拦下——根本到不了 Clash。
于是表现为:这些程序”知道要代理,但代理连不上”,所有对外请求静默失败。
最典型的判别信号
在 Edge 打开 edge://sync-internals,如果是这个问题,会看到:
Server Connection not attempted
HTTP Response Code n/a
Net Error Code n/a
MSA Account Key Download Key Result: Fail
注意是 n/a 而不是 4xx / 5xx。n/a 意味着请求压根没发出去过。如果是网络不通或代理拒绝,这里会显示超时或者具体的错误码,而不是空值。
看到 not attempted + n/a 这个组合,就可以直接锁定是环回隔离,不用再做网络排查。
影响范围
会中招的不只是 Edge。凡是依赖 AppContainer 组件联网的程序都可能受影响:
| 程序 / 服务 | 典型症状 |
|---|---|
| Microsoft Edge | 账号同步卡 Initializing |
| VSCode | Settings Sync 登录失败 |
| Microsoft Store | 打不开、无法下载更新 |
| Office | 激活失败、登录不了 |
| OneDrive | 无法登录同步 |
| Xbox 应用 | 登录异常 |
| Windows 激活 / 更新 | 联网校验失败 |
反过来,普通的 Win32 程序(Chrome、Firefox、curl、Python 等)完全不受影响——这也正是这个问题难排查的原因:用浏览器测一切正常,只有微软系的东西坏掉,很容易误判成”微软域名被墙了”。
验证有没有修好
1. 看豁免列表条目数
CheckNetIsolation.exe LoopbackExempt -s
修复前通常只有个位数(系统自带的几个),修复后应该有一两百条。我这边修复完是 130 条。
2. 看 Edge 同步状态
打开 edge://sync-internals,确认这三项:
Transport State→Active(不再是Initializing)Server Connection→ 不再是not attempted- 页面底部
Type Info表格里,各数据类型的Total Entries不再是 0
排错时我踩过的坑
1. 别用普通程序测连通性来判断。
我一开始用 Python 测 https://edge.microsoft.com/sync/v1/feeds/me/syncEntities,直连 208ms 返回 401,就断定”网络没问题”。但 Python 是普通 Win32 进程,不受 AppContainer 环回隔离约束——它能连,不代表 Edge 能连。要测就得在出问题那个程序里测。
2. 别急着改 Clash 规则或换 DNS。 我先后怀疑过分流规则、fake-ip DNS、hosts 屏蔽,加了直连规则、对比了多个 DNS,全都无效。因为问题不在”流量怎么出去”,而在”流量根本没出门”。
3. Edge 的「上次同步时间」会一直更新,不代表同步正常。
Preferences 里的 last_synced_time 每次心跳轮询都会刷新,看起来像在同步。判断同步是否真在工作,唯一权威指标是 edge://sync-internals 的 Transport State。
4. 关掉「启动增强」只能治标。 关掉 Edge 的启动增强和后台运行、杀干净进程重启,有时能让同步状态重置一下——但如果环回隔离没解除,重启完又会卡回去,看起来就是”总是修不好”。
附:Edge 同步实际用的地址
如果需要针对性放行,Edge 同步的真实端点是:
https://edge.microsoft.com/sync/v1/feeds/me/syncEntities
(可以在 edge://sync-internals 的 Server URL 一栏看到)
相关域名,供写规则参考:
edge.microsoft.com
login.microsoftonline.com
login.live.com
syncservice.o365syncservice.com
msauth.net
不过既然根因是环回隔离,用 UWP 工具解除限制后通常不需要再单独配这些规则。
一句话总结
Windows 不让 UWP 应用连 127.0.0.1,而本地代理恰好就在 127.0.0.1。 在 Clash Verge 里「设置 → UWP 工具 → 全选 → 保存」,把 UWP 应用加进环回豁免列表,让它们能碰到本机代理,一切就通了。
实测环境:Windows 11 / Clash Verge Rev / Microsoft Edge 156。
评论 (0)
还没有评论,来说两句吧!