让本地主机服务器免于 UWP 应用网络隔离吗?

让本地主机服务器免于 UWP 应用网络隔离吗?

默认情况下,UWP 应用无法访问同一台计算机上的网络资源。可以使用实用程序按应用解除此限制CheckNetIsolation.exe。网络上很多地方都描述了这一点:

https://stackoverflow.com/questions/34589522/cant-see-localhost-from-uwp-app https://docs.microsoft.com/en-us/windows/uwp/debug-test-perf/deploying-and-debugging-uwp-apps#debugging-options

可以单独为 UWP 应用授予环回豁免。在我的用例中,我想使用在本地主机上运行的系统范围代理服务器(Internet 选项 -> 连接 -> 局域网 (LAN) 设置 -> 代理服务器)。这意味着我必须为我的每一个 UWP 应用授予环回豁免,否则它们根本无法访问 Internet。

有没有办法通过对服务器端执行某些操作来绕过这种网络隔离,而不是向每个 UWP 应用授予环回豁免?

例如(我还没有尝试过),我设想在我的计算机上运行虚拟机并在虚拟机中运行我的代理服务器将允许 UWP 应用连接到代理服务器,因为代理服务器没有监听环回接口。还有其他方法/技巧可以类似地工作吗?

我尝试过但没有效果的方法:

  • 将代理服务器绑定到 127.0.0.0/8 中的另一个 IP 地址,而不是 127.0.0.1
  • 添加 Microsoft 环回适配器,为其分配 IP 地址,并将我的代理服务器绑定到该地址

答案1

实际上有一种方法,无需为每个应用程序授予豁免权或在单独的(真实或虚拟)机器上运行服务器:使用网络技巧使本地主机服务器看起来像是在另一个系统上运行。

我已经使用 WinDivert 框架实现了一个解决方案。简而言之,它将发往指定“反射地址”的网络数据包“反射”回本地主机,因此可以通过反射地址访问在本地主机上运行的服务器。这样,UWP 应用就可以自由访问服务器。

应该可以使用其他能够过滤和注入网络数据包的技术来实现类似的解决方案。

相关内容