解决使用代理时 Windows 10 UWP 应用无法联网问题

时间:2024-02-23 09:59:23

转自:https://www.jianshu.com/p/9d1566aa94cf

原因:Windows 10 所有 UWP 应用均运行在被称为 App Container 的虚拟沙箱环境中,App Container 可以保证应用安全性,但同时也阻止了网络流量发送到本机(即 loopback), 使大部分网络抓包调试工具无法对 UWP 应用进行流量分析。同样的,该机制也阻止了 UWP 应用访问 localhost,即使你在系统设置中启用了代理,也无法令 UWP 应用访问本地代理服务器。

 

解决方法1:使用 Fiddler 4 解除 UWP 应用的网络隔离

打开 Fiddler 4,点击 WinConfig 按钮,找到并勾选你所有需要解除网络隔离的应用(或者直接 Exempt All 选择全部),点击Save Changes 保存

1600394980(1)

 

解决方法2:通过 Windows 自带的命令行工具 CheckNetIsolation.exe 解除 UWP 应用网络隔离

Win10 自带了一款名为 CheckNetIsolation.exe 的命令行工具,可以将 UWP 应用添加到排除列表,具体步骤如下:

1. 通过注册表获取应用的 SID

Win + R 快捷键打开「运行」窗口,输入Regedit打开注册表编辑器。然后复制下面这段地址定位黏贴到地址栏中:HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Mappings

Mappings 文件夹内的内容,就是所有 UWP 应用的对应的 SID。随便点击一个 SID 右边会显示应用名称。找到你要解除网络隔离的应用,复制它的 SID。

1600395181(1)

2.打开 CMD 面板,使用 CheckNetIsolation.exe 解除应用隔离

Win + R 快捷键打开「运行」窗口,输入CMD打开命令行。

直接在终端中输入:CheckNetIsolation.exe loopbackexempt -a -p=      等号后面加上你刚刚复制的应用 SID,接着回车后命令行显示完成说一般就成功了。一次只能解除一个应用,想要解除多个应用,找到对应的 SID,依次解除即可。

1600395359(1)