Сделать сервер localhost освобожденным от изоляции сети приложения 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
Исключение Loopback может предоставляться приложениям UWP индивидуально. В моем случае я хотел бы использовать общесистемный прокси-сервер, работающий на localhost ("Свойства обозревателя" -> "Подключения" -> "Настройки локальной сети (LAN)" -> "Прокси-сервер"). Это означает, что я должен предоставить Loopback Exemption каждому из моих приложений UWP, иначе они вообще не смогут выходить в Интернет.
Есть ли способ обойти эту сетевую изоляцию, делая что-то на стороне сервера, вместо предоставления исключения Loopback каждому приложению UWP?
Например, (я еще не пробовал это) я представляю, что запуск виртуальной машины на моем компьютере и запуск моего прокси-сервера на виртуальной машине позволит приложениям UWP подключаться к прокси-серверу, поскольку прокси-сервер не прослушивает петлевой интерфейс. Есть ли другой метод / взлом, который будет работать аналогично?
Вещи, которые я пробовал, не работают:
- Привязка прокси-сервера к другому IP-адресу в 127.0.0.0/8 вместо 127.0.0.1
- Добавление Microsoft Loopback Adapter, назначение ему IP-адреса и привязка моего прокси-сервера к этому адресу
1 ответ
На самом деле, есть способ, без предоставления исключения каждому приложению или запуска сервера на отдельной (реальной или виртуальной) машине: используйте хитрость в сети, чтобы сервер localhost выглядел так, как будто он работает в другой системе.
Я реализовал решение с использованием инфраструктуры WinDivert. Короче говоря, он "отражает" сетевые пакеты, предназначенные для указанного "отражающего адреса", обратно к локальному узлу, поэтому сервер, работающий на локальном узле, может быть достигнут по адресу отражения. Таким образом, приложения UWP могут свободно обращаться к серверу.
Должно быть возможным реализовать подобные решения с использованием других технологий, способных фильтровать и внедрять сетевые пакеты.