为Windows apps应用设置本地代理

由于众所周知的原因,Wikipedia,Twitter,Facebook这些网站需要设置代理才可以正常访问。正常情况下,电脑安装了代理工具在浏览器或者普通程序中访问是没有问题的,但在Windows 8/8.1/10的商店程序(Windows apps)即使设置了代理也会出现无法连接的情况。

原因分析

经过研究,原因跟Windows apps的运行机制有关系。默认情况下,所有Windows apps均运行在被称为”AppContainers”的独立进程上,默认情况下AppContainers会阻止网络流量发送到本地,因此Windows apps无法连接到本地代理服务器。而这个问题同样也影响了一些开发者使用Fiddler抓包工具本地分析和调试程序。

这篇博客中作者介绍了使用新版Fiddler的工具或者下载独立的 EnableLoopback Utility 为特定程序设置启用Loopback通信功能(Exempt,豁免),我们也可以通过这个办法使被墙的apps连接本地代理服务器使代理生效。

具体步骤

感谢 Daniel 的提醒,Fiddler移动了程序的下载位置,已更新下载链接。
下载EnableLoopback Utility工具并安装。

如果想看到更详细的信息或者设置可以使用Windows Loopback Exemption Manager,操作方法大同小异。使用Windows Loopback Exemption Manager可以看到Edge浏览器默认开启了这个功能,所以Edge才可以正常使用代理或者访问本地主机。

安装好EnableLoopback Utility后程序自动打开,或者在开始菜单找到”Enable AppContainer Loopback”打开,根据需要点击要开启Loopback的程序,或者直接点”Exempt All”设置所有程序开启,最后点Save Changes即可,之后可以点 Refresh 刷新查看当前设置或者关闭程序。

此时再打开Wikipedia,已经可以正常访问。

该方法适用于大部分Windows apps程序,邮件程序亦可以正常连接Gmail邮箱,但仍然有部分应用不支持,如Facebook即使开启了Loopback仍然会出现连接超时的问题。


参考

https://blogs.msdn.microsoft.com/fiddler/2011/12/10/revisiting-fiddler-and-win8-immersive-applications/
https://my.oschina.net/farces/blog/616110
https://loopback.codeplex.com/