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

REALITY QR-код не импортируется: типовые причины и решения

Разбор типовых причин, почему QR-код REALITY не импортируется в клиенте, и пошаговая диагностика проблем: клиент, core, сеть, DNS, сервер.

REALITYQR-кодимпортошибкидиагностикаXrayVLESSsing-box
Содержание
КороткоЕсли QR-код REALITY не импортируется, сначала проверьте формат ссылки (vless:// с security=reality и обязательными параметрами), поддержку REALITY в клиенте, затем состояние сервера и сетевую доступность. Используйте пошаговую диагностику ниже.

REALITY — это современная технология маскирования трафика для протокола VLESS. Она не требует отдельного сертификата и позволяет подключаться к серверу, который внешне имитирует обычный сайт. Для настройки в графических клиентах обычно используются QR-коды или ссылки вида vless://.... Но что делать, если QR-код не импортируется? В этой статье разберём типовые причины и дадим пошаговую диагностику.

Что такое REALITY QR-код и как он устроен

REALITY QR-код содержит в себе закодированную конфигурацию подключения. Обычно это строка формата:

vless://UUID@SERVER_IP:PORT?encryption=none&security=reality&type=tcp&pbk=PUBLIC_KEY&fp=FINGERPRINT&sni=SNI&sid=SHORT_ID&spx=SPIDER_X#Name

Здесь UUID — идентификатор пользователя, SERVER_IP — адрес сервера, PORT — порт, PUBLIC_KEY — публичный ключ REALITY, FINGERPRINT — отпечаток TLS, SNI — имя сервера для маскировки, SHORT_ID — короткий идентификатор, SPIDER_X — параметр spiderX (необязательный). Импорт невозможен, если ссылка повреждена, неполная или содержит недопустимые символы. Понимание структуры помогает выявить ошибки.

Почему импорт может не сработать: общий обзор

Все причины можно разделить на четыре группы:

  • Клиент: устаревшая версия, отсутствие поддержки REALITY, ошибки сканирования.
  • Core (ядро): неверный синтаксис ссылки, неподдерживаемые параметры.
  • Сеть и DNS: проблемы с доступом к серверу, блокировки, некорректный DNS.
  • Сервер: не запущен, неверная конфигурация, несоответствие параметров.

Далее рассмотрим каждую группу отдельно.

Проблемы на стороне клиента

Самый частый случай — клиент не умеет импортировать REALITY. Например, некоторые мобильные приложения ещё не поддерживают REALITY или делают это только в платной версии. Проверьте актуальную версию клиента и документацию.

Типичные ошибки:

  • Установлена старая версия v2rayNG, Shadowrocket, Nekoray и т.п. Обновите до последней версии.
  • Клиент не поддерживает параметр spx или sid. Убедитесь, что параметры не обязательны для вашего клиента.
  • QR-код повреждён или распознан неверно. Попробуйте увеличить яркость экрана или отсканировать с другого устройства.
  • Ссылка была скопирована с лишним пробелом или переводом строки. Скопируйте заново.

Ошибки в конфигурации core (Xray или Sing-box)

Если клиент поддерживает REALITY, но импорт выдаёт ошибку, возможно, ссылка сформирована не по стандарту. Импорт в Xray-core и sing-box требует строгого соответствия параметрам.

Проверьте:

  • Префикс vless:// обязателен. Не перепутайте с vmess://.
  • Параметр security=reality — если его нет, импорт будет воспринимать ссылку как обычный VLESS без REALITY.
  • Параметры pbk (publicKey) и fp (fingerprint) должны быть указаны и не содержать пробелов. В некоторых клиентах они называются publicKey и fingerprint.
  • Если используется sing-box, обратите внимание, что он может требовать параметр reality в JSON, а не в ссылке. При импорте через ссылку sing-box автоматически конвертирует url в нужный формат, но если ссылка нестандартная, импорт не сработает.

Пример правильной ссылки для Xray можно посмотреть в официальной документации. Наиболее подробно протокол описан в документации XTLS.

Сетевые и DNS-проблемы

Иногда импорт проходит успешно, но при подключении возникают ошибки — и это не проблема QR-кода. Однако возможна ситуация, когда клиент при импорте выполняет проверку доступности сервера и не может её завершить.

Что проверить:

  • Доступен ли сервер: пропингуйте IP (ping 123.123.123.123). Если сервер не отвечает, проверьте, запущен ли Xray.
  • Порт открыт? Используйте telnet IP PORT или онлайн-инструменты. Если порт закрыт, возможно, его блокирует провайдер.
  • DNS: если в ссылке используется доменное имя вместо IP, убедитесь, что DNS-сервер клиента может его разрешить. Попробуйте сменить DNS на 8.8.8.8 или 1.1.1.1.
  • Некоторые клиенты по умолчанию подставляют порт 443, если порт не указан. Убедитесь, что порт явно прописан.

Проблемы на сервере

Сервер — ключевое звено. Если конфигурация на сервере не совпадает с параметрами в QR-коде, подключение невозможно даже при корректном импорте. Проверьте:

  • Xray (или sing-box) на сервере запущен и работает. Выполните systemctl status xray или посмотрите логи.
  • Версия Xray на сервере актуальна: xray version.
  • Параметры publicKey, shortId, spiderX, serverNames, dest в конфигурации сервера точно соответствуют тем, что закодированы в QR-коде. Особенно проверьте shortId — пустая строка и ноль — это разные вещи.
  • Убедитесь, что dest указывает на реальный сайт с поддержкой TLS (например, www.microsoft.com:443). Иначе хендшейк REALITY не будет работать.

Пошаговая диагностика

Выполните следующие шаги, чтобы локализовать проблему:

  1. Декодируйте QR-код вручную или с помощью онлайн-инструмента, чтобы получить ссылку. Сравните её с эталоном из конфигурации.
  2. Проверьте поддерживаемость REALITY в вашем клиенте. Загляните в официальный репозиторий или GitHub проекта.
  3. Обновите клиент и ядро до последних версий. Часто исправления добавляются в новых релизах.
  4. Импортируйте ссылку в другой клиент (например, v2rayN на Windows) — если там импорт проходит, проблема именно в вашем клиенте.
  5. Проверьте сетевую доступность сервера с устройства, где импортируется QR-код.
  6. Изучите логи на сервере: tail -f /var/log/xray/access.log — вы увидите входящие подключения и ошибки.

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

  • Использование пробелов в ссылке: URL-кодирование обязательно. Пробелы заменяйте на %20.
  • Неправильное кодирование специальных символов +, /, = в параметрах. Они не должны быть экранированы.
  • Добавление переводов строки или символа # внутри имени. Имя должно идти после # и не содержать пробелов.
  • Копирование части ссылки — QR-код может быть повреждён при печати или сканировании.

Когда проблема не в QR-коде

Если импорт прошёл успешно, но подключение не устанавливается, это уже не проблема импорта. Нужно проверять логи клиента, сетевые настройки, брандмауэр, а также корректность конфигурации сервера. Важно различать ошибки импорта (ошибка парсинга ссылки) и ошибки подключения (timeout, TLS handshake failure). Первые указывают на проблему в самом QR-коде или клиенте, а вторые — на сеть или сервер.

В любом случае, если вы не уверены в деталях, загляните в официальную документацию Xray-core или sing-box. Там описаны точные форматы ссылок и примеры конфигураций.

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

  • Дата проверки: 2024-12-01
  • Среда: Xray-core v1.8.0, sing-box v1.9.0
  • Версии: Xray-core v1.8.0,sing-box v1.9.0

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

  • Проверить формат ссылки: vless://...?security=reality&pbk=...&fp=...&sni=...&sid=...&spx=...
  • Убедиться, что клиент поддерживает REALITY и обновлён до актуальной версии.
  • Протестировать импорт в другом клиенте (например, v2rayN).
  • Проверить доступность сервера: ping, telnet, онлайн-инструменты.
  • Сверить параметры QR-кода с конфигурацией сервера (publicKey, shortId, spiderX, serverNames, dest).
  • Изучить логи клиента и сервера на предмет ошибок.
  • Обновить ядро (Xray-core или sing-box) и на клиенте, и на сервере.

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

  • Замена параметра pbk на publicKey в ссылке (для Xray используйте pbk).
  • Отсутствие параметра security=reality.
  • Использование пробелов или нестандартных символов без URL-кодирования.
  • Неправильный формат shortId (должен быть hex, например, 96a1b2c3d4e5f678).
  • Ссылка скопирована с лишними символами или обрезана.
  • Использование протокола vmess:// вместо vless://.

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

FAQ

Что делать, если при импорте QR-кода REALITY появляется ошибка «invalid configuration»?

Проверьте, что ссылка начинается с vless://, параметр security=reality присутствует, все значения правильно закодированы. Возможно, клиент не поддерживает какой-то параметр (например, spx). Обновите клиент и попробуйте импортировать в другой программе.

Почему на Android QR-код не сканируется, а на Windows импортируется?

Скорее всего, проблема в приложении Android — оно либо не поддерживает REALITY, либо устарело. Попробуйте обновить v2rayNG или использовать клиент, который точно поддерживает REALITY, например, NekoBox.

Какие параметры обязательны в ссылке REALITY для Xray-core?

Обязательны: UUID, адрес сервера, порт, encryption=none, security=reality, pbk (публичный ключ), fp (fingerprint), sni. Параметры sid и spx опциональны, но должны быть согласованы с сервером.

Может ли DNS влиять на импорт QR-кода?

Обычно нет, так как импорт — это просто разбор ссылки. Но если клиент при импорте пытается определить доступность сервера, неправильный DNS приведёт к ошибке. Если импорт проходит, но подключение не работает, проверьте DNS.

Что означает ошибка «connection reset» при подключении после успешного импорта?

Это означает, что сервер доступен, но не может завершить TLS-хендшейк. Причина скорее всего в неверной конфигурации REALITY на сервере (dest, serverNames, shortId). Проверьте логи сервера.

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

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

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

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

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