Win10 UWP应用 解除网络隔离

最近想给outlook加上Gmail的关联,但是发现网络连接一直有问题,代理好像一直没有正常的工作。但是对代理进行测试之后发现没有问题,于是去查了一下是不是UWP自身将很多东西ban掉。经过查证之后,发现确实是UWP自身运行于sandbox的问题,导致代理无法正常的使用。

UWP 是微软在 Windows 10 中引入的新概念,由于所有 UWP 应用均运行在被称为 App Container 的虚拟沙箱环境中,其安全性及纯净度远胜于传统的 EXE 应用。但 App Container 机制同时也阻止了网络流量发送到本机(即 loopback), 使大部分网络抓包调试工具无法对 UWP 应用进行流量分析。同样的,该机制也阻止了 UWP 应用访问 localhost,即使你在系统设置中启用了代理,也无法令 UWP 应用访问本地代理服务器,十分恼人。

UWP内部的OAuth需要同时激活另外的AuthHost这个服务的网络流量
只考虑邮件和日历的话,开启以下3个App的Lookback流量代理就可以正常访问谷歌账号了:

  • microsoft.windows.authhost.a_ 8wekyb3d8bbwe
  • 电子邮件和账户
  • 邮件和日历

在网上找了一下解决方案,这里记录下来mark一下。
通过设置为 Win 10 UWP 应用解除网络隔离 via Umi

使用win10自带的CheckNetIsolation.exe 的命令行工具

CheckNetIsolation.exe 的命令行工具可以帮助我们将 UWP 及 Windows 8 Metro 应用添加到排除列表

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

首先通过Win + R 快捷键打开「运行」窗口,输入「Regedit」打开注册表编辑器,然后定位到 HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Mappings ,接着在左边的注册表项中找到你想解除网络隔离的应用,右边的 DisplayName 就是应用名称,而左边那一大串字符就是应用的 SID 值了。
注册表编辑器

2.打开 CMD 面板

在终端中输入 CheckNetIsolation.exe loopbackexempt -a -p=SID,出现「完成」后就大功告成了。记得这里要用管理员权限。

cmd

通过fiddler来设置

上面的命令行工具对于普通用户来说可能太过繁琐,这里有一种简单的解决方法,fiddler 4是一款windows下用户抓取HTTP数据包的一个软件,这款软件内部自带了一个Win config工具用来解除网络隔离。
下载安装完成之后,打开软件,点击左上角的winconfig
WinConfig工具
打开工具后,以电子邮件为例,如下图勾选一下几个服务就可以啦。
需要勾选的部分

结语

以上就是这个问题的配置解决方案,要注意一下就是win10的Auth服务似乎是单独的一个进程,所以在使用Todoist或者是Outlook的Google认证的时候,如果要使用代理,记得把最开始里面说的那个auth服务也勾选上或者添加上去。