vless://, QR-код или subscription URL.На iOS VLESS настраивается не во встроенном экране IKEv2/L2TP, а через отдельное приложение-клиент. Такое приложение импортирует VLESS-ссылку или подписку, создает локальную VPN-конфигурацию через системные механизмы iOS и направляет трафик устройства через выбранный proxy/VPN-профиль. Поэтому успешная настройка состоит из трех частей: совместимый клиент, корректный импорт и правильные DNS/routing-параметры после подключения.
Если у вас уже есть строка вида vless://..., QR-код или HTTPS-ссылка подписки, не начинайте с ручного переписывания полей. VLESS Reality чувствителен к мелочам: pbk, sid, sni, fp, flow и type должны соответствовать серверу. Сначала импортируйте профиль как есть, проверьте поддержку клиента, а затем диагностируйте конкретный симптом.
#Что подготовить заранее
- Конфигурация. Это может быть одиночная VLESS-ссылка, QR-код, файл, deep link или subscription URL. Обычный адрес сайта без ключа не является VPN-профилем.
- Актуальный iOS-клиент. Нужна поддержка именно VLESS Reality, если в ссылке есть
security=reality,pbkилиsid. - Доступ к App Store. Наличие конкретного клиента зависит от региона Apple Account и текущей карточки приложения. Проверяйте название, разработчика и дату обновления.
- Разрешение на VPN-конфигурацию. При первом запуске iOS покажет системный запрос на добавление VPN-профиля. Без него приложение не сможет создать туннель.
- Понимание источника. Профиль должен быть от вашего сервера, администратора или доверенного сервиса. Случайные бесплатные ссылки часто устарели, перегружены или небезопасны.
#Как выбрать клиент для iOS
Выбирайте клиент не по одному слову VLESS в описании, а по полному набору параметров вашей ссылки. Для обычного VLESS + TLS требований меньше. Для VLESS + REALITY приложение должно понимать REALITY-поля, XTLS Vision при наличии flow=xtls-rprx-vision, выбранный transport, импорт подписок и настройки DNS/Route.
Данные доступа
У вас уже есть данные для подключения?
Если нет, получите VPN-доступ на 4 дня бесплатно, а затем добавьте данные в приложение по этой инструкции.
#Установка из App Store
- Откройте App Store и найдите клиент по точному названию. Сверьте разработчика, рейтинг, дату обновления, поддерживаемые устройства и описание протоколов.
- Проверьте, что приложение не обещает встроенный сервер вместо клиента. Для этой инструкции нужен именно клиент для ваших конфигураций, а не сервис с закрытой собственной подпиской.
- Установите приложение и запустите его. Если iOS показывает запросы на уведомления, вставку из буфера или доступ к камере, выдавайте только те разрешения, которые нужны для выбранного способа импорта.
- Не добавляйте случайные тестовые серверы. Сначала импортируйте свой профиль или подписку, чтобы не смешать диагностику клиента с диагностикой неизвестного сервера.
Если приложение недоступно в вашем регионе App Store, не ставьте IPA-файлы и профили управления устройством из случайных инструкций. Для VPN-клиента это особенно рискованно: приложение получает сетевые разрешения и может видеть чувствительные метаданные подключений. Безопаснее выбрать другой доступный клиент с теми же протоколами или уточнить у источника конфигурации, какие iOS-приложения он поддерживает.
#Импорт QR-кода, ссылки или подписки
Одиночный VLESS-профиль обычно начинается с vless:// и содержит UUID, адрес, порт, transport, security, SNI, Reality-поля и имя профиля после #. Подписка чаще выглядит как HTTPS-ссылка: клиент скачивает по ней список узлов и обновляет его позже. Не путайте эти форматы: одиночный профиль добавляется как один сервер, а subscription URL — как обновляемая группа.
- QR-код. Откройте импорт по QR внутри клиента и наведите камеру на код. Если QR находится на этом же iPhone, сохраните изображение и используйте импорт из фото, если такая функция есть.
- Буфер обмена. Скопируйте всю строку целиком, включая параметры после
?, разделители&и имя после#. Затем выберите Import from Clipboard или аналогичный пункт. - Share Sheet. Если ссылка открыта в браузере, заметках или файле, попробуйте «Поделиться» и выберите нужный VPN-клиент. Это удобно, когда прямой deep link не срабатывает.
- Deep link. Кнопка импорта на сайте или панели может открыть клиент автоматически. Если открывается не то приложение, используйте ручной импорт из самого клиента.
- Subscription URL. Добавляйте HTTPS-ссылку в раздел подписок, а не в форму одиночного сервера. После добавления нажмите Update/Refresh, если клиент не делает это сам.
После импорта откройте карточку профиля и быстро проверьте поля: протокол VLESS, адрес, порт, transport, security, SNI/serverName, public key, short ID, fingerprint, flow и имя узла. Не исправляйте SNI на домен сервера и не удаляйте «непонятные» параметры Reality: для таких профилей они не декоративные.
#Разрешение VPN-профиля в iOS
Когда клиент впервые включает туннель, iOS обычно показывает системное окно на добавление VPN-конфигурации. Это нормальная часть работы приложений на базе Network Extension: система должна получить явное разрешение пользователя, прежде чем приложение сможет создать VPN-профиль и направлять сетевой трафик через свой tunnel provider.
Это разрешение не означает, что сервер безопасен, быстрый или правильно настроен. iOS подтверждает право приложения управлять сетевой конфигурацией, а не валидирует вашу VLESS-ссылку. Если после нажатия Allow профиль подключается и сразу падает, проблема чаще в конфигурации, совместимости Reality, сети или DNS, а не в самом факте разрешения.
- Проверить созданный профиль можно в настройках iOS в разделе VPN и управления устройством, название пункта зависит от версии iOS.
- Если системный запрос не появляется, перезапустите приложение, удалите старый VPN-профиль этого клиента или проверьте ограничения Screen Time/MDM.
- На корпоративных, школьных или детских устройствах установка VPN-конфигураций может быть запрещена политикой управления.
- Если установлено несколько клиентов, iOS может показывать несколько VPN-конфигураций. Включайте именно профиль того приложения, куда импортировали VLESS.
#Reality compatibility: что должно совпасть
VLESS Reality — это не просто «VLESS на iPhone». В профиле должны совпасть протокол, транспортная защита и параметры рукопожатия. Project X описывает VLESS как легкий протокол с UUID-аутентификацией, а REALITY находится в настройках transport/security. Поэтому клиент должен поддерживать не только VLESS, но и security=reality, нужный transport и поля REALITY.
| Поле | Что проверить на iOS | Типичная ошибка |
|---|---|---|
type, transport | RAW/TCP, XHTTP, WebSocket или gRPC должны совпадать с сервером. | Клиент конвертировал профиль в другой transport или не поддерживает XHTTP. |
security=reality | В карточке профиля должно остаться REALITY, а не TLS или none. | Старый клиент импортировал ссылку частично и потерял Reality-поля. |
pbk, public key | Public key должен быть из этой же серверной конфигурации. | Пользователь перепутал public key с UUID или взял ключ от другого узла. |
sid, short ID | Short ID может быть пустым только если это разрешено сервером. | После копирования пропал короткий hex-идентификатор. |
sni, serverName | SNI должен соответствовать профилю, а не произвольному популярному домену. | SNI меняют вручную «для надежности», и рукопожатие ломается. |
fp, fingerprint | Клиент и core должны поддерживать выбранный uTLS fingerprint, например chrome или safari. | Поле видно в UI, но старая сборка применяет другой handshake. |
flow | xtls-rprx-vision требует поддержки на обеих сторонах. | Обычный VLESS импортируется, но Vision-профиль падает сразу после подключения. |
Если один и тот же профиль работает на Android или Windows, но не работает на iPhone, это не доказывает ошибку iOS. Чаще причина в разной версии core, разной поддержке Reality/XHTTP/Vision, ошибке конвертации подписки или отличиях DNS/routing в конкретном клиенте.
#DNS и routing на iPhone
Статус Connected означает, что клиент считает туннель поднятым. Он не гарантирует, что все домены резолвятся через нужный DNS и что каждое приложение идет через proxy-маршрут. В iOS-клиентах обычно есть режимы вроде Global, Rule, Auto, Direct, Proxy, а также отдельные DNS-настройки. Названия различаются, но смысл один: routing решает, какой трафик идет через профиль, а какой идет напрямую.
- Для первого теста используйте простой режим. Если доступен Global или Proxy for all, проверьте профиль на нем, а уже потом включайте сложные правила.
- DNS должен соответствовать маршрутизации. Если DNS-запросы уходят напрямую, сайт может не открываться или открываться не так, как ожидается.
- IPv6 может вести себя иначе. Если сайты не открываются только в мобильной сети, проверьте IPv6 и правила маршрутизации для IPv6-адресов.
- Правила могут исключать нужный домен. В rule-based режиме домен может попасть в Direct, даже когда сам VPN-профиль подключен.
- DoH/DoT не чинит VLESS. Защищенный DNS полезен, но не исправляет неверный SNI, public key, short ID или transport.
#Проверка после подключения
- Включите профиль и дождитесь стабильного статуса. Если статус меняется каждые несколько секунд, сразу переходите к диагностике Reality или сети.
- Откройте обычный сайт в Safari. Это проверяет базовый web-трафик без сложных приложений и push-сервисов.
- Проверьте нужный сервис. Если цель настройки — конкретное приложение или домен, тестируйте именно его, а не только speedtest.
- Сравните Wi-Fi и мобильную сеть. Разные операторы могут иначе обрабатывать IPv6, DNS, UDP, TLS-подобный трафик и IP-адрес сервера.
- Обновите подписку вручную. Если используете subscription URL, убедитесь, что клиент скачал свежий список узлов.
- Не меняйте много настроек сразу. Фиксируйте один симптом и одно изменение, иначе рабочую комбинацию будет сложно восстановить.
#Troubleshooting
| Симптом | Вероятная причина | Что сделать |
|---|---|---|
| Клиент не находится в App Store | Региональная доступность изменилась или название введено неточно | Проверьте точное имя, разработчика и альтернативный совместимый клиент. Не ставьте неизвестные IPA и MDM-профили. |
| QR не сканируется | Плохое изображение, блики, слишком длинная ссылка или QR содержит не конфигурацию | Попросите исходную строку, попробуйте импорт из буфера обмена или из изображения. |
| Import from clipboard ничего не видит | Скопирован текст инструкции, а не ссылка, или iOS не дала разрешение на вставку | Скопируйте только URL, проверьте начало vless:// или https:// и подтвердите вставку в нужное приложение. |
| Подписка добавилась как один сервер | Subscription URL вставлен в форму одиночного профиля | Удалите запись и добавьте ссылку в раздел Subscription/Profiles/Remote config. |
| VPN-профиль не добавляется | Системное разрешение отклонено, профиль уже поврежден или устройство ограничено MDM/Screen Time | Удалите старый профиль клиента, перезапустите приложение, проверьте ограничения устройства. |
| Connect сразу отключается | Неверный UUID, истекшая подписка, старый core или несовместимый Reality/Vision | Обновите клиент, обновите подписку, проверьте pbk, sid, sni, fp, flow и transport. |
| Handshake failed или connection reset | REALITY-параметры не совпадают с сервером | Не заменяйте SNI наугад. Сверьте полный профиль с источником или перевыпустите конфигурацию. |
| Timeout | Сервер недоступен, порт заблокирован, сеть режет трафик или выбран неправильный transport | Сравните Wi-Fi и LTE, другой узел подписки и другой клиент с тем же профилем. |
| Connected есть, интернета нет | DNS, routing, IPv6, rule mode или конфликт с другим VPN/DNS-приложением | Переключитесь временно в Global/Proxy mode, проверьте DNS и отключите конкурирующие сетевые фильтры. |
| Работает на Wi-Fi, но не на мобильной сети | Отличия оператора: IPv6, DNS, MTU, блокировка IP или другое поведение TLS-трафика | Проверьте другой transport/узел из подписки, отключите сложные правила и сравните с обновленным клиентом. |
| После обновления подписки все сломалось | Конвертер изменил поля или серверная панель выдала новые параметры | Сравните старый и новый профиль: type, security, pbk, sid, sni, fp, flow. |
#Безопасность
VLESS-ссылка и subscription URL — чувствительные данные. В них могут быть UUID, токен подписки, адрес сервера, SNI, Reality public key, short ID и имя узла. Не публикуйте QR-код в чатах, не вставляйте ссылку в онлайн-декодеры и не отправляйте скриншоты настроек без маскировки. Если ссылку нужно передать другому человеку, лучше перевыпустить отдельный профиль, чем делиться своим.
Также не оценивайте приватность только по приложению. iOS-клиент управляет туннелем на устройстве, но сервер, владелец подписки, DNS-настройки и правила маршрутизации остаются частью модели доверия. VPN-профиль может помочь направить трафик через нужный сервер, но не превращает любой неизвестный сервер в безопасный.
#Итоговый чеклист
- Профиль получен из доверенного источника и не опубликован в открытом доступе.
- Клиент установлен из App Store, разработчик и поддержка VLESS/REALITY проверены.
- QR,
vless://или subscription URL импортированы без ручной правки. - iOS VPN-профиль разрешен в системном окне.
- В карточке профиля сохранились transport,
security=reality, SNI, public key, short ID, fingerprint и flow. - DNS и routing проверены сначала в простом режиме, затем в нужных правилах.
- Проблемы диагностируются по симптомам: импорт, разрешение, handshake, timeout, DNS/routing или сеть.
Настройка VLESS на iPhone обычно занимает несколько минут, если не смешивать уровни. App Store-клиент отвечает за импорт и туннель, iOS отвечает за разрешение VPN-профиля, VLESS/Reality-поля должны совпасть с сервером, а DNS и routing определяют, какие домены реально пойдут через подключение.