VPN-застосунок чи вбудований IKEv2 на iPhone: як вибрати
VPN-застосунок для iPhone і вбудований клієнт IKEv2 вирішують різні проблеми. Спершу порівняйте підтримку протоколів, автентифікацію, контроль пристрою та відновлення.
Минулого тижня колега простягнув мені свій 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 given | Device situation | What to use |
|---|---|---|
| An .ovpn or WireGuard config | Personal phone | Provider app; the native form cannot load it |
| IKEv2 host plus CA name | Personal or managed | Profile, or the app's own IKEv2 mode |
| IKEv2 with username and secret | Personal phone | Either; the profile is simpler if you never switch servers |
| A management-installed profile | Supervised, MDM | Native client; do not add a second app entry |
| A per-app tunnelling requirement | Personal phone | App, or accept a full tunnel; iOS cannot split by app without management |
| IPsec blocked on your main network | Any | App with a transport that survives the block |
Два рядки заслуговують другого погляду. Вимога «на застосунок» на особистому телефоні — випадок, який люди читають неправильно: параметр існує в iOS, але ним керує система керування, тож некерований пристрій його не запропонує. Заблокована мережа — не привід не довіряти IKEv2; це причина, чому застосунок провайдера існує.
Перевірте вибір одним тестом
Перевіряйте режими відмови, а не кнопку підключення. Підключіться один раз, переконайтеся, що з’явився індикатор VPN, потім відкрийте сторінку, яка повертає вашу публічну адресу, і порівняйте з попередньою. Перемкніться з Wi-Fi на мобільні дані, не торкаючись VPN, і стежте за перепідключенням, потім проведіть телефон через авіарежим. Перезавантажте і подивіться, чи тунель повернеться сам: профіль з OnDemandEnabled має, а багато застосунків треба спершу відкрити.
Якщо тунель не повернувся, розділіть відмову за тим, чи існує він узагалі. Відсутність індикатора VPN означає, що тунель не піднявся: або рукостискання зірвалося на RemoteIdentifier, закріпленому CA чи облікових даних, або підключення взагалі не намагалися, бо правило на вимогу не збіглося і жоден застосунок його не запустив. Індикатор при падаючому трафіку означає маршрутизацію, DNS або політику на боці сервера, і переінсталяція клієнта нічого з цього не зачіпає.
Короткий список, щоб пристрій був зрозумілим наступній людині:
- один запис VPN, а не два;
- профіль або застосунок названо за сервером, до якого він підключається;
- значення ідентичності записані там, де ви їх знайдете.
Почніть із рядка протоколу в таблиці й зупиніться там, якщо він відповідає на питання.