Сделать сервер localhost освобожденным от изоляции сети приложения UWP?

628
twisteroid ambassador

По умолчанию приложения 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-приложения # отладочные опции-

Исключение 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

1 ответ на вопрос

0
twisteroid ambassador

На самом деле есть способ, не предоставляя исключения каждому приложению и не запуская сервер на отдельной (реальной или виртуальной) машине: используйте хитрость в сети, чтобы сервер localhost выглядел так, как будто он работает в другой системе.

Я реализовал решение с использованием инфраструктуры WinDivert. Короче говоря, он «отражает» сетевые пакеты, предназначенные для указанного «отражающего адреса», обратно к локальному узлу, поэтому сервер, работающий на локальном узле, может быть достигнут по адресу отражения. Таким образом, приложения UWP могут свободно обращаться к серверу.

Должно быть возможным реализовать подобные решения с использованием других технологий, способных фильтровать и внедрять сетевые пакеты.