Проверка и диагностика
Уровни проверки
- Строгий JSON, объект в корне, все заглушки заменены.
- Правильный импорт, оболочка, слоты, действия, поля, имя и свободные места.
- Нужные DAT/категории существуют, URL реальные, имена не конфликтуют.
- Сохранение через приложение: libXray создаёт и закрывает instance проекции.
- Запуск только с разрешения пользователя, правами и выбранным интерфейсом. Сохранение не равно запуску.
- Проверка запрошенных proxy/direct/block назначений и DNS с точным отчётом выполненных действий.
Не запускайте Custom с пустыми слотами напрямую через CLI Core. Приложение добавляет проверочные outbounds, затем выбирает реальные узлы для runtime. Это не тест доступности удалённого сервера.
Симптомы
| Симптом | Проверка |
|---|---|
| JSON сразу отклонён | Полная ошибка, синтаксис, корневой объект, путь импорта |
| Неподдерживаемое поле Custom | Удалить только ненужное; иначе поддерживаемый режим/версия без потери требования |
| Неверные outbounds | Custom: 1–3 начальных пустых объекта, продвинутый может добавить вспомогательные outbounds; outbound/Raw: настоящие узлы |
| Ошибка DNS обычного Custom | Фиксированный tag/address: один app-dns-direct; для FakeDNS ещё один app-dns-fake с address fakedns |
| Внутренние имена не работают | Smart/обычный Custom: чистое direct-domain правило, Local DNS и доступность. Продвинутый/Raw: пользовательская DNS-схема и маршруты запросов; одного Tunnel DNS мало |
| Нет DAT/категории | Проверить установленный список, исправить правило/явно импортировать зависимость |
| Ошибка автообновления Geodata | Старые файлы сохраняются; это само по себе не причина ошибки VPN |
| Сохраняется, но не запускается | Настоящая startup-ошибка, реквизиты, порты, права, интерфейс |
| IP-правило пропускается | Раннее доменное/catch-all правило блокирует второй проход |
| Не балансируется | По умолчанию первый outbound; balancer действует по явным правилам |
| Задержка неверна при VPN | Проба может идти через текущий VPN; тестировать с VPN off |
| FakeDNS после restart | Кэш fake IP пережил карту; новый DNS-запрос/перезапуск приложения, проверка bypass |
Безопасный отчёт
Запрашивайте полную нужную ошибку, а не «не работает». Минимальный обезличенный фрагмент с сохранением диагностически важных полей. UUID, пароли, tokens, ключи и subscription URL могут быть секретными; не публикуйте их.
Проверка текста/синтаксиса не позволяет заявлять «соединение работает». Вымышленные реквизиты не дают рабочий сервис.
Сценарии приёмки документации
Дайте помощнику только руководство и задачу: VLESS, корпоративный DNS, Китай/GitHub, неверные Custom-поля, условия protocol/localOS, FakeDNS, совместимость со старой версией, две цепочки, нехватка секретов, приложения Android, Wi-Fi Apple, адаптер Windows, отсутствующая категория, сохранение без успешного запуска.
Ожидаются верный тип или UI-решение, полный JSON при наличии данных, вопросы при их нехватке и честные ограничения. Это критерии оценки, не заявление об уже проведённом независимом тесте модели.
Диагностика резервного копирования
- Файл не читается или не записывается: проверьте место хранения, системные разрешения и доступность поставщика. Облачный файл может потребовать загрузки; локальная запись не подтверждает отправку в облако.
- Нет узлов после восстановления подписок: копия хранит источники, а не кэш узлов. Обновите подписки для получения серверов; ручные узлы и полный Raw JSON восстанавливаются непосредственно.
- Маршруту не хватает GeoData: ожидающие источники не блокируют восстановление записей, но зависимому маршруту нужны файлы. При необходимости подключитесь с другой рабочей конфигурацией и загрузите источники в разделе данных маршрутизации. Не удаляйте правила и не рассчитывайте на загрузку при старте VPN.
Состав копии и правила замены описаны в руководстве. Не публикуйте незашифрованную копию как диагностическое вложение: она может содержать учётные данные узлов, закрытые ключи Age и HWID.