UWP应用与系统代理的冲突及解决办法

Clayton Ryan Lv2

不知某日,我突然发现我的2个应用 {一是微软代办,另一个是微软的“邮件与日历”}这2个程序。每当我使用V2RayN打开系统代理时,他俩就无法进行网络通信;关掉后又恢复正常了。

其实原本系统代理不开也罢,但是阅读软件FBReader需要与Google Drive建立连接,但软件内部没有提供代理的设置;还有就是大家喜闻乐见的steam,如果不开代理的话商店页面很卡、社区进不去。因此不得不开,但是一旦开了,就会影响前述这两个微软出品的软件的正常运行。

正是因为我在日常工作中经常用到他俩,所以才将它们放在我的工作电脑上的,否则的话,一个待办软件一个邮件软件放在手机上用完全没问题,除了有的时候电脑与手机之间传送文字不是很方便(此处对苹果全家桶的羡慕加1😭)。

翌日,我想到了另一种办法。我虽然最近没有使用硬件软路由,但是我可以在我常年开启的、作为服务器的小电脑上 安排一个OpenWRT的虚拟机,将它作为旁路由,然后其上就能拥有Passwall,OpenClash等一系列科学上网应用,然后在那里自然就能做出更多的选择了。我如是去做了,花费了许久把整个Passwall都调试好了,但是在设置里却没有能找到符合我要求的选项。

其实对于一般用户来说 这很简单,只要在Passwall设置里打开主开关就能很方便地对内网中的各个设备进行科学上网处理。

但是我的要求比较特殊,因为时常会访问到一些页面,在其上我不希望被探测到使用了代理(想必大家都懂我指的是什么)。还有就是有些时候我需要测试自家网络裸连某国外节点的下载速度,这个时候肯定不能走任何代理对吧,所以又必须有一个简单的方法来关闭代理。如果将代理总开关设于软路由之上的话开启和关闭将会变得非常麻烦(首先要进入软路由的管理界面,其次还要在导航栏中找到科学上网软件打开开关并保存,后者也需要多花费5秒钟时间,并且这样我也很难在自己电脑上追溯:前一段时间我的电脑访问了哪些域名,或者一段时间内流入外网的总流量是多少……如果无法追溯这些数据的话还有可能会导致机场套餐用超额),如果设在本地的话一个快捷键就可以关了,并且上述的缺陷都可以补足。因此这就是我原先采用的办法,但现在不行了。

image-20230212135236927 image-20230212135316722

如上图所示,虽然Passwall算是同类型科学上网软件中的佼佼者,但是其配置功能仍然有限。

起初我想可以让Passwall对内网设备套用【旁路由网关】科学上网模式,但是我的要求比较特殊,因为时常会访问到一些页面,在其上我不希望被探测到使用了代理(想必大家都懂我指的是什么)。还有就是有些时候我需要测试自家网络裸连某国外节点的下载速度,这个时候肯定不能走任何代理对吧,所以又必须有一个简单的方法来关闭代理。如果将代理总开关设于软路由之上的话开启和关闭将会变得非常麻烦(首先要进入软路由的管理界面,其次还要在导航栏中找到科学上网软件打开开关并保存,后者也需要多花费5秒钟时间,并且这样我也很难在自己电脑上追溯:前一段时间我的电脑访问了哪些域名,或者一段时间内流入外网的总流量是多少……如果无法追溯这些数据的话还有可能会导致机场套餐用超额),如果设在本地的话一个快捷键就可以关了,并且上述的缺陷都可以补足。因此这种方案只能就此搁置。

后来我改变了想法,我觉得可以让整个电脑都处于【旁路由网关】科学上网的模式,然后提供一个方法让浏览器中的页面不经过任何代理。首先浏览器端我用的插件是switchyOmega,它提供了通过代理连接或直接连接的选项,但是其所谓的直接连接在我所说的这种【旁路由网关】模式中也会走代理,所以只能在路由器端给其人工搭建一个代理并且设置其出口为Freedom(此处术语参考了Project X)但是这种操作也极难实现,因为在我的Passwall设置里,“路由器自身的TCP连接”规则是“GFW列表”,这是因为在同一路由器上我运行的其他服务有时需要国外网络才能访问,不得不这样做。

因此,我所想出的第2个方案也无法执行了。

今天我无意间上网搜了一下此这种情况,后来发现原来微软对UWP应用的网络连接是有限制的,详情可参考下述引文:

我们都知道,Win10之后,Windows系统中除了基于传统的exe可执行程序的软件之外,又多了“UWP应用”这一新颖的玩意儿。
有关UWP应用的详细介绍,可以查阅度娘百科的相关词条:Universal Windows Platform

当我们自信的打开代理软件 之后,却发现不该连上的网站还是连不上,看不了的番剧还是看不了,其实,并不是我们的代理出现了问题,而是在Windows10系统中,默认是不允许这些UWP应用走代理网络的。

于是根据网上多数人使用过的方案,我打开了在电脑里尘封已久的Fiddler(抓包工具),点击了右上角的WinConfig,弹出了这样的界面:

image-20230212140949951

我随即选择了我前面说到过的两款应用,并点击保存更改,他俩果然可以正常连接网络了。

同时我还发现,以前打开Fiddler运行两款微软应用,只会显示我高亮的这2条https连接记录;但是在放开了他们的限制之后,多出了这么多条,我想这才是问题所在。以前没有修改限制时,根据系统安全默认值,它们能够探测到系统代理却无法连接,从而导致整个应用无法联网;因此现在问题顺理成章地解决了。

image-20230212141131461

其实说到底问题很简单,只要抓住UWP这个关键词在网上一搜,这些问题就能解决。可惜我当时没有想到这一点,我认为是软件本身的问题,我还在想,为什么这些应用会与系统代理冲突?我又没有限制他们的访问权限?但却没有朝着UWP框架的角度去想。

唉,这篇文章,就到此为止罢!


Special Thanks:

  • Title: UWP应用与系统代理的冲突及解决办法
  • Author: Clayton Ryan
  • Created at : 2023-02-12 20:07:00
  • Updated at : 2024-04-29 00:14:49
  • Link: https://blog.eddy.moe/2023/02/12/UWP应用与系统代理的冲突及解决办法/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments
On this page
UWP应用与系统代理的冲突及解决办法