Если VPN не подключается, не начинайте с замены всех настроек сразу. Одна и та же надпись connect failed может означать разные вещи: нет интернета без VPN, сервер недоступен, порт закрыт firewall, истекла подписка, клиент потерял параметры VLESS, не проходит Reality/TLS handshake, сломан DNS или TUN-режим поднялся без маршрута.
Рабочий подход — идти по слоям. Сначала отделить проблему устройства и сети от проблемы профиля. Затем проверить подписку, сервер и порт. После этого смотреть VLESS/Reality параметры, DNS, routing, firewall и клиентские логи. Меняйте одну вещь за раз, иначе после случайного исправления будет непонятно, что именно помогло.
#Карта симптомов
| Симптом | Вероятный слой | Что проверить первым |
|---|---|---|
| Клиент не включает системный VPN | Права приложения, TUN, конфликт VPN | Разрешение VPN-профиля, другой активный VPN, always-on, перезапуск клиента. |
Бесконечный connecting | Сеть, сервер, порт, transport | Интернет без VPN, другая сеть, доступность адреса и порта, firewall. |
connection refused | Сервер или порт | Слушает ли сервер нужный порт, не изменился ли порт в подписке, открыт ли firewall. |
timeout или i/o timeout | Маршрут до сервера, фильтрация, неверный transport | Проверка на другой сети, TCP-порт, IP/домен, IPv4/IPv6, состояние VPS. |
| TLS/Reality handshake failed | Security layer | SNI/serverName, fingerprint, public key, shortId, сертификат, дата и версия core. |
| Статус подключен, но сайты не открываются | DNS, routing, TUN, split tunneling | Открывается ли IP без домена, какие DNS-серверы выбраны, куда идут маршруты. |
| Работает на телефоне, но не на ПК | Клиент, core, firewall, импорт | Версию core, сохраненные параметры профиля, антивирус, режим system proxy/TUN. |
| Работает на Wi‑Fi, но не на мобильной сети | Сеть оператора, IPv6, MTU, порт | Другой порт/профиль только если он выдан владельцем сервера, IPv4/IPv6, логи timeout. |
#Быстрый чеклист перед глубокой диагностикой
- Проверьте интернет без VPN. Откройте обычный сайт и сайт по IP, если знаете тестовый адрес. Если базовая сеть нестабильна, VPN будет только маскировать проблему.
- Повторите на другой сети. Сравните Wi‑Fi, мобильный интернет и, если возможно, другую точку доступа. Это быстро отделяет локальный роутер от сервера и клиента.
- Оставьте один VPN-клиент. Закройте другие VPN, фильтры трафика, adblock DNS, корпоративные агенты и старые системные профили, которые могут перехватывать маршрут.
- Обновите подписку. Если профиль пришел через subscription URL, сначала обновите список узлов и проверьте дату последнего обновления.
- Не редактируйте VLESS поля наугад. UUID, SNI, public key, shortId, path, serviceName и flow должны совпадать с сервером.
- Включите логи на время проверки. Нужна конкретная ошибка: timeout, refused, DNS, handshake, invalid user, failed to dial или permission denied.
От теории к подключению
От понимания к подключению
Если вы уже разобрались, зачем нужен VPN, можно получить данные для подключения и настроить доступ по инструкции.
#Слой 1: устройство и сеть
Начните с того, что не зависит от VPN-профиля. Если без VPN не открываются сайты, отваливается Wi‑Fi или мобильная сеть постоянно меняет тип подключения, клиент может показывать ошибку протокола, хотя причина ниже. Проверьте дату и время устройства: для TLS и Reality неверные часы могут ломать проверку сертификатов и рукопожатие.
Дальше сравните сети. Если один и тот же профиль работает через домашний Wi‑Fi, но не работает через LTE, это не доказывает ошибку клиента. Мобильная сеть может иначе обрабатывать IPv6, DNS, UDP, TCP-порты и долгие соединения. Если профиль не работает нигде, вероятнее сервер, подписка, учетные данные или версия клиента.
- Wi‑Fi. Перезапустите подключение к сети, проверьте captive portal в кафе/отеле, отключите частный DNS или сетевой фильтр на время теста.
- Мобильная сеть. Сравните 4G/5G и режим раздачи с телефона. Включение/отключение IPv6 зависит от ОС и оператора, поэтому фиксируйте результат, а не меняйте все подряд.
- Роутер. Старые роутеры и домашние DNS-фильтры могут ломать резолв домена сервера, а не сам VPN.
- Время. Включите автоматическую дату, время и часовой пояс, особенно если ошибка выглядит как TLS handshake.
#Слой 2: профиль, подписка и импорт
Профиль может быть правильным на сервере и неправильным в клиенте. Частая ситуация: подписка обновилась, но клиент использует старый кэш; QR-код был создан до изменения порта; ссылка vless:// импортировалась частично; один клиент сохранил Reality-поля, а другой потерял flow, fp, sid или path.
| Что проверить | Почему это важно |
|---|---|
| Срок и статус подписки | Истекший доступ часто выглядит как технический отказ, особенно если клиент не показывает причину. |
| Обновление subscription URL | Старый кэш может вести на выключенный сервер или старый порт. |
| Открывается ли URL подписки | Если subscription URL не отвечает из той же сети, клиент не сможет получить актуальные профили. |
| Один и тот же узел в разных клиентах | Если один клиент работает, а другой нет, сравнивайте импортированные поля, а не только название профиля. |
| Полный формат ссылки | Обрезанная строка после ?, & или # может импортироваться как неполный профиль. |
Если есть возможность, удалите проблемный профиль и импортируйте заново из актуального источника. Но не удаляйте единственную рабочую копию до сравнения: иногда старый профиль — единственное место, где сохранились параметры, потерянные новым генератором подписки.
#Слой 3: сервер, порт и доступность
Для клиента VLESS outbound содержит address, port, id, encryption и flow. Если адрес не резолвится, порт не слушает или firewall закрывает входящие подключения, до VLESS-аутентификации дело не дойдет. Ошибка будет выглядеть как timeout, refused или failed to dial.
ping полезен ограниченно: сервер может не отвечать на ICMP и при этом принимать TCP 443, или наоборот отвечать на ping, но не принимать нужный порт. Лучше проверять именно TCP-подключение к адресу и порту из профиля. На desktop это обычно делают системными инструментами вроде nc, Test-NetConnection или встроенной диагностики клиента; на телефоне проще сравнить другую сеть и другой клиент.
| Ошибка в логах | Что обычно означает | Следующий шаг |
|---|---|---|
connection refused | Адрес достигнут, но порт не принимает соединение. | Проверить серверную службу, порт inbound, firewall, панель и актуальность подписки. |
i/o timeout | Ответ не пришел вовремя. | Сравнить сеть, IP/домен, порт, IPv4/IPv6, блокировку маршрута или недоступный VPS. |
no such host | Домен сервера не резолвится. | Проверить DNS устройства, домен, срок регистрации, локальный DNS-фильтр. |
network unreachable | Устройство не имеет маршрута до адреса. | Проверить сеть, IPv6/IPv4, режим роуминга, локальный firewall или TUN-конфликт. |
#Слой 4: VLESS, Reality, TLS и transport
VLESS — это протокол между Xray-клиентом и сервером. В официальной модели серверный inbound содержит список clients с id и flow, а клиентский outbound подключается к address и port с тем же id. Если UUID/id неверный, порт может открываться, но пользователь будет отклонен.
Reality и TLS находятся на другом слое. В Xray transport задается через streamSettings: важны network и security. Например, VLESS + Reality + RAW/TCP с flow=xtls-rprx-vision — это не то же самое, что VLESS + TLS + WebSocket. Смешивание параметров из разных инструкций часто дает профиль, который выглядит правдоподобно, но не может подключиться.
| Поле | Где ломается | Как проявляется |
|---|---|---|
id / UUID | VLESS-аутентификация | Invalid user, rejected, немедленный разрыв после соединения. |
flow | XTLS Vision | Работает в одном клиенте, не работает в старом core, странные handshake ошибки. |
security | TLS/Reality/none | Клиент и сервер говорят на разных security layers. |
type / network | RAW, WebSocket, gRPC, XHTTP | Timeout, bad request, HTTP/2/gRPC ошибки, пустой коннект без трафика. |
sni / serverName | TLS/Reality ClientHello | TLS handshake failed, Reality не принимает клиента. |
fp / fingerprint | uTLS fingerprint | Старый клиент не поддерживает значение или сервер ожидает другую связку. |
pbk / public key | Reality проверка | Reality handshake failed, разрыв до VLESS-обмена. |
sid / shortId | Reality shortId | Подключение не проходит, хотя адрес и порт доступны. |
path, host, serviceName | WebSocket/gRPC/XHTTP | Прокси или сервер принимает TCP, но transport не совпадает. |
pbk, sid, sni, fp и flow не являются универсальными. Они должны соответствовать конкретному серверу и версии core. Замена на значения из чужой статьи обычно ухудшает диагностику.#Слой 5: DNS и маршрутизация
Если VPN показывает зеленый статус, но сайты не открываются, первым подозреваемым часто становится DNS. Проверьте разницу между «не открывается домен» и «нет сетевого доступа вообще». Если IP-адрес открывается, а домены нет, проблема ближе к DNS. Если не открывается даже IP, смотрите routing, TUN, firewall и outbound.
В Xray есть встроенный DNS-модуль. Он может использовать localhost, UDP/TCP DNS, DNS over HTTPS, local modes и FakeDNS. Важная деталь: localhost означает DNS-настройки локальной машины, но не гарантирует, что все системные DNS-запросы автоматически контролируются Xray. Routing тоже влияет на DNS: domainStrategy может оставлять домены как есть, резолвить их при отсутствии domain-match или резолвить при IP-правилах.
| Симптом DNS | Что проверить |
|---|---|
| Подключено, но не открываются домены | DNS-сервер в клиенте, системный Private DNS, DoH в браузере, FakeDNS, правила маршрутизации. |
| Открывается часть сайтов | Split routing, geosite/geoip правила, DNS cache, IPv6-ответы, домены приложений. |
| Падает только браузер | DoH/secure DNS в браузере может идти мимо настроек клиента или конфликтовать с ними. |
| Не резолвится сам сервер | Проверьте DNS до подключения VPN: домен сервера должен разрешаться до старта туннеля. |
| После включения TUN пропадает интернет | Маршрут до DNS или до самого VPN-сервера мог уйти внутрь туннеля и создать петлю. |
Для диагностики полезно временно выбрать простой режим: один профиль, один DNS-набор, минимум rule sets и отключенный split tunneling. После восстановления базового доступа возвращайте сложные правила постепенно.
#Слой 6: клиентские логи
Логи лучше скриншота кнопки Connect. В Xray есть access log и error log, а уровень debug можно включать кратко для диагностики. В GUI-клиентах логи находятся в разных местах: вкладка Logs, Core log, Service log, журнал системы или файл в профиле приложения. Ищите первую ошибку после попытки подключения, а не последние повторяющиеся строки.
| Фраза | О чем говорит |
|---|---|
failed to dial | Клиент не смог открыть соединение к следующему узлу: адрес, порт, DNS, сеть или firewall. |
context deadline exceeded | Операция не завершилась вовремя: часто сеть, порт, transport или сервер. |
certificate / handshake | TLS/Reality слой: SNI, сертификат, дата, fingerprint, public key, shortId. |
invalid user / rejected | UUID/id, список clients на сервере, не тот inbound или истекший доступ. |
permission denied | Права TUN, системный VPN-профиль, firewall, sandbox, запуск без администратора. |
dns + timeout | DNS-сервер недоступен, запросы идут не тем маршрутом или их блокирует сеть. |
Перед отправкой логов кому-либо удалите UUID, домены серверов, IP, subscription URL, email-поля, токены, QR-содержимое и личные названия профилей. Если клиент поддерживает маскирование адресов или скрытие секретов, включите его.
#Firewall, антивирус и конфликтующие VPN
На desktop отказ часто находится не в VLESS, а в локальном сетевом фильтре. Антивирус, корпоративный EDR, firewall, старый TAP/TUN-драйвер, другой VPN-клиент или прокси-расширение могут перехватывать трафик до того, как он попадет в Xray или sing-box. На Windows дополнительно влияет запуск от имени администратора для TUN/Wintun-режима; в system proxy режиме проблема может быть только у приложений, которые не используют системный прокси.
- Проверьте один активный туннель. Одновременные VPN-клиенты могут перезаписывать default route и DNS.
- Сравните proxy и TUN. Если proxy работает, а TUN нет, проблема ближе к правам, маршрутам, DNS или драйверу.
- Посмотрите правила firewall. Блокироваться может не только входящий порт сервера, но и исходящие подключения клиента.
- Не отключайте защиту навсегда. Для теста лучше создать точечное правило для приложения или core, чем оставлять систему без фильтра.
#Android: что проверить отдельно
На Android VPN-приложения работают через системный VpnService. Система показывает запрос доверия при первом включении и разрешает только один активный VPN-сервис на пользователя. Если включен Always-on VPN, Android может автоматически запускать выбранное приложение после загрузки. А опция «Block connections without VPN» блокирует трафик, который не идет через VPN; при сломанном туннеле это выглядит как полный обрыв интернета.
- Проверьте Settings → Network & Internet → VPN: нет ли always-on у другого приложения.
- Если включено «Block connections without VPN», временно отключите его для диагностики, иначе сеть может быть заблокирована до успешного подключения.
- Проверьте per-app VPN или список исключений: нужное приложение могло быть исключено из туннеля или, наоборот, единственным включенным.
- Отключите Private DNS на время теста, если симптом похож на DNS-конфликт.
- Сравните v2rayNG, Hiddify, NekoBox или другой клиент только для диагностики импорта: разные приложения могут использовать разные версии core.
#iPhone, iPad и macOS
На устройствах Apple часть проблем связана с VPN-профилями, Network Extension и настройками «Подключаться по требованию» или корпоративными MDM-политиками. Если приложение удалено, но VPN-статус или профиль остался, проверьте VPN & Device Management и удалите неиспользуемые конфигурации только если понимаете, к чему они относятся.
- iOS/iPadOS. Проверьте, разрешено ли приложению добавить VPN-конфигурацию, нет ли старого профиля и не включен ли Connect On Demand у другого клиента.
- macOS. Сравните системный VPN, приложение-клиент и сетевые фильтры. Иногда помогает удалить старую Network Extension через настройки приложения, а не вручную из файловой системы.
- Корпоративные устройства. MDM может принудительно задавать per-app VPN, сертификаты и маршруты. В таком случае обычный пользователь не всегда может исправить это локально.
#Windows и Linux
На Windows различайте режимы клиента. System proxy меняет настройки прокси для приложений, которые их уважают. TUN/Wintun создает сетевой интерфейс и маршрут для всего или части трафика. Если system proxy работает, но TUN не работает, смотрите права администратора, драйвер, firewall, DNS и конфликтующие VPN.
На Linux частые причины — systemd-resolved, NetworkManager, iptables/nftables, права на создание TUN-интерфейса и маршруты. Если клиент запущен как обычный пользователь без нужных capabilities, он может импортировать профиль, но не создать интерфейс. Если DNS после подключения уходит в старый resolver, статус будет зеленым, а сайты не откроются.
#Что не стоит делать
- Не публикуйте полный
vless://, QR-код, subscription URL и логи с UUID в открытом чате. - Не отключайте проверку TLS или системную защиту как постоянное решение.
- Не смешивайте Reality, WebSocket, gRPC и XHTTP параметры из разных гайдов.
- Не меняйте порт, SNI, public key или shortId без доступа к серверной конфигурации.
- Не судите по одному ping: он не проверяет VLESS, TLS, Reality, DNS и routing.
- Не очищайте все профили до того, как сохранили рабочую конфигурацию или сделали экспорт.
#Итоговая схема локализации
- Опишите симптом одной фразой. Например: «VLESS Reality на Android дает i/o timeout на LTE, но работает на Wi‑Fi».
- Проверьте базовую сеть. Интернет без VPN, другая сеть, дата/время, один активный VPN.
- Проверьте подписку и импорт. Обновление списка, срок доступа, полные поля профиля, сравнение с рабочим клиентом.
- Проверьте сервер и порт. Домен, IPv4/IPv6, TCP-доступность, server process, inbound port, firewall.
- Сверьте протокольные слои. VLESS id, flow, transport, security, Reality/TLS поля, версия core.
- Если статус зеленый, переходите к DNS/routing. DNS-серверы, DoH, FakeDNS, split tunneling, TUN route и правила приложений.
- Подтвердите логами. Ищите первую реальную ошибку и маскируйте чувствительные данные перед передачей кому-либо.
Такой порядок не гарантирует мгновенное исправление, но резко сокращает область поиска. Вы перестаете гадать «сломался VPN» и видите конкретный уровень: сеть, подписка, сервер, VLESS/Reality, DNS, firewall, TUN или особенности операционной системы.