Конфигурации и JSON

ОБНОВЛЕНО 28 ИЮЛЯ 2026 ЧТЕНИЕ 5 МИН
УЧАСТОК СТРОКИ, О КОТОРОМ ИДЁТ РЕЧЬ
  1. happ://add/ действие
  2. https:// схема
  3. sub.provider.ru адрес
  4. /s/a7f3c9d1 токен
  5. #Мой доступ метка

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

Когда конфиг действительно нужен

  • Свой сервер: параметры задаёте вы, ссылки-подписки нет.
  • Роутер или мини-ПК в роли шлюза — там графического клиента не будет, подробнее.
  • Сложная маршрутизация с несколькими исходящими соединениями.
  • Отладка: посмотреть, что именно приложение отправляет на сервер.

Во всех остальных случаях JSON только усложняет: он не обновляется сам и устаревает вместе с сервером.

Минимальная структура

{
  "outbounds": [
    {
      "protocol": "vless",
      "settings": {
        "vnext": [{
          "address": "node-de1.example.net",
          "port": 443,
          "users": [{
            "id": "a7f3c9d1-2b4e-4c8a-9f11-77ab21c0e5d3",
            "encryption": "none",
            "flow": "xtls-rprx-vision"
          }]
        }]
      },
      "streamSettings": {
        "network": "tcp",
        "security": "reality",
        "realitySettings": {
          "serverName": "www.microsoft.com",
          "publicKey": "xJ8…",
          "shortId": "6ba85179",
          "fingerprint": "chrome"
        }
      }
    }
  ]
}

Это тот же ключ vless://, только развёрнутый. Все значения берутся из строки один в один: адрес и порт — из части после @, идентификатор — из части до @, остальное — из параметров после ?. Разложить свою строку на поля можно инструментом.

Обязательные поля

ПолеЧто задаётЕсли ошибиться
protocolПротокол исходящего соединенияСоединение не поднимется
address, portКуда подключатьсяТайм-аут
idВаш идентификаторСервер закроет соединение
securityТип защиты: reality, tls, noneОшибка TLS
serverName / sniИмя домена в рукопожатииРукопожатие не пройдёт
publicKey, shortIdПараметры RealityСервер не ответит
fingerprintПод какой браузер маскируется TLSОбычно работает, но менее стабильно

Типовые ошибки разбора

  1. Массив вместо объекта. Файл начинается с [ — приложение ждёт объект с полем outbounds.
  2. Конфиг не от того ядра. Формат sing-box отличается от Xray: поля называются иначе. Приложение скажет, что структура неверна.
  3. Хвостовая запятая. JSON её не прощает — ошибка будет в неожиданной строке.
  4. Порт строкой. "port": "443" вместо "port": 443 — частая причина отказа.
  5. Скопировано с переносами. Длинные ключи Reality при переносе строки ломаются.

Куда класть маршрутизацию

Правила живут в отдельном блоке routing и в приложении настраиваются через интерфейс — вручную писать их обычно не нужно. Собрать готовый блок правил можно конструктором, а разобраться, как они устроены, — в статье о правилах.

ПРОВЕРКА

Проверьте, в приложении дело или в подписке

Вставьте в тот же клиент заведомо рабочую ссылку. Подключилось — приложение исправно, менять нужно подписку. Демо ТОК VPN на 3 дня выдаётся без карты.

Где взять готовый конфиг?

У того, кто дал вам доступ: панель управления сервером умеет отдавать и ссылку, и JSON. Готовые конфиги из чатов — это те же чужие ключи со всеми оговорками: про бесплатные.

Можно ли собрать JSON из ссылки-подписки?

Не напрямую: подписка — это список ключей. Сначала возьмите из неё конкретный сервер, потом разверните его ключ в конфиг.

Приложение импортировало JSON, но соединения нет

Структура верная, значения — нет. Чаще всего расходятся publicKey, shortId или serverName: сверьте их с исходным ключом.

СМОТРИТЕ ТАКЖЕ
Эта страница помогла?