Happ VPN

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 с описанием сервера — реальные адреса и ключи в таком файле заменяют на свои:

JSON
{
  "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-массив, добавленный вручную или ссылкой, остаётся статичным, пока пользователь не заменит его новым файлом.

Упомянутые темы

Разделы по теме

Источники

  1. Документация Happ: примеры ссылок и параметры — обращение 28 сентября 2026
  2. Документация Happ: маршрутизация — обращение 28 сентября 2026
  3. Документация Happ: ошибки — обращение 28 сентября 2026