无法访问localhost怎么办? Window解决UWP应用本地回环限制
关于 Window 的 UWP 应用本地回环限制以及限制解除方案
1. UWP 应用默认禁止本地回环
UWP 应用在默认的情况下,禁止访问本地的 Localhost(这被称做本地回环 Loopback)。
然而我们在开发、调试、正向代理等场景下,又不得不让 UWP 突破这一个限制。
2. 官方限制解除工具 CheckNetIsolation.exe
这个工具位于 C:/Windows/System32/CheckNetIsolation.exe
,它的功能为解除 UWP 的本地 Loopback 限制或者调试应用(本文仅介绍解除 Loopback 限制)。
./CheckNetIsolation.exe LoopbackExempt [operation] [-n=] [-p=]
常见用法:
-s
: 查看已经取得 Loopback 豁免的应用列表-a -p=[App Container SID] or -a -n=[App Container Name]
: 添加应用豁免-d -p=[App Container SID] or -d -n=[App Container Name]
: 移除应用豁免-c
: 移除所有安装的应用的豁免
3. 如何获取所有安装应用的 SID
在注册表目录 HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Mappings
即可取得所有 App 的 SID 列表。
通过结合 CMD 或者 Pwsh 的循环命令,即可自动化为所有已安装应用添加豁免:
CMD 命令:
FOR /F "tokens=11 delims=\" %p IN ('REG QUERY "HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Mappings"') DO CheckNetIsolation.exe LoopbackExempt -a -p=%p
Powershell 命令:
Get-ChildItem -Path Registry::"HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Mappings\" -name | ForEach-Object {CheckNetIsolation.exe LoopbackExempt -a -p="$_"}
New Powershell Core:
(Get-AppxPackage -AllUsers).PackageFamilyName | ForEach-Object {CheckNetIsolation.exe LoopbackExempt -a -n="$_"}
4. 其他便捷工具以及深层次分析
来自 Fiddler 的 Enable Loopback Utility 或开源项目 Loopback Exemption Manager 的这两个工具提供了很方便的图形化方式来对安装的 UWP 应用进行 Loopback 豁免。
深入研究后者工具以及类似工具的源代码,并参考作者提到的:
我们可以知道,开源工具的作者从 Fiddler 那里借鉴了 P/Invokes 的方式获取 API,而所 Invoke 的 API 主要来自于 FirewallAPI.dll
,这个 dll 提供了很多与 UWP Loopback 豁免相关的实用方法。
我们继续使用 VS2022 的 Dev Shell 对官方的 CheckNetIsolation.exe
进行 dll 依赖分析(需要安装 VS 2022):
到这里我们便可以得知,无论是官方工具还是第三方工具的实现,都是调用 FirewallAPI.dll
提供的 API 来进行 Loopback 豁免的。
相关文章
电脑怎么锁屏快捷键是什么? Windows和macOS锁屏快捷键大揭秘
日常使用电脑的过程中,为了保护个人隐私和安全,经常需要将屏幕进行锁定,Windows和macOS有什么区别呢?详细请看下文介绍2024-07-18电脑怎么看cpu温度? Windows中查看CPU温的方法(软件和硬件)
我们知道cpu是电脑发热量最大的硬件之一,cpu温度过高会直接导致电脑死机或者重新启动,蓝评等现象频繁发生,电脑怎么看cpu温度?详细请看下文介绍2024-07-05如何轻松查看你的 Windows 版本? 检查电脑Windows版本号五种方法
很多朋友发现windows拥有许多版本,比如如家庭版、企业版、专业版和教育版等,而每个版本都有相应的版本号,那么,怎么知道电脑windows版本呢?下面分享五种查看方法2024-06-20NTUSER.DAT能删吗? 一文讲透Windows中的NTUSER.DAT文件
NTUSER.DAT是Windows系统中一个重要的文件,它存储着当前用户在Windows系统中的各种配置等信息,NTUSER.DAT能删除吗?详细请看下文介绍2024-06-19windows系统dll文件删不掉怎么办? 彻底删除顽固dll文件的技巧
.dll文件是我们软件远行时的必备文件,可有时候在我们把安装的软件删除后不知什么原因导致.dll文件没有删掉,且再怎么删也删不掉,这里我分享一下只需要一招就能把.dll文件2024-05-27- DLL文件,是Windows操作系统的关键组件,这篇文章将解释DLL文件的作用,并为你提供多种解决DLL文件遗失问题的策略2024-05-27
Windows Server 2022安装KB5034129后浏览器和应用白屏怎么解决?
B5034129 更新,主要修复了 Wi-Fi 适配器问题,但是安装后导致 Chrome、Edge 和 Firefox 浏览器以及Adobe 等应用白屏,无法显示内容,下面我们就来看看临时修复技巧2024-01-16- 有很多朋友都被windows系统中各式各样的乱码所困惑,特别是收到的一些十分重要的邮件、程序、文件时会遇到乱码,登,网站时会看到乱码,下面我们就来看看解决办法2024-01-09
Win12发布时间曝光?微软或将对Windows进行重大更新
微软目前或许已经准备将于2024年推出为代号Windows 11 24H2或Windows 12的版本,下文为大家带来了详细介绍,一起看看吧2023-12-07windows server哪个版本稳定? Windows Server各版本差异介绍
Windows Server是微软为企业提供的服务器操作系统,提供了许多高级的IT功能,例如数据存储、网络管理、安全性和虚拟化等,在众多的Windows Server版本中,最好用的版本可能2023-11-29
最新评论