Чому 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 в панелі інструментів)
  5. Перед виконанням наступного кроку, переконайтеся, що ваше VPN підключення встановлено (або запущений локальний проксі сервер, якщо проблема з ним).
  6. Виберіть Metro додатки Windows 8, трафік яких повинен "завертатися" на Fiddler і для яких потрібно прибрати обмеження доступу до loopback. Якщо потрібно вибрати всі додатки, натискаємо кнопку Exempt All і зберігаємо конфігурацію (Save Changes).Порада. Як ви бачите, в вікні вказано, що для забезпечення безпеки і надійності Windows забороняє відправку трафіку Metro додатків на локальний комп'ютер. Утиліта AppContainer Loopback Exemption Utility відключає це обмеження з метою налагодження і тестування.

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

Рішення з Fiddler не дуже годиться для масового використання в корпоративному сегменті через незручності розгортання і управління. Але як обхідний рішення, що дозволяє нормально працювати з Metro додатками в VPN конфігурації - цілком можна застосувати.

Отже, ми розібралися як за допомогою Fiddler можна дозволити безпідставного Metro додатком в Windows 8 отримувати доступ до Інтернету через будь-який тип VPN з'єднання або локальний проксі сервер.