Минулого тижня колега простягнув мені свій iPhone із двома записами VPN у «Налаштуваннях»: одну залишив застосунок провайдера, другу — профіль IKEv2, вставлений зі сторінки підтримки. Це не конкуруючі версії одного й того самого. Застосунок провайдера — це контейнер, який може нести власний код тунелю, а вбудований клієнт Apple — це клієнт IKEv2, налаштований вручну або профілем. Протокол, робота з обліковими даними, контроль пристрою та відновлення визначають вибір.

Застосунок і вбудований клієнт розташовані на різних рівнях

Вбудований VPN-клієнт Apple на практиці є клієнтом IKEv2. Ручна форма досі перелічує застарілий L2TP поверх IPsec і параметри Cisco IPsec, але поля для транспорту провайдера немає, і конфігурацію OpenVPN чи WireGuard нікуди вставити. Ви або заповнюєте форму в «Налаштування > Загальні > VPN & Керування пристроєм», або імпортуєте профіль з корисним навантаженням VPN; на поверхні — адреса сервера, дві ідентичності, метод автентифікації та необов’язкові правила на вимогу.

Застосунок провайдера працює на рівень вище. Він постачає провайдера пакетного тунелю Network Extension, тож код протоколу й логіка маршрутизації живуть у застосунку, а iOS лише передає пакети. Деякі застосунки реалізують WireGuard або OpenVPN, інші — власний замаскований транспорт, а кілька лише встановлюють профіль IKEv2 і керують вбудованим клієнтом за приємнішим екраном. Через останню групу вибір «застосунок чи профіль» іноді хибний.

Наслідок практичний: файл .ovpn або WireGuard не замінює ці поля, бо рукостискання — інший протокол.

Прочитайте корисне навантаження, перш ніж порівнювати функції

Коли профіль — IKEv2, ключі навантаження пояснюють більше збоїв, ніж будь-яке порівняння функцій. Довідник Apple щодо налаштувань IKEv2 документує кожен ключ; скорочене навантаження виглядає так:

<key>VPNType</key><string>IKEv2</string>
<key>RemoteAddress</key><string>vpn.example.net</string>
<key>RemoteIdentifier</key><string>vpn.example.net</string>
<key>LocalIdentifier</key><string>[email protected]</string>
<key>AuthenticationMethod</key><string>Certificate</string>
<key>ServerCertificateIssuerCommonName</key><string>Example Issuing CA</string>

Три поля несуть основне діагностичне навантаження. RemoteIdentifier — ім’я, яке клієнт очікує від сервера, тож шлюз за NAT або балансувальник, сертифікат якого називає пул замість адреси, зазнає невдачі, хоча адреса правильна. LocalIdentifier — ідентичність, якою сервер вас вважає, і за автентифікації сертифікатом вона має відповідати ідентичності, прив’язаній до вашого облікового запису. ServerCertificateIssuerCommonName закріплює видавця CA, тож профіль може відмовити того дня, коли сертифікат перевипустять, і жодне повідомлення про помилку не згадає сертифікати.

Якщо AuthenticationMethod дорівнює SharedSecret, сервер виконує користувацьку автентифікацію EAP, а отриманий секрет насправді є обліковими даними акаунта. Це важливо, коли провайдер надсилає два документи: один для імені користувача й пароля, другий для сертифіката, і лише один збігається з імпортованим.

Що застосунок уміє, а вбудований клієнт ні

Вибір протоколу — очевидна перевага. Якщо ваш сервер говорить WireGuard або OpenVPN, застосунок — єдиний клієнт iOS, який може це використати, і редагування вбудованої форми це не узгодить. Застосунок також може реалізувати розділений тунель за призначенням або застосунком, власну обробку DNS, блокування в стилі kill switch, вибір сервера й перепідключення, налаштоване під власну мережу.

Ціна — програмне забезпечення, яке ви не перевіряли, що працює з правами мережевого розширення. Якість коливається сильніше, ніж припускають картки в магазині: один застосунок перепідключається чисто, інший кілька секунд витікає після зміни мережі, а kill switch усередині застосунку — функція цього застосунку, а не iOS. На керованому пристрої спершу перевірте затверджений список.

Що вбудований профіль IKEv2 робить правильно

Менше рухомих частин — увесь аргумент. Клієнт IKEv2 і його стек IPsec постачаються із системою, тож немає розширення, яке може впасти, немає процесу на кожен застосунок, який треба підтримувати живим, і немає циклу оновлень третьої сторони між вами та працюючим тунелем. Профіль можна й заблокувати: на наглядовому пристрої користувач не може видалити те, що встановило керування, а Always On VPN, який перепідключається в будь-якій мережі без користувацького перемикача, існує лише в такій наглядовій, керованій профілем формі.

Чого вбудований шлях не дає — гнучкості. Немає VPN на застосунок без керованих застосунків, немає kill switch для користувача й немає транспорту, який у мережі, що блокує IPsec, виглядав би як HTTPS. У готельних мережах, які відкидають UDP 500 і 4500, у вбудованого IKEv2 немає запасного шляху.

Таблиця рішень, яка закриває більшість випадків

На практиці питання протоколу вирішує більшість випадків ще до того, як функції починають мати значення.

What you were givenDevice situationWhat to use
An .ovpn or WireGuard configPersonal phoneProvider app; the native form cannot load it
IKEv2 host plus CA namePersonal or managedProfile, or the app's own IKEv2 mode
IKEv2 with username and secretPersonal phoneEither; the profile is simpler if you never switch servers
A management-installed profileSupervised, MDMNative client; do not add a second app entry
A per-app tunnelling requirementPersonal phoneApp, or accept a full tunnel; iOS cannot split by app without management
IPsec blocked on your main networkAnyApp with a transport that survives the block

Два рядки заслуговують другого погляду. Вимога «на застосунок» на особистому телефоні — випадок, який люди читають неправильно: параметр існує в iOS, але ним керує система керування, тож некерований пристрій його не запропонує. Заблокована мережа — не привід не довіряти IKEv2; це причина, чому застосунок провайдера існує.

Перевірте вибір одним тестом

Перевіряйте режими відмови, а не кнопку підключення. Підключіться один раз, переконайтеся, що з’явився індикатор VPN, потім відкрийте сторінку, яка повертає вашу публічну адресу, і порівняйте з попередньою. Перемкніться з Wi-Fi на мобільні дані, не торкаючись VPN, і стежте за перепідключенням, потім проведіть телефон через авіарежим. Перезавантажте і подивіться, чи тунель повернеться сам: профіль з OnDemandEnabled має, а багато застосунків треба спершу відкрити.

Якщо тунель не повернувся, розділіть відмову за тим, чи існує він узагалі. Відсутність індикатора VPN означає, що тунель не піднявся: або рукостискання зірвалося на RemoteIdentifier, закріпленому CA чи облікових даних, або підключення взагалі не намагалися, бо правило на вимогу не збіглося і жоден застосунок його не запустив. Індикатор при падаючому трафіку означає маршрутизацію, DNS або політику на боці сервера, і переінсталяція клієнта нічого з цього не зачіпає.

Короткий список, щоб пристрій був зрозумілим наступній людині:

  • один запис VPN, а не два;
  • профіль або застосунок названо за сервером, до якого він підключається;
  • значення ідентичності записані там, де ви їх знайдете.

Почніть із рядка протоколу в таблиці й зупиніться там, якщо він відповідає на питання.

Схожі статті