Почему Metro-приложения Windows 8 не видят Интернет через VPN? | Windows для системных администраторов

Почему Metro-приложения Windows 8 не видят Интернет через VPN?

Вероятно, вы уже сталкивались с тем, что некоторые современные приложения Windows 8 (Metro приложения) не видят Интернет (выдают «ошибка соединения с сервером» и т.п.) при использовании определенных типов VPN подключений к провайдерам. Причем, как правило, проблема наблюдается не у всех Metro Apps. Т.е. часть приложений работает (обычно это стандартные Metro приложения), а другая – нет. Классические приложения Windows в это же самое время без каких-либо проблема работают с Интернетом.

В том случае, если перед компьютером пользователя поставить аппаратный роутер, инициирующий создание VPN подключения к провайдеру, проблема не наблюдается. Т.е. проблеме подвержены только системы с Windows 8, которые самостоятельно устанавливают VPN тоннель.

Проблема довольно старая, но официального решения от Microsoft до сих пор нет (по крайней мере, мне его найти не удалось). В этой статье мы разберем причину появления проблемы и методы ее решения.

Как вы знаете, Metro Apps Windows 8 отличаются от классических Windows приложений. В данном контексте нас интересует, что они выполняются в изолированной среде, из которой по-умолчанию запрещен доступ к loopback (лупбек) интерфейсу компьютера. А так как все туннельные интерфейсы (pptp, l2tp, pppoe), на которых реализуется VPN, представляют собой не что иное, как loopback интерфейсы, то большинство Metro приложений не могут отправлять на них сетевой трафик и, следовательно, выходить в Интернет. То же самое касается локальных прокси серверов (начиная с простейших обрезателей баннеров типа Privoxy, заканчивая полноценными прокси-серверами).

Совет. Задание прокси сервера для Metro приложений также не помогает решить проблему.

Чтобы Metro приложение могло получать полный сетевой доступ, нужно в манифест appx приложения добавить возможность privateNetworkClientServer. При разработке приложения в среде Visual Studio этот доступ имеется, но при публикации приложения в магазине Windows Store эта возможность должна вручную включаться разработчиком в файле манифеста.

Пока Microsoft будет считать туннельные интерфейсы лупбеками, для корректной работы Metro-приложений через VPN/прокси, придется либо просить разработчиков модифицировать приложения либо воспользоваться обходным решением.

Для реализации обходного решения нам поможет бесплатный HTTP/HTTPS прокси сервер Fiddler, предназначенный для отладки Web приложений и инспектирования всего HTTP трафика между компьютером и серверами в Интернете (в частности его можно использовать для получения ссылки на скачку установочного appx файла любого Metro приложения из Windows Store).

  1. Скачайте Fiddler Web Debugger с этой страницы (http://www.telerik.com/download/fiddler). Для Windows 8 и выше нужна версию Fiddler for .Net 4 (предполагается, что у Вас на компьютере уже установлен .NETv4 Framework)
  2. Установите Fiddler со стандартными настройками.
  3. По умолчанию Metro приложения не могут отлаживаться с помощью Fiddler, т.к. он работает как локальный прокси сервер на компьютере (Metro приложения по умолчанию не могут отправлять трафик через локальный интерфейс прокси). Удалить это ограничение (Loopback Restriction) в программном контейнере AppContainers для определенного Metro-приложения поможет расширение для Fiddler — Windows 8 AppContainer Loopback Utility (enableloopbackutility.exe). Скачайте и установите это расширение.
  4. После установки утилит, запускаем Fiddler и в меню Tools выбираем пункт Win8 Loopback Exemptions (то же самое можно сделать, нажав на первую кнопку с пиктограммой Windows 8 в панели инструментов)Fiddler  создаем loopback исключение для доступа Metro приложений
  5. Перед выполнением следующего шага, убедитесь, что ваше VPN подключение установлено ( или запущен локальный прокси сервер, если проблема с ним).
  6. Выберите Metro приложения Windows 8, трафик которых должен «заворачиваться» на Fiddler и для которых нужно убрать ограничение доступа к loopback. Если нужно выбрать все приложения, нажимаем кнопку Exempt All и сохраняем конфигурацию (Save Changes).
    Совет. Как вы видите, в окне указано, что для обеспечения безопасности и надежности Windows запрещает отправку трафика Metro приложений на локальный компьютер. Утилита AppContainer Loopback Exemption Utility отключает это ограничение в целях отладки и тестирования.

    Утилита AppContainer Loopback Exemption Utility

  7. Сверните Fiddler (не закрывайте его!) и проверьте сетевой доступ у Metro приложений.
Важно. При установке нового современного приложения его придется вручную добавлять в список Loopback Exemption.

Решение с Fiddler не слишком годится для массового использования в корпоративном сегменте из-за неудобства развертывания и управления. Но как обходное решение, позволяющее нормально работать с Metro приложениями в VPN конфигурации – вполне применимо.

Итак, мы разобрались как с помощью Fiddler можно разрешить произвольному Metro приложению в Windows 8 получать доступ к Интернету через любой тип VPN соединения или локальный прокси сервер.

 

Еще записи по теме: Windows 8
Понравилась статья? Скажи спасибо и расскажи друзьям!
Назад:
Вперед:
Полные правила комментирования на сайте winitpro.ru. Вопросы, не связанные с содержимым статьи или ее обсуждением удаляются.

Сказать Спасибо! можно на этой странице или (еще лучше) поделиться с друзями ссылкой на понравившуюся статью в любимой социальной сети(специально для этого на сайте присуствуют кнопки популярных соц. сетей).

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)



MAXCACHE: 0.24MB/0.00739 sec