Den Localhost-Server von der Netzwerkisolation der UWP-App ausnehmen?

Den Localhost-Server von der Netzwerkisolation der UWP-App ausnehmen?

Standardmäßig können UWP-Apps nicht auf Netzwerkressourcen auf derselben Maschine zugreifen. Diese Einschränkung kann mit dem CheckNetIsolation.exeDienstprogramm pro App aufgehoben werden. Dies wird an vielen Stellen im Web beschrieben:

https://stackoverflow.com/questions/34589522/kann-localhost-von-uwp-app-nicht-sehen https://docs.microsoft.com/en-us/windows/uwp/debug-test-perf/deploying-and-debugging-uwp-apps#debugging-options

Die Loopback-Ausnahme kann UWP-Apps einzeln gewährt werden. In meinem Anwendungsfall möchte ich einen systemweiten Proxyserver verwenden, der auf localhost läuft (Internetoptionen -> Verbindungen -> Einstellungen für lokales Netzwerk (LAN) -> Proxyserver). Das bedeutet, dass ich jeder einzelnen meiner UWP-Apps die Loopback-Ausnahme gewähren muss, da sie sonst überhaupt nicht auf das Internet zugreifen können.

Gibt es eine Möglichkeit, diese Netzwerkisolation zu umgehen, indem man etwas auf der Serverseite tut, anstatt jeder UWP-App eine Loopback-Ausnahme zu gewähren?

Beispielsweise (ich habe das noch nicht ausprobiert) stelle ich mir vor, dass das Ausführen einer virtuellen Maschine auf meinem Computer und des Proxyservers in der virtuellen Maschine es UWP-Apps ermöglicht, eine Verbindung zum Proxyserver herzustellen, da der Proxyserver nicht auf einer Loopback-Schnittstelle lauscht. Gibt es eine andere Methode/einen anderen Hack, der ähnlich funktioniert?

Dinge, die ich versucht habe und die nicht funktionieren:

  • Binden des Proxyservers an eine andere IP-Adresse in 127.0.0.0/8 statt 127.0.0.1
  • Hinzufügen eines Microsoft Loopback-Adapters, Zuweisen einer IP-Adresse und Binden meines Proxy-Servers an diese Adresse

Antwort1

Es gibt tatsächlich eine Möglichkeit, ohne jeder App die Ausnahme zu erteilen oder den Server auf einer separaten (realen oder virtuellen) Maschine laufen zu lassen: Verwenden Sie Netzwerktricks, um einen Localhost-Server so aussehen zu lassen, als würde er auf einem anderen System laufen.

Ich habe eine Lösung mit dem WinDivert-Framework implementiert.Kurz gesagt, es „reflektiert“ Netzwerkpakete, die für eine bestimmte „Reflektadresse“ bestimmt sind, zurück zum lokalen Host, sodass ein auf dem lokalen Host ausgeführter Server unter der Reflektadresse erreicht werden kann. Auf diese Weise können UWP-Apps frei auf den Server zugreifen.

Es sollte möglich sein, ähnliche Lösungen mit anderen Technologien zu implementieren, die Netzwerkpakete filtern und einfügen können.

verwandte Informationen