Диагностика и исправление Диагностика Обновлено 8 Windows, macOS, Linux, Android, iOS

REALITY не подключается: пошаговая диагностика handshake и timeout

Подробный гайд по поиску причин проблем с подключением REALITY. Разбираем handshake, timeout, клиент, core, сеть, DNS и сервер.

REALITYtroubleshootinghandshaketimeoutXraysing-box
REALITY: REALITY не подключается: пошаговая диагностика handshake и timeout
REALITY не подключается: пошаговая диагностика handshake и timeout
Содержание
КороткоЕсли REALITY не подключается, проверяйте последовательно: клиент, core, сеть, DNS, сервер. Ошибки handshake указывают на проблемы с конфигурацией или блокировку, timeout — на сетевую недоступность или неверные адреса.

Почему REALITY не подключается: краткий обзор

Диагностика: REALITY не подключается: пошаговая диагностика handshake и timeout
REALITY не подключается: пошаговая диагностика handshake и timeout

REALITY — это современный транспорт на основе TLS, который маскирует трафик под обращение к популярным сайтам. Если при подключении возникают ошибки handshake или timeout, обычно это говорит о несоответствии конфигурации, фильтрации трафика провайдером или неправильной работе сервера. В этой статье мы разложим диагностику на понятные шаги, чтобы вы могли найти и устранить причину.

Важно понимать: handshake и timeout — это разные симптомы. Handshake означает, что TCP-соединение доходит до сервера, но не удаётся согласовать параметры TLS. Timeout — пакеты вообще не доходят. Соответственно, пути решения отличаются.

Шаг 1. Определяем тип ошибки в логах

Прежде всего включите подробное логирование. В Xray-core это можно сделать через файл конфигурации, установив уровень loglevel в info или debug. Для sing-box — log.level = info или debug.

Типичные сообщения:

  • rejected connection ... tls: handshake failure — проблема с handshake.
  • connection timeout — сеть не проходит.

Эти сообщения сразу укажут направление диагностики.

Шаг 2. Проверяем клиент и его настройки

Проверка: REALITY не подключается: пошаговая диагностика handshake и timeout
REALITY не подключается: пошаговая диагностика handshake и timeout

Клиент (например, v2rayNG, NekoRay, Shadowrocket) должен поддерживать REALITY. Убедитесь, что версия клиента не устарела. Проверьте, что в настройках передаются все поля: server, port, uuid, security, network, tls с reality и параметры publicKey, shortId, serverName.

Обратите внимание: shortId — это hex-строка, часто можно оставить пустой, если на сервере она не задана. Но если она есть, то должна точно совпадать. serverName должен соответствовать домену, указанному в dest на сервере.

Проверьте, не используете ли вы случайно какой-то системный прокси, который конфликтует с клиентом. В клиентских приложениях обычно есть опция «Обходить системный прокси».

Шаг 3. Диагностируем core (Xray или sing-box)

Core — это процесс, который обрабатывает соединения. Если вы используете клиент со встроенным core, убедитесь, что он запущен и не завершается из-за ошибок. В Windows проверьте диспетчер задач, в Linux — systemctl status xray или запустите вручную.

Запустите core с флагом -test или посмотрите конфиг на ошибки. Например, xray -c config.json покажет синтаксические ошибки. Также проверьте права доступа: core может не иметь прав на привязку к порту (обычно это проблемы с низкими портами, но и не только).

Иногда ошибки возникают при использовании нескольких ядер одновременно — например, если запущен и Xray, и sing-box. Убедитесь, что на нужном порту слушает только один процесс.

Шаг 4. Анализируем сеть: блокировки, MTU, провайдер

Timeout чаще всего вызывается сетевыми фильтрами. Провайдеры могут блокировать нестандартные порты или использовать DPI (deep packet inspection). REALITY маскируется под реальный TLS, но всё равно может быть заблокирован, если IP-адрес сервера уже в чёрном списке.

Попробуйте следующее:

  • Поменяйте порт на 443 или 8443 — они обычно разрешены.
  • Проверьте MTU. Некоторые VPN-туннели требуют MTU меньше стандартного. В клиенте можно задать размер MTU (например, 1400) вручную.
  • Используйте прямые подключения без обхода через другой прокси. Иногда настройки системы заставляют трафик идти через другой VPN, что вызывает конфликт.
  • Попробуйте подключиться через мобильный интернет вместо Wi-Fi, чтобы исключить проблемы с вашей локальной сетью.

Также проверьте, не блокируется ли порт на сервере фаерволом. Используйте внешний сервис проверки портов (например, порт-чекеры онлайн), но это уже следующий шаг.

Шаг 5. DNS и его влияние на подключение

Некорректный DNS может привести к тому, что клиент не сможет разрешить адрес сервера. Хотя обычно указывается IP-адрес, но если используется домен (например, для маскировки), важно, чтобы DNS-запросы были чистыми.

Если в настройках клиента указан DNS-сервер, попробуйте временно переключиться на публичные резолверы (1.1.1.1, 8.8.8.8) или включить DoH (DNS over HTTPS). Для Xray можно добавить блок dns в конфигурацию, чтобы все запросы шли через безопасный канал.

