Windows 开启代理后商店无法联网:用 CheckNetIsolation 配置 Loopback 豁免
在 Windows 上开启本地代理后,浏览器可以正常访问网络,Microsoft Store、新版 Outlook 或某些账户组件却一直转圈、提示无法连接,关闭代理后又恢复正常。这个现象常见于代理程序监听 127.0.0.1 或 localhost,而出问题的应用运行在 AppContainer 环境中。
本文整理一种不安装额外工具的处理方式:使用 Windows 自带的 CheckNetIsolation.exe,只为确实需要访问本机代理的应用添加 Loopback 豁免。文中的路径和包名都采用可替换写法,读者应以自己电脑的查询结果为准。
一、为什么浏览器能联网,商店却不行
许多代理软件会在本机监听一个端口,例如:
127.0.0.1:7890
普通桌面程序可以把请求发送到这个本地端口,再由代理程序转发。部分打包应用受到 AppContainer 网络隔离限制,默认不能按同样方式访问本机 Loopback 地址,于是出现“系统代理已经打开,应用反而无法联网”的情况。
微软文档说明,打包应用连接本机的非打包程序或服务时,可以使用 CheckNetIsolation.exe 为指定的 AppContainer 或包系列名称添加 Loopback 豁免。[1][2]
这套配置适用于以下前提:
- 代理服务确实运行在本机 Loopback 地址上;
- 关闭代理后应用可以联网,开启代理后不能联网;
- 出问题的是带包标识的 Windows 应用或其账户组件。
如果应用在不开代理时也无法联网,应先检查 DNS、时间、证书、系统服务和应用本身,Loopback 豁免不一定与问题有关。
二、准备:以管理员身份打开终端
打开“开始”菜单,搜索“终端”“命令提示符”或“PowerShell”,选择“以管理员身份运行”。
CheckNetIsolation.exe 位于 Windows 系统目录中。通常可以直接输入命令,不需要先切换目录:
CheckNetIsolation.exe LoopbackExempt -s
如果终端提示找不到该命令,可以用环境变量表示系统安装目录:
%SystemRoot%\System32\CheckNetIsolation.exe LoopbackExempt -s
这里的 %SystemRoot% 会由 Windows 自动展开,因此不必假定系统一定装在 C:\Windows。
三、查找应用的包系列名称
添加豁免时推荐使用包系列名称,也就是微软文档命令中的 <AppContainer or Package Family>。可以在 PowerShell 中列出当前用户安装的应用:
Get-AppxPackage |
Select-Object Name, PackageFamilyName |
Sort-Object Name
如果只想查找名称中包含某个关键词的项目,例如 Store、Outlook 或账户组件,可以使用:
Get-AppxPackage |
Where-Object { $_.Name -match 'Store|Outlook|Account|AAD' } |
Select-Object Name, PackageFamilyName
输出示意如下:
Name PackageFamilyName
---- -----------------
某应用的内部名称 某应用包名_发布者标识
后续命令需要的是第二列 PackageFamilyName。不要照抄其他电脑上的结果;不同 Windows 版本、应用版本和安装来源可能显示不同的包名。
也可以在注册表编辑器中查看 AppContainer 项:
HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer
注册表路径适合交叉确认,命令行查询通常更直观。这里只需要读取信息,不需要修改注册表。
四、添加 Loopback 豁免
确定包系列名称后,在管理员终端执行:
CheckNetIsolation.exe LoopbackExempt -a -n=<包系列名称>
例如,假设查询得到的包系列名称是:
Example.App_abc123def456
则命令写成:
CheckNetIsolation.exe LoopbackExempt -a -n=Example.App_abc123def456
参数含义:
LoopbackExempt:管理 Loopback 豁免;-a:添加;-n=:按 AppContainer 名称或包系列名称指定应用。
命令中的横线应使用英文半角减号 -。从网页或聊天软件复制时,如果被替换成长横线,命令会执行失败。
如果 Microsoft Store 能恢复联网,但 Outlook、OneDrive 登录或账户同步仍异常,可以继续查询实际参与登录的 Outlook、个人账户或工作/学校账户组件,并只为确认受影响的包逐个添加豁免。不要把不相关的所有应用批量加入豁免列表。
五、检查配置是否生效
查看当前豁免列表:
CheckNetIsolation.exe LoopbackExempt -s
确认目标应用出现在输出中,然后:
- 完全退出出问题的应用;
- 保持本地代理开启;
- 重新启动应用并测试登录、下载或同步;
- 仍未生效时,检查代理程序是否真的监听本机端口,以及规则是否允许该流量。
微软的 MSIX 示例同样使用 -s 检查应用是否已加入豁免列表。[3]
六、需要撤销时如何恢复
删除指定应用的 Loopback 豁免:
CheckNetIsolation.exe LoopbackExempt -d -n=<包系列名称>
删除后再次运行:
CheckNetIsolation.exe LoopbackExempt -s
确认对应项目已不在列表中,再重启应用。-d 只撤销指定包的豁免,不需要修改代理软件或注册表。
七、几个容易踩的坑
1. 把应用显示名称当成包系列名称
“Microsoft Store”是界面显示名称,命令需要的是查询到的 PackageFamilyName。两者不是一回事。
2. 固定写死系统盘符
系统目录未必需要写成 C:\Windows\System32。直接使用 CheckNetIsolation.exe,或使用 %SystemRoot%\System32\CheckNetIsolation.exe,对不同安装位置更友好。
3. 使用了错误的参数对象
微软当前文档给出的常用写法是:
CheckNetIsolation.exe LoopbackExempt -a -n=<AppContainer 或 Package Family>
-p=通常用于直接指定 AppContainer SID;如果手里拿到的是包系列名称,应使用 -n=。[1]
4. 忘记重启应用
修改豁免后应彻底退出并重新打开应用。有些账户与同步组件还可能需要注销当前会话或重启 Windows 才会重新建立网络连接。
总结
当本地代理开启后,浏览器正常而部分 Windows 应用无法联网,可以按下面的顺序处理:
确认代理监听 localhost
↓
查询目标应用的 PackageFamilyName
↓
使用 CheckNetIsolation 添加 Loopback 豁免
↓
用 -s 检查列表并重启应用验证
↓
不再需要时用 -d 撤销
这套方法只使用 Windows 自带工具,配置对象也可以精确到单个包。关键是先查本机实际包名,再添加最小范围的豁免。
参考资料
- Microsoft Learn, Troubleshooting UWP App Connectivity Issues in Windows Firewall
- Microsoft Learn, Interprocess communication: Loopback
- Microsoft Learn, Distribute a Windows app from an IIS server: Add loopback exemption
- simple_whu, 解决开启代理时无法正常使用 Microsoft Store、OneDrive、Outlook 等应用的问题,本文参考其中第二种方法重新整理。
本文由 AI 辅助整理与撰写,命令根据微软官方文档交叉核对;不同 Windows 与应用版本的包名可能不同,请以本机查询结果为准。发表日期:2026-10-23。
浙公网安备 33010602011771号