为什么开了系统代理,微软商店反而连不上?
开 TUN 能用、完全不代理也能用,偏偏开系统代理时微软商店报「无法连接」。原因是 UWP 应用的回环隔离:商店连的不是外网,而是 127.0.0.1 上的代理端口,这一步就被沙箱拦了。附三种解法:EnableLoopback 图形工具、CheckNetIsolation 命令、让 AI 帮你排查。
现象
v2rayN 如果是「自动配置系统代理」后,打开微软商店,直接显示「无法连接到 Microsoft Store」,提示关掉 VPN 或者换个网络:

备注
其他代理客户端的配置系统代理也是相同的原理,都是在系统代理配置上操作,设置里面能看到
奇怪的地方在于,另外两种模式都没问题:
| 代理模式 | 微软商店 |
|---|---|
| 不代理 | 正常 |
| TUN 模式 | 正常 |
| 系统代理 | 无法连接 |
按常理,走不走代理只影响「流量从哪条路出去」,不该影响能不能连上。商店的服务器在国内也能直连,就算代理节点慢,也不至于一点都加载不出来。
提示
这就不得不说之前看到的一些话,说的就是微软的产品咖喱味,开了代理无法访问只能直连,今天算是解决这个问题了
原因:回环隔离
微软商店是 UWP 应用,运行在 AppContainer 沙箱里。Windows 对这类应用有一条网络隔离规则:不允许它通过回环地址(127.0.0.1 / localhost)和别的进程通信。微软官方文档《How to enable loopback and troubleshoot network isolation》写得很直接:回环地址不能用于两个不同应用之间的通信,网络隔离限制了这一点。
而系统代理的地址恰好就在回环上。我这台机器的代理设置是:
ProxyEnable : 1
ProxyServer : 127.0.0.1:10808于是三种模式的区别就清楚了:
| 代理模式 | 商店实际要连的地址 | 结果 |
|---|---|---|
| 不代理 | 微软的服务器 | 正常 |
| 系统代理 | 127.0.0.1:10808(v2rayN 的本地端口) | 被沙箱拦下 |
| TUN 模式 | 微软的服务器(虚拟网卡在下层接管流量) | 正常 |
系统代理模式下,商店读到了系统代理设置,老老实实地去连 127.0.0.1:10808,这一步就被拦了。所以它根本没走到「代理好不好用」那一步,连代理本身都没连上。
TUN 模式能用,是因为它工作在网卡这一层:应用看到的是一条普通的外网连接,目标地址是微软的服务器,不经过回环,沙箱没有理由拦。
商店那句「如果使用 VPN,请暂时将其关闭」是笼统的兜底提示,和真正的原因没什么关系。
解决:给商店加回环豁免
办法就是把商店加进回环豁免名单。这件事我之前在《常见的设置代理》的「UWP 应用:解除回环限制」一节里记过,当时是为了让 EA App 这类 UWP 壳的应用走代理,没想到微软商店自己也是一样的情况。
下面三种方法任选一种,效果相同。
方法一:EnableLoopback.exe(图形界面)
EnableLoopback.exe 是 Telerik 出的一个独立小工具,可以直接下载安装:
https://telerik-fiddler.s3.amazonaws.com/fiddler/addons/enableloopbackutility.exe
用 v2rayN 的话不用另外下载,它的程序目录 bin\ 下面就带了一份 EnableLoopback.exe,双击就能用。
窗口标题叫「AppContainer Loopback Exemption Utility」。打开后会列出本机所有 AppContainer 应用,勾上「Microsoft Store」和「Microsoft Store 体验主机」两项,点「Save Changes」即可。

「体验主机」那一项对应的包是 Microsoft.StorePurchaseApp,也就是方法二里的第二条命令。窗口顶上那行说明也印证了前面的原因:Windows 为了安全阻止应用向本机发送网络流量,这个工具用来为调试解除这个限制。
适合不想敲命令、或者一次要放行好几个应用的情况。
方法二:CheckNetIsolation 命令
不想装工具的话,Windows 自带的 CheckNetIsolation.exe 就能做同样的事。用管理员身份打开终端,执行:
CheckNetIsolation LoopbackExempt -a -n="Microsoft.WindowsStore_8wekyb3d8bbwe"
CheckNetIsolation LoopbackExempt -a -n="Microsoft.StorePurchaseApp_8wekyb3d8bbwe"第一条是商店本体,第二条是商店的购买组件(独立的一个包,在方法一的列表里显示为「Microsoft Store 体验主机」),一起加上。这两条是 AI 给的,我就是用它们解决的。重开商店,正常了:

方法三:让你自己的 AI 给命令
遇到的不是微软商店、而是别的 UWP 应用,又懒得自己查包家族名,可以直接问 AI。把现象和原因一起说清楚,它给出的命令基本就能直接用,比如:
Windows 上的「某某应用」可能是是 UWP 应用,开系统代理(127.0.0.1:端口)时连不上网,请你帮我排查解决这个问题如果只说「开代理连不上」的话,AI 很可能先让你检查节点、换 DNS、重置商店缓存,绕一大圈。实际上可能是 UWP 特性。
几点补充
1、同样的问题不只出在商店。其他 UWP 应用在系统代理模式下也会被同一条规则拦住,处理方法一样,如果你遇到其他微软产品也出现连不上的情况,可以优先排查回环问题
2、这个豁免本来是给开发调试用的。微软在那篇文档里写明,回环豁免是供开发测试的能力。加了豁免,意味着商店可以访问本机回环上的所有服务,不只是代理端口。对商店这种系统自带的应用来说问题不大,但不要顺手给来路不明的应用也加上。
3、不想动豁免名单,就用 TUN 模式。它从根上绕开了回环这一步。
评论
评论加载中……