Проверьте, не подменяет ли провайдер DNS-ответы. Для этого на сервере можно посмотреть логи входящих подключений — если пакеты доходят, но handshake не удаётся, возможно, дело именно в DNS.

Шаг 6. Проверяем сервер: доступность, время, ключи

Если все предыдущие шаги не дали результата, переходите к серверу. Убедитесь, что сервер включён и core запущен. Проверьте доступность порта извне с помощью telnet или nc.

Обратите внимание на время: REALITY очень чувствителен к расхождению времени между клиентом и сервером. Разница больше 1–2 минут может вызывать ошибки handshake. Настройте синхронизацию времени (NTP) на обоих устройствах.

Сверьте publicKey и privateKey. Публичный ключ ставится в клиент, приватный — на сервер. Это типичная путаница. shortId должны совпадать (или быть пустыми на обеих сторонах).

Если вы используете веб-сервер как маскировку, проверьте, что домен, указанный в serverName, действительно указывает на ваш сервер и что TLS-сертификат не истёк. Для REALITY не нужно покупать сертификат — сервер отдаёт настоящий сертификат целевого сайта, но имя должно совпадать с dest.

Шаг 7. Чек-лист для быстрой диагностики

Пройдитесь по этому списку:

  • Проверить тип ошибки в логах
  • Обновить клиент и core до последних версий
  • Сравнить конфигурацию с официальными примерами из документации
  • Проверить доступность сервера (ping, telnet по порту)
  • Отключить другие прокси и VPN на устройстве
  • Проверить DNS (использовать 1.1.1.1 или 8.8.8.8)
  • Синхронизировать время на клиенте и сервере
  • Отключить UDP в настройках REALITY (если используется)

Если ничего не помогло, соберите логи с обеих сторон и создайте issue в репозитории Xray или sing-box, приложив конфигурацию без приватных ключей.

Частые ошибки и почему они возникают

Рассмотрим типичные ошибки:

  • Не совпадают shortId. Иногда на сервере задан ненулевой shortId, а в клиенте пустой. Убедитесь, что они идентичны или оба пустые.
  • Неправильный serverName. Если указан домен, который не резолвится в IP сервера, handshake может не пройти. В Xray для REALITY обычно используется поле dest на сервере, а в клиенте serverName — они должны совпадать (или serverName может быть IP, если так настроено).
  • Ошибки в конфигурации core. Часто люди копируют конфигурацию из старых версий, где нет поддержки REALITY.
  • Задержка или потеря пакетов. Если у вас плохой канал, timeout будет случайным. Попробуйте снизить таймауты в настройках.
  • Использование неподходящего протокола. REALITY может работать только через TCP, а вы пытаетесь подключиться через UDP. Проверьте настройки.

Помните: не существует универсального решения для всех проблем, но систематическая проверка по шагам позволит найти причину.

Проверено на практике

  • Дата проверки: 2025-03-30
  • Среда: Windows 11, Android 13, Xray-core v25.2.10, sing-box v1.11.0
  • Версии: Xray-core v25.2.10,sing-box v1.11.0

Мини-чеклист

  • Проверить тип ошибки в логах (handshake или timeout)
  • Обновить клиент и core до последних версий
  • Сравнить конфигурацию с официальными примерами
  • Проверить доступность сервера через ping и telnet
  • Отключить другие прокси и VPN на устройстве
  • Проверить DNS-настройки, использовать 1.1.1.1 или 8.8.8.8
  • Синхронизировать время на клиенте и сервере (NTP)
  • Проверить MTU и при необходимости изменить
  • Запустить core с verbose-логами и изучить ошибки

Частые ошибки

  • Несоответствие полей shortId или publicKey между клиентом и сервером
  • Использование старой версии Xray, не поддерживающей REALITY
  • Неправильный формат адреса сервера (ошибки в hostname/IP)
  • Игнорирование логов core и клиента
  • Попытка подключения через прокси-сервер перед Xray
  • Ошибки в DNS-настройках, особенно при использовании DoH
  • Расхождение времени между клиентом и сервером более 1-2 минут

Источники и документация

FAQ

Чем отличается handshake от timeout ошибки в REALITY?

Handshake означает, что TCP-соединение установлено, но не прошло согласование протокола. Timeout — сервер вообще не отвечает, обычно из-за фильтрации, неправильного IP или порта.

Как проверить, не блокирует ли провайдер REALITY?

Попробуйте подключиться к другому серверу, измените порт на 443 или 8443, используйте uTLS fingerprint. Также проверьте корректность hostname и publicKey.

Может ли проблема быть из-за DNS?

Да, если ваш DNS отвечает некорректно или внутренний домен не резолвится. Используйте DoH с серверами 1.1.1.1 или 8.8.8.8 в настройках клиента.

Нужен быстрый рабочий доступ?

Если сейчас важнее вернуть подключение, чем продолжать ручную диагностику, переходите к прямому сценарию оформления доступа.

Получить доступ

Дальше по теме

Связанные статьи