Tornar o servidor localhost isento do isolamento de rede do aplicativo UWP?

Tornar o servidor localhost isento do isolamento de rede do aplicativo UWP?

Por padrão, os aplicativos UWP não podem acessar recursos de rede na mesma máquina. Essa restrição pode ser suspensa por aplicativo usando o CheckNetIsolation.exeutilitário. Isso é descrito em muitos lugares na web:

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

A isenção de loopback pode ser concedida a aplicativos UWP individualmente. No meu caso de uso, gostaria de usar um servidor proxy para todo o sistema em execução no host local (Opções da Internet -> Conexões -> Configurações de rede local (LAN) -> Servidor proxy). Isso significa que preciso conceder isenção de loopback a cada um dos meus aplicativos UWP, caso contrário, eles não conseguirão acessar a Internet.

Existe uma maneira de contornar esse isolamento de rede fazendo algo no lado do servidor, em vez de conceder isenção de loopback a todos os aplicativos UWP?

Por exemplo, (ainda não tentei isso), imagino que executar uma máquina virtual em meu computador e executar meu servidor proxy na máquina virtual permitirá que aplicativos UWP se conectem ao servidor proxy, já que o servidor proxy não está escutando em um interface de loopback. Existe algum outro método/hack que funcione de forma semelhante?

Coisas que tentei que não funcionam:

  • Vinculando o servidor proxy a outro endereço IP em 127.0.0.0/8, em vez de 127.0.0.1
  • Adicionando um Microsoft Loopback Adapter, atribuindo-lhe um endereço IP e vinculando meu servidor proxy a esse endereço

Responder1

Na verdade, existe uma maneira, sem conceder isenção a todos os aplicativos ou executar o servidor em uma máquina separada (real ou virtual): usar truques de rede para fazer com que um servidor localhost pareça estar sendo executado em outro sistema.

Implementei uma solução usando a estrutura WinDivert.Resumindo, ele "reflete" pacotes de rede destinados a um "endereço de reflexão" especificado de volta para o localhost, de modo que um servidor em execução no localhost possa ser alcançado no endereço de reflexão. Dessa forma, os aplicativos UWP podem acessar o servidor livremente.

Deveria ser possível implementar soluções semelhantes utilizando outras tecnologias capazes de filtrar e injetar pacotes de rede.

informação relacionada