1. Три картины отказа и что каждая значит
Люди описывают отказ одинаково — «не работает», — а сломаться могло разное. Найдите свою картину: от неё зависит, какой раздел читать дальше.
Ошибка сразу при подключении
Приложение пытается соединиться и тут же выдаёт сообщение об ошибке или возвращает переключатель в выключенное положение. Значит, либо ссылка испорчена, либо до сервера не дошли пакеты, либо сервер отказался вас принимать. Смотрите разделы 2 и 3.
Показывает «Подключено», но ничего не открывается
Самый обманчивый случай. Профиль VPN поднят, значок горит, а ни один сайт не грузится. Частая причина — сервер отклонил соединение, а приложение об этом промолчало. Разделы 3 и 4.
Часть сайтов открывается, часть нет
Туннель работает, но не весь трафик в него попадает. Это правила маршрутизации в самом приложении или разрешение имён мимо туннеля. Раздел 5.
Почему «Подключено» ничего не доказывает
Приложение просит систему создать виртуальный сетевой интерфейс и получает его сразу — телефон рисует значок VPN. Соединение с вашим сервером устанавливается отдельно и позже, при первом же запросе из браузера. Поэтому значок появляется даже тогда, когда сервер отказал в подключении. Единственный надёжный источник — журнал приложения; в нём и написано, что произошло.
2. Пять минут: телефон или сервер
Две проверки, которые надо сделать до любых правок. Обе не требуют доступа к серверу и вместе занимают минут пять. Их смысл — понять, чинить приложение или ехать на сервер.
Проверка 1: та же ссылка во втором приложении
Поставьте второй клиент и добавьте в него ту же ссылку или ту же подписку. Важно, чтобы второй клиент работал на ядре Xray — почему именно так, объяснено в разделе 3. Проверено 5 сентября 2026 года: на Android подойдёт v2rayNG, он ставится файлом APK из релизов на GitHub (в Google Play его нет), на iPhone — бесплатный OneXray из российской витрины App Store.
- Во втором клиенте работает — сервер исправен, дело в первом приложении. Раздел 3.
- Не работает ни там, ни там — переходите ко второй проверке.
Проверка 2: другая сеть
Выключите Wi-Fi и попробуйте подключиться через мобильный интернет, а если отказ случился на мобильном — наоборот, через Wi-Fi. Проверка занимает полминуты и отвечает на вопрос, одинаково ли ведёт себя ваш сервер в разных сетях.
- В другой сети работает — до сервера не доходит трафик именно из первой сети. Настройки приложения тут ни при чём.
- Не работает нигде и ни в одном клиенте — причина на сервере.
Если вердикт — «дело в сервере», дальше эта статья не поможет, и это нормально: там другая логика поиска. Начните с проверки, доходят ли до порта пакеты, — она описана в статье «Заблокирован ли IP сервера». А что делать по её вердикту, разобрано в разборе отказа VLESS.
3. Почему клиенты перестали подключаться в 2026 году
Это самая частая из новых причин. Если отказ звучит как «вчера работало, сегодня нет, а на сервере я ничего не менял» или «поставил новый телефон, и там не подключается» — скорее всего, вы попали именно сюда.
Речь идёт о Reality — способе маскировки, при котором ваше соединение снаружи выглядит обращением к чужому известному сайту. Понять, ваш ли это случай, можно по ссылке подключения: если в ней есть security=reality и параметр pbk= с длинным ключом, читайте дальше. Если ссылка на Hysteria2 или WireGuard, раздел можно пропустить. Подключаетесь по подписке и ссылки не видели — откройте в клиенте нужный профиль: у него есть пункт «Поделиться» или QR-код, там она и лежит.
Что произошло
В Reality клиент сообщает серверу свою версию — три числа, зашитые в приветственное сообщение. Раньше сервер сверял их только тогда, когда владелец сам вписывал минимальную версию. В версии Xray-core 26.7.11 от 11 июля 2026 года поведение изменилось: если в настройках сервера поле минимальной версии клиента пустое, ядро подставляет собственное значение — 26.3.27. Всё, что сообщает версию ниже, сервер не принимает. Ядро прямо предупреждает об этом при запуске:
[Warning] infra/conf: REALITY: The default
minimal client version is Xray-core v26.3.27,
other clients may be refused to connectЛовушка в том, что это число описывает ядро, а не версию самого приложения. И приложения на ядре sing-box сообщают номер, зашитый в их исходный код много лет назад и с тех пор не менявшийся: sing-box — 1.8.1, его сборка в NekoBox — 1.7.5, ядро Mihomo — 1.8.2. Любое из этих чисел меньше 26.3.27, и сервер отказывает.
Отказ при этом молчаливый. Сервер Reality не отвечает ошибкой: он передаёт соединение настоящему сайту-маске, и снаружи всё выглядит как обычный визит на чужой сайт. Именно поэтому приложение показывает «Подключено», а страницы не грузятся.
Обновление сервера догоняет владельцев само: панель 3X-UI версии 3.7.0 от 24 августа 2026 года приезжает с ядром Xray-core 26.7.28, то есть с этим ограничением. Владелец обновил панель — и у части пользователей всё отвалилось, хотя настройки точки входа он не трогал.
Мы это проверили, а не пересказали
Мы подняли сервер на Xray-core 26.7.28 с настройками по умолчанию и подключились к нему клиентом sing-box 1.14.0. Результат: reality verification failed, трафик не идёт. Затем на том же сервере выставили минимальную версию клиента 1.0.0, ничего больше не меняя, — тот же клиент подключился, и запросы пошли. Причина отказа установлена однозначно.
Как узнать своё ядро
Откройте журнал приложения (где он лежит — в разделе 4) и посмотрите первые строки после запуска. Ядро всегда представляется само: первая строка — от Xray, вторая — от sing-box.
Xray 26.7.28 started
sing-box started (0.00s)Если таких строк нет, поднимите подробность журнала: в Hiddify это «Настройки» → «Общие» → «Уровень логирования» (в английском интерфейсе Settings → General → Log level), по умолчанию там warn, а строка о запуске идёт уровнем ниже — info.
Какое ядро у популярных приложений
| Приложение | Ядро | Reality |
|---|---|---|
| Hiddify | sing-box, сообщает 1.8.1 | отказ |
| NekoBox для Android | sing-box, сообщает 1.7.5 | отказ |
| Karing | sing-box, сообщает 1.8.1 | отказ |
| Clash Mi | Mihomo, сообщает 1.8.2 | отказ |
| v2rayNG | Xray-core, в версии 2.2.6 — 26.6.27 | подключается |
| OneXray | Xray-core, версия 26.8.4 | подключается |
| Happ | Xray-core, по сайту проекта | подключается |
| v2rayTun | Xray-core, по описанию в Google Play | подключается |
Третья колонка — про сервер Reality с настройками по умолчанию. Номера ядер sing-box взяты из исходного кода самих проектов, ядро Happ названо на сайте проекта, ядро v2rayTun — в описании приложения в Google Play. У клиента на Xray-core проверка проходит при одном условии: приложение обновлено и несёт ядро не старее 26.3.27. Давно не обновлявшаяся сборка получит тот же отказ: мы проверили это на Xray-core 25.8.3 от августа 2025 года — сервер не принял и его.
Что можно поставить в России
Проверено 5 сентября 2026 года. В российской витрине App Store есть бесплатный OneXray — он на ядре Xray, и это самый простой выход для iPhone. Платный Shadowrocket (249 ₽) там тоже есть, но своё ядро разработчик не публикует, так что заранее о нём сказать нечего — смотрите журнал. Бесплатные Karing и Clash Mi есть, но, как видно из таблицы, к Reality по умолчанию не подключатся. Hiddify, Streisand, Happ и v2rayTun в российской витрине сейчас отсутствуют. На Android Hiddify, Happ и v2rayTun есть в Google Play, а v2rayNG ставится только из релизов на GitHub — в магазине приложения нет, и под этим же именем там встречаются программы посторонних издателей.
Что делать
- Если сервер не ваш — поставьте клиент на ядре Xray из таблицы выше и добавьте туда ту же ссылку. Это всё, что от вас зависит, и в большинстве случаев этого достаточно.
- Если сервер ваш и вы хотите оставить прежнее приложение — в 3X-UI откройте точку входа, вкладку «Безопасность» (Security), поле «Мин. версия клиента» (Min Client Ver) и впишите
1.0.0. Панель сама подсказывает, что пустое поле не означает «без ограничений». После сохранения ссылки клиентам раздавать заново не нужно — меняется только правило на сервере. Если панели нет и конфигурация правится файлом, это полеminClientVerвнутриrealitySettingsу входящего соединения. - Ограничение касается только Reality. Точки входа на Hysteria2, WireGuard и обычном TLS работают как раньше — там проверки версии клиента нет.
Цена второго решения
Опуская минимальную версию, вы разрешаете подключаться старым ядрам, а вместе с ними — устаревшим отпечаткам TLS, по которым соединение и опознают. Xray-core пишет об этом в журнал прямым текстом: смена значения повышает вероятность блокировки адреса сервера. Поэтому это решение для случая «на сервере десять человек с разными телефонами», а не первый ход. Подробнее о том, как опознают соединение и что с этим делать, — в разборе отказа VLESS.
4. Журнал: где лежит и что означают сообщения
Журнал — единственное место, где приложение честно говорит, что случилось. Открывается он за два касания:
- Hiddify — на телефоне «Настройки» → «Логи» (Settings → Logs); на компьютере «Логи» — отдельный раздел в боковом меню.
- NekoBox — боковое меню (кнопка с тремя полосками) → «Журналы» (Logs).
- v2rayNG — боковое меню → «Журнал»; в английском интерфейсе пункт называется Logcat.
- Остальные приложения — ищите пункт «Логи» или «Logs» в настройках; он есть почти везде, потому что без него не разобрать ни один отказ.
Сообщений, которые действительно что-то значат, немного. Вот те, что встречаются чаще всего.
| Сообщение в журнале клиента | Что произошло |
|---|---|
reality verification failed | Клиент на sing-box: сервер не подтвердил себя как сервер Reality. Или он отклонил вас по версии клиента (раздел 3), или в ссылке неверный ключ. |
REALITY: processed invalid connection | То же самое у клиента на ядре Xray: соединение установилось, но сервером Reality не подтвердилось. Причины те же. |
failed to find an available destination | Клиент вообще не смог договориться с сервером. Идёт вместе с одной из строк выше или с тайм-аутом. |
certificate is valid for ..., not ... | Имя сайта-маски в ссылке не совпадает с тем, что настроено на сервере. Ссылку надо взять из панели заново, а не править руками. |
i/o timeout, context deadline exceeded | Ответа от сервера нет вовсе: он выключен, порт закрыт или до адреса не доходит трафик. Это уже не про телефон. |
Если сервер ваш, полезно посмотреть и его журнал — в 3X-UI это раздел с журналами Xray. Отказ в подключении выглядит там так:
REALITY: processed invalid connection
from 203.0.113.10:44166: authentication
failed or validation criteria not metВажная деталь: это же сообщение сервер пишет и когда у клиента неверный ключ, и когда ядро клиента слишком старое. Различить их по журналу нельзя — различает проверка 1 из раздела 2. Отдельное сообщение есть только у несовпадения имени маски: в конце строки будет server name mismatch и само имя.
5. Подключено, а интернета нет: четыре причины
Этот раздел для случая, когда журнал чистый, ошибок нет, а сайты всё равно не открываются или открываются через один. Проверять по порядку — сверху вниз, от частого к редкому.
5.1. Часть трафика идёт мимо туннеля
Все современные клиенты работают по правилам: одни адреса отправляются в туннель, другие — напрямую. Правила эти приложение берёт из готовых списков, и российские адреса в них почти всегда идут напрямую. В Hiddify, например, при выбранном регионе «Россия» напрямую направляются домены на .ru и адреса из списков geoip-ru и geosite-ru.
Отсюда классическая путаница: человек проверяет свой адрес на российском сайте проверки, видит домашний адрес и решает, что туннель не работает. Он работает — российский сайт просто в него не попадает. Проверяйте адрес зарубежным сервисом, например ipinfo.io.
Как проверить наверняка: временно переключите режим маршрутизации на глобальный (в разных приложениях он называется «Глобальный» или Global). Если всё заработало, причина в правилах. Дальше нужный адрес добавляют в проксируемые — в клиентах это раздел с правилами маршрутизации. Насовсем оставлять глобальный режим не стоит: в туннель уйдёт и то, чему там делать нечего, — например банковские приложения.
5.2. Имена разрешаются мимо туннеля
Прежде чем открыть сайт, устройство спрашивает у службы имён его адрес. Если этот запрос уходит не в туннель, а домашнему провайдеру, ответ на заблокированный домен может оказаться подменённым — и страница не откроется, хотя туннель исправен. В клиентах за это отвечает отдельная настройка: в Hiddify «Настройки» → «DNS» → «Удаленный DNS» (Settings → DNS → Remote DNS), в других приложениях — раздел с тем же названием. Там должен быть указан публичный сервер, до которого запрос идёт через туннель: в Hiddify по умолчанию стоит 1.1.1.1, и трогать это поле не нужно. Разбираться стоит, если оно пустое или там прописан адрес домашнего провайдера. Признак этой причины простой: не открываются именно заблокированные в России сайты, а всё остальное работает.
5.3. Мешает сама система
- iPhone: активен только один профиль VPN. Если раньше стоял другой клиент, его профиль остался в «Настройки» → «VPN» и может перехватывать соединение. Лишние профили лучше удалить, оставив один.
- Android: экономия батареи. Система усыпляет приложение в фоне, и туннель разваливается через несколько минут после выключения экрана. У Hiddify для этого есть отдельный переключатель «Отключить оптимизацию батареи» (Disable battery optimization); в других приложениях то же самое делается в системных настройках батареи.
- Android: постоянная VPN. В системных настройках VPN, у шестерёнки рядом с приложением, есть два переключателя — «Постоянная VPN» и «Блокировать соединения без VPN» (в прошивках производителей названия немного отличаются). Если включены оба, а клиент не подключился, интернет пропадает вообще — и выглядит это как поломка сети. На время разбирательства обе галочки стоит снять.
5.4. Настройки устарели
Если на сервере поменяли ключ, имя сайта-маски, короткий идентификатор или порт, старая ссылка перестаёт работать: всё это зашито прямо в неё. Правка других настроек — например минимальной версии клиента — ссылку не ломает. Если вы подключаетесь по подписке, обновите её в приложении вручную — автообновление могло не сработать. Если подписка не обновляется, проверьте дату и время на устройстве: адрес подписки открывается по HTTPS, сертификат проверяется по текущей дате, и при сбитых часах загрузка не пройдёт. На сам туннель часы при этом почти наверняка не влияют — в Reality проверка расхождения времени по умолчанию выключена.
6. Частые проблемы
Включил в Hiddify «Использовать xray-core, если возможно» — не помогло
И не поможет. Переключатель в настройках есть, но в опубликованном исходном коде ядра Hiddify выход через Xray не реализован: соответствующая функция возвращает ошибку «Xray is not implemented yet». Проверено 5 сентября 2026 года — и в текущем коде, и в версии ядра, вошедшей в приложение. Ядро остаётся sing-box, а с ним и отказ по версии клиента. Помогает только другое приложение.
Обновил приложение до последней версии, а всё равно не подключается
Если приложение на ядре sing-box, обновление ничего не меняет. Версия, которую это ядро сообщает серверу Reality, задана в коде и не менялась: в sing-box 1.14.0 от 31 августа 2026 года там по-прежнему 1.8.1. У NekoBox положение хуже: последний выпуск вышел 9 февраля 2026 года, и ждать исправления не от кого. Обновление помогает только клиентам на ядре Xray, у которых оно было старым.
Работает только в глобальном режиме
Значит, туннель исправен, а нужный адрес правила отправляют напрямую — это разобрано в разделе 5.1. Если через туннель должен ходить не сайт, а приложение, ищите в клиенте раздел «Прокси для приложений»: там отмечают, кому идти через сервер, и переводить туда весь трафик не приходится.