¿Hacer que el servidor localhost esté exento del aislamiento de red de la aplicación UWP?

¿Hacer que el servidor localhost esté exento del aislamiento de red de la aplicación UWP?

De forma predeterminada, las aplicaciones para UWP no pueden acceder a los recursos de red en la misma máquina. Esta restricción se puede eliminar por aplicación utilizando la CheckNetIsolation.exeutilidad. Esto se describe en muchos lugares de la 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

La exención de bucle invertido se puede otorgar a aplicaciones para UWP de forma individual. En mi caso de uso, me gustaría utilizar un servidor proxy para todo el sistema que se ejecute en localhost (Opciones de Internet -> Conexiones -> Configuración de red de área local (LAN) -> Servidor proxy). Esto significa que tengo que otorgar la exención de bucle invertido a cada una de mis aplicaciones para UWP; de lo contrario, no podrán acceder a Internet en absoluto.

¿Hay alguna manera de evitar este aislamiento de red haciendo algo en el lado del servidor, en lugar de otorgar la exención de bucle invertido a cada aplicación para UWP?

Por ejemplo, (aún no he probado esto), imagino que ejecutar una máquina virtual en mi computadora y ejecutar mi servidor proxy en la máquina virtual permitirá que las aplicaciones para UWP se conecten al servidor proxy, ya que el servidor proxy no está escuchando en un interfaz de bucle invertido. ¿Existe algún otro método/truco que funcione de manera similar?

Cosas que he probado y que no funcionan:

  • Vincular el servidor proxy a otra dirección IP en 127.0.0.0/8, en lugar de 127.0.0.1
  • Agregar un adaptador de bucle invertido de Microsoft, asignarle una dirección IP y vincular mi servidor proxy a esa dirección

Respuesta1

En realidad, hay una manera, sin otorgar la exención a cada aplicación o ejecutar el servidor en una máquina separada (real o virtual): usar trucos de red para hacer que un servidor localhost parezca que se está ejecutando en otro sistema.

He implementado una solución utilizando el marco WinDivert.En resumen, "refleja" los paquetes de red destinados a una "dirección reflejada" específica hacia localhost, por lo que se puede acceder a un servidor que se ejecuta en localhost en la dirección reflejada. De esta forma, las aplicaciones para UWP pueden acceder al servidor libremente.

Debería ser posible implementar soluciones similares utilizando otras tecnologías capaces de filtrar e inyectar paquetes de red.

información relacionada