JSON-конфигурация: что это
- Автор
- Екатерина Лебедева, редактор раздела knowledge base
- Проверил:
- Артём Волков
- Проверено:
- Опубликовано:
- , обновлено
- Версия гайда:
- 1.0
Коротко
JSON-конфигурация в Happ — это описание сервера в родном формате Xray-core, а не короткая ссылка вида vless://. Happ передаёт такой JSON ядру без изменений, поэтому маршрутизация приложения к нему не применяется.
Обычная ссылка вроде vless:// или trojan:// — это сокращённая запись, которую Happ сам разбирает на параметры перед запуском Xray-core. JSON-конфигурация устроена иначе: это готовый файл настроек ядра, и приложение передаёт его целиком, без изменений (принцип 1:1). Правила маршрутизации самого Happ к такому серверу не применяются, но выбор GEO-файлов и удалённый DNS всё равно берутся из активного профиля маршрутизации. JSON-конфигурацию можно получить в подписке, а также передать в буфер обмена, QR-кодом или файлом через функцию «Поделиться».
JSON-конфигурация — формат Xray-core для описания сервера — JSON-объект или массив объектов, который Happ передаёт ядру без изменений, в отличие от ссылок вида vless:// или vmess://, которые приложение сначала разбирает на отдельные параметры.
Что такое JSON-конфигурация
Xray-core, на котором работает Happ, умеет запускаться из полноценного JSON-файла настроек: адреса, протоколы, транспорт и правила — всё в одном документе. Такой файл и называют JSON-конфигурацией, в отличие от короткой ссылки вида vless://, которую Happ сначала разбирает на параметры сам.
Документация Happ описывает это как принцип прямой передачи: при запуске ядра JSON-конфигурация передаётся в неизменном виде. Приложение не проверяет и не переписывает её содержимое, а лишь запускает Xray-core с этими настройками.
Из-за этого JSON-конфигурация ведёт себя иначе, чем обычный сервер списка: она работает ровно так, как её описал автор, и любые изменения нужно вносить в сам файл, а не через интерфейс Happ.
Как это работает в Happ
Прямая передача не означает полную независимость от приложения. Happ сохраняет контроль над частью окружения, в котором работает ядро:
- GeoIP и GeoSite — какие базы геоданных получит ядро, определяет выбор пользователя в приложении, а не сама JSON-конфигурация.
- Удалённый DNS — берётся из активного профиля маршрутизации и может быть изменён пользователем.
- Правила маршрутизации — не применяются: JSON-конфигурация сама решает, куда направлять трафик.
Для JSON-подписок это правило усиливается: приложение допускает только 0 или 1 профиль маршрутизации, и изменить его нельзя, в отличие от обычной подписки, где профилей может быть несколько.
Пример структуры
Условный пример минимальной JSON-конфигурации VLESS с описанием сервера — реальные адреса и ключи в таком файле заменяют на свои:
{
"outbounds": [
{
"protocol": "vless",
"settings": {
"vnext": [
{
"address": "example.com",
"port": 443,
"users": [{ "id": "00000000-0000-0000-0000-000000000000" }]
}
]
},
"streamSettings": { "network": "tcp", "security": "tls" }
}
],
"meta": { "serverDescription": "Example" }
}Реальная конфигурация от провайдера обычно длиннее: в ней добавляются транспорт, параметры TLS или Reality и иногда правила маршрутизации ядра, не связанные с профилями Happ.
Отличия от похожих терминов
| Термин | Что это | Отличие от JSON-конфигурации |
|---|---|---|
| Конфигурация | общее название данных одного сервера | JSON-конфигурация — лишь один из форматов записи такой конфигурации |
| Подписка | ссылка на список конфигураций | подписка может отдавать как обычные ссылки, так и JSON-массив |
| Xray-core | ядро, которое исполняет конфигурацию | JSON — формат, который это ядро понимает нативно |
Ссылка vless:// | сокращённая запись параметров | Happ разбирает её сам, а не передаёт ядру как есть |
Если результат работы сервера непредсказуем, а обычные настройки Happ будто бы ни на что не влияют, стоит проверить, не JSON-конфигурация ли это: в таком случае причина — в самом файле, а не в приложении.
Главное
- JSON-конфигурация — готовый файл настроек Xray-core, а не сокращённая ссылка протокола вроде vless:// или trojan://.
- Happ передаёт JSON-конфигурацию ядру без изменений (принцип 1:1): что записано в файле, то и выполняется.
- Правила маршрутизации Happ к JSON-конфигурации не применяются, но выбор GEO-файлов и удалённый DNS берутся из активного профиля.
- Повреждённый JSON приводит к ошибке «Невалидная (массив) конфигурация JSON» с указанием на ошибки в тексте файла.
- Имя сервера в JSON-конфигурации можно задать полем meta.serverDescription, как и base64-описание в обычной ссылке.
Частые вопросы
Чем JSON-конфигурация отличается от обычной ссылки конфигурации?
Ссылка вида vless:// или trojan:// — сокращённая запись, где Happ сам разбирает параметры и передаёт их ядру Xray-core. JSON-конфигурация — это уже готовый файл настроек ядра целиком, и приложение передаёт его без изменений. Из-за этого JSON-конфигурацию нельзя отредактировать через обычные поля Happ: изменения вносятся в сам файл на стороне провайдера или администратора сервера.
Работает ли маршрутизация Happ с JSON-конфигурацией?
Собственные правила маршрутизации приложения к такому серверу не применяются — сервер работает ровно так, как прописано в файле. Но кое-что от Happ всё же наследуется: выбор GEO-файлов и адрес удалённого DNS берутся из активного профиля маршрутизации. Это позволяет провайдеру задать сложную схему в JSON и одновременно оставить пользователю управление DNS и геоданными.
Как передать серверу своё имя в JSON-конфигурации?
Через поле meta с вложенным serverDescription: он заменяет технический текст рядом с именем сервера на произвольную подпись, так же как параметр serverDescription в обычной ссылке. Само имя сервера в списке Happ определяется отдельно, а это поле только уточняет описание под ним. Оба способа используют одинаковую логику отображения.
Что означает ошибка «Невалидная конфигурация JSON»?
Она появляется, если переданный JSON содержит синтаксическую ошибку или недопустимые символы — например, пропущенную скобку или запятую при копировании. Проверьте содержимое буфера обмена перед импортом и убедитесь, что скопирован весь файл целиком, без обрезки в начале или конце. Разбор этой и похожих ошибок Happ — на странице [ошибки](/errors/invalid-json).
Можно ли получить JSON-конфигурацию сервера, который уже добавлен в Happ?
Да, если подписка не зашифрована и не скрыта: смахните сервер вправо, нажмите иконку со стрелкой и выберите «JSON» — Happ покажет или передаст файл конфигурации в этом формате. Так можно перенести сервер на другое устройство или изучить его параметры детально. Для зашифрованной подписки эта функция недоступна.
Поддерживает ли JSON-конфигурация несколько серверов сразу?
Да, JSON-конфигурация может быть массивом из нескольких объектов, и тогда Happ обрабатывает их как набор серверов, а не один. Это отличает её от подписки лишь по механике хранения: подписка обновляется по ссылке, а JSON-массив, добавленный вручную или ссылкой, остаётся статичным, пока пользователь не заменит его новым файлом.
Упомянутые темы
Похожие материалы
- JSON-конфигурации в Happ: передача 1:1 в Xray-core
- Конфигурация в Happ: что это и из чего состоит
- Профиль маршрутизации Happ: что это и из чего состоит
- Remote DNS в Happ: удалённый DNS в профиле маршрутизации
- Импорт JSON-конфигурации в Happ
- Профили маршрутизации
- Невалидная конфигурация JSON в Happ: как найти ошибку
- GEO-файлы
Разделы по теме
Источники
- Документация Happ: примеры ссылок и параметры — обращение 28 сентября 2026
- Документация Happ: маршрутизация — обращение 28 сентября 2026
- Документация Happ: ошибки — обращение 28 сентября 2026