Конвертация JSON в VLESS: онлайн-инструменты, форматы и частые ошибки

Подробный разбор способов конвертации JSON-конфигов в ссылки VLESS: онлайн-конвертеры, форматы sing-box и Xray-core, особенности Reality, транспорты и решение типичных проблем.

Зачем нужна конвертация JSON в VLESS

Современные прокси-протоколы, такие как VLESS, VMess, Trojan и Shadowsocks, обычно распространяются в виде компактных ссылок (URI), которые легко импортировать в мобильные и десктопные клиенты. Однако при настройке сервера или роутера часто приходится работать с JSON-конфигами — структурированными файлами, которые понимают ядра Xray, sing-box и V2Ray. Возникает задача преобразования одного формата в другой.

JSON-конфиг описывает параметры подключения: адрес сервера, порт, UUID, метод шифрования, транспорт (WebSocket, gRPC и т.д.), а также настройки TLS или Reality. Ссылка VLESS собирает все эти параметры в одну строку, что делает её удобной для обмена и импорта. Например, строка vless://uuid@host:port?params#tag содержит всю необходимую информацию.

Конвертация требуется в нескольких сценариях:

  • Вы получили JSON-конфиг от провайдера или сгенерировали его на панели 3X-UI, а хотите импортировать в мобильный клиент.
  • Нужно перенести конфигурацию с одного устройства на другое, где поддерживаются только ссылки.
  • Вы используете роутер с OpenWrt и хотите добавить прокси через podkop, который принимает VLESS-ссылки.
  • Необходимо преобразовать серверный inbound-конфиг в клиентскую ссылку для раздачи друзьям.

Без конвертера пришлось бы вручную разбирать JSON и собирать ссылку, что чревато ошибками. Специализированные инструменты автоматизируют этот процесс и минимизируют риск потери параметров.

Форматы JSON: sing-box и Xray-core

Существует два основных семейства JSON-конфигов, с которыми приходится сталкиваться: конфиги для ядра Xray (и его форка V2Ray) и конфиги для sing-box. Они имеют разную структуру, и конвертер должен уметь определять, с каким форматом он работает.

Xray-core / V2Ray использует конфиг с массивами inbounds и outbounds. Каждый элемент массива содержит поля protocol, settings, streamSettings и другие. Например, VLESS-клиент (outbound) выглядит примерно так:

{
  "outbounds": [{
    "protocol": "vless",
    "settings": {
      "vnext": [{
        "address": "example.com",
        "port": 443,
        "users": [{"id": "uuid", "encryption": "none"}]
      }]
    },
    "streamSettings": {
      "network": "ws",
      "security": "reality",
      "realitySettings": {
        "serverName": "example.com",
        "fingerprint": "chrome",
        "publicKey": "...",
        "shortId": "..."
      },
      "wsSettings": {"path": "/"}
    }
  }]
}

sing-box использует более современный и строгий формат. Поля называются иначе: type вместо protocol, server вместо address, server_port вместо port, tls вместо security и т.д. Пример outbound VLESS в sing-box:

{
  "outbounds": [{
    "type": "vless",
    "server": "example.com",
    "server_port": 443,
    "uuid": "uuid",
    "tls": {
      "enabled": true,
      "server_name": "example.com",
      "utls": {"enabled": true, "fingerprint": "chrome"}
    },
    "transport": {
      "type": "ws",
      "path": "/"
    }
  }]
}

Конвертер должен распознавать оба формата и корректно извлекать параметры. Некоторые инструменты также поддерживают серверные конфиги (inbound), где адрес сервера часто указан как 0.0.0.0 — в этом случае требуется ручной ввод публичного адреса.

Онлайн-конвертеры: обзор возможностей

Существует несколько онлайн-инструментов для конвертации JSON в VLESS и обратно. Рассмотрим два популярных варианта.

V2RAY-CONVERTER — это HTML-приложение, которое работает локально в браузере. Оно поддерживает конвертацию не только VLESS, но и VMess, Trojan, Shadowsocks, WireGuard и Hysteria. Инструмент умеет обрабатывать как одиночные конфиги, так и целые списки (подписки), а также предоставляет дополнительные функции: фильтрацию по ключевым словам, GeoIP-определение страны, HTTP-ping для проверки задержки, дедупликацию и замену параметров. Важно отметить, что конвертер работает без интернета, но для GeoIP и пинга требуется подключение.

Конвертер JSON → VLESS на openwrt-router.ru — это веб-инструмент, который специализируется на преобразовании JSON-конфигов sing-box и Xray-core в ссылки VLESS, VMess, Trojan, Shadowsocks и Hysteria2. Он автоматически определяет формат и сторону (клиент/сервер), вычисляет публичный ключ Reality из приватного, если он отсутствует, и поддерживает несколько пользователей в одном конфиге. Все вычисления выполняются локально в браузере, данные не отправляются на сервер.

Также существуют универсальные конвертеры, например, на esit24.ru, которые помимо VLESS URI и Xray JSON могут генерировать конфиги для MikroTik, Clash Meta YAML и sing-box JSON, а также QR-коды для быстрого импорта в мобильные приложения.

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

Пошаговая инструкция: как конвертировать JSON в VLESS

Процесс конвертации обычно прост и занимает несколько секунд. Рассмотрим типичный сценарий с использованием онлайн-конвертера.

  1. Откройте конвертер в браузере. Убедитесь, что инструмент поддерживает нужный формат (sing-box или Xray-core).
  2. Скопируйте JSON-конфиг из файла или панели управления. Это может быть полный конфиг с массивами inbounds/outbounds или отдельный блок.
  3. Вставьте JSON в специальное поле ввода. Некоторые конвертеры автоматически определяют формат и сразу показывают результат.
  4. Проверьте параметры. Если конфиг серверный (inbound) и содержит адрес 0.0.0.0, введите публичный IP или домен вручную. Также убедитесь, что указаны все необходимые поля: UUID, порт, SNI, публичный ключ Reality и т.д.
  5. Нажмите кнопку конвертации. Результат появится в виде ссылки vless://....
  6. Скопируйте ссылку и импортируйте её в нужный клиент: v2rayNG, NekoBox, Shadowrocket, sing-box и другие.

Если конвертер поддерживает пакетную обработку, вы можете вставить сразу несколько JSON-конфигов (каждый с новой строки) и получить список ссылок. Это удобно для подписок.

Некоторые инструменты позволяют сразу сгенерировать QR-код для ссылки — это упрощает импорт на мобильные устройства: достаточно отсканировать код камерой.

Особенности конвертации серверных конфигов (inbound)

Серверные конфиги (inbound) описывают, как сервер принимает подключения. Они часто содержат адрес 0.0.0.0 или ::, что означает «слушать на всех интерфейсах». Такой адрес не является публичным, поэтому конвертер не может автоматически подставить его в ссылку. Вам придётся вручную указать реальный IP-адрес или домен сервера.

Ещё одна особенность серверных конфигов — наличие приватного ключа Reality вместо публичного. В клиентской ссылке нужен именно публичный ключ (pbk). Хорошие конвертеры умеют вычислять публичный ключ из приватного по алгоритму X25519. Если ваш инструмент этого не делает, вам придётся использовать отдельный генератор ключей Reality.

Также серверные конфиги могут содержать несколько пользователей в массиве users (sing-box) или clients (Xray-core). Конвертер должен создать отдельную ссылку для каждого пользователя, используя его UUID или пароль. Если у пользователя задано имя, оно станет меткой ссылки, иначе — user1, user2 и т.д.

Наконец, серверные конфиги часто не содержат параметров TLS, таких как serverName или fingerprint, поскольку они задаются на стороне клиента. В этом случае вам придётся добавить их вручную в ссылку, иначе подключение может не работать.

Поддерживаемые протоколы и транспорты

Большинство конвертеров поддерживают не только VLESS, но и другие распространённые протоколы: VMess, Trojan, Shadowsocks, Hysteria2, а иногда и WireGuard. Это позволяет использовать один инструмент для всех типов конфигураций.

VLESS — современный протокол без собственного шифрования, полагается на TLS или Reality. Отличается высокой производительностью и низким потреблением ресурсов.

VMess — более старый протокол из семейства V2Ray, добавляет собственное шифрование поверх транспорта, что немного снижает скорость.

Trojan — маскирует трафик под обычный HTTPS, используя настоящий TLS-сертификат.

Shadowsocks — простой протокол с одним паролем и методом шифрования (например, aes-256-gcm).

Hysteria2 — работает поверх UDP/QUIC, оптимизирован для нестабильных сетей, но требует, чтобы UDP не был заблокирован провайдером.

Что касается транспортов, конвертеры обычно поддерживают:

  • tcp — обычный TCP без дополнительной обёртки;
  • ws (WebSocket) — часто используется для маскировки под веб-трафик;
  • grpc — HTTP/2-based транспорт;
  • http / httpupgrade — транспорт поверх HTTP;
  • xhttp — новый транспорт из Xray-core.

Для каждого транспорта могут быть свои параметры: path, host, serviceName, mode и т.д. Конвертер должен корректно переносить их в ссылку.

Reality и XTLS Vision: что нужно знать

Reality — это технология, которая позволяет маскировать VLESS-трафик под реальное TLS-соединение с легитимным сайтом. Она использует пару ключей: приватный (на сервере) и публичный (на клиенте). При конвертации JSON в VLESS важно правильно указать публичный ключ (pbk) и short_id.

Если в конфиге есть только приватный ключ (типично для серверных конфигов), конвертер должен вычислить публичный ключ по алгоритму X25519. Некоторые инструменты делают это автоматически, другие требуют ручного ввода.

short_id — это короткий идентификатор Reality, который может быть представлен массивом значений. Конвертер обычно берёт первый непустой элемент, но если вам нужен другой, придётся заменить его в ссылке вручную.

XTLS Vision — это технология, которая улучшает производительность VLESS за счёт использования flow параметра xtls-rprx-vision. Конвертер должен переносить это поле в ссылку как flow=xtls-rprx-vision. Это особенно важно для современных клиентов, поддерживающих Vision.

При использовании Reality убедитесь, что SNI (serverName) и fingerprint совпадают с настройками сервера. Неправильный SNI — одна из самых частых причин неудачного подключения.

Частые ошибки при конвертации и их решение

Даже с хорошим конвертером могут возникать проблемы. Рассмотрим типичные ошибки и способы их устранения.

1. Ссылка не подключается. Причины могут быть разными:

  • Сервер не запущен или порт закрыт файрволом. Проверьте доступность сервера с помощью ping или telnet.
  • Неправильно указан адрес сервера (опечатка, неверный порт).
  • Не совпадают SNI или fingerprint с настройками Reality на сервере.
  • Для UDP/QUIC-трафика (Hysteria2) не открыты соответствующие порты.

2. Потеря параметров при конвертации. Некоторые конвертеры могут не поддерживать определённые транспорты или параметры. Например, в клиенте Exclave есть ошибка экспорта/импорта транспорта TCP+HTTP, при которой теряется параметр path. В таких случаях проверяйте результат и при необходимости добавляйте недостающие параметры вручную.

3. Конвертер не распознаёт формат. Убедитесь, что вы скопировали JSON полностью, включая все скобки. Также проверьте, поддерживает ли инструмент формат sing-box или Xray-core — они отличаются.

4. Нет адреса сервера в ссылке. Это происходит при конвертации серверного конфига. Введите публичный адрес вручную.

5. Проблемы с Clash. Конвертация в Clash YAML может быть ограничена: Clash не поддерживает некоторые транспорты (gRPC, KCP) и параметры TLS (SNI, ALPN). Если вам нужен Clash, выбирайте конвертер, который явно поддерживает эту функцию, или используйте промежуточный формат.

Безопасность и приватность при использовании онлайн-конвертеров

При работе с конфиденциальными данными (UUID, ключи, адреса серверов) важно убедиться, что конвертер не отправляет их на сторонние серверы. Лучшие инструменты выполняют все вычисления локально в браузере на JavaScript. Это означает, что данные не покидают ваше устройство.

Как проверить, что конвертер безопасен?

  • Откройте инструменты разработчика в браузере (F12) и перейдите на вкладку «Сеть». Если при конвертации не появляется исходящих запросов, значит, данные не отправляются.
  • Отключите интернет после загрузки страницы и попробуйте конвертировать. Если инструмент продолжает работать, он полностью локальный.
  • Обратите внимание на HTTPS-соединение — оно защищает данные при передаче, но если конвертер локальный, это не критично.

Также будьте осторожны с онлайн-сервисами, которые предлагают конвертацию «на сервере». Они могут логировать ваши конфиги. Для максимальной безопасности используйте локальные HTML-файлы или инструменты с открытым исходным кодом.

Помните, что даже локальный конвертер может использовать внешние сервисы для дополнительных функций, таких как GeoIP или проверка IP. В этом случае данные (IP-адреса конфигов) могут быть отправлены на эти сервисы. Если это вас беспокоит, отключите такие функции.

Альтернативные способы: ручная сборка и скрипты

Если онлайн-конвертер не подходит или вы хотите автоматизировать процесс, можно использовать скрипты или собирать ссылку вручную.

Ручная сборка. Ссылка VLESS имеет формат:

vless://UUID@address:port?type=TRANSPORT&security=SECURITY&sni=SNI&pbk=PUBLIC_KEY&fp=FINGERPRINT&sid=SHORT_ID&flow=FLOW#TAG

Параметры зависят от транспорта и безопасности. Например, для WebSocket добавляются path и host, для gRPC — serviceName. Этот способ подходит, если у вас простой конфиг, но при большом количестве параметров легко ошибиться.

Скрипты. Можно написать скрипт на Python или JavaScript, который парсит JSON и генерирует ссылку. Например, на 4PDA обсуждается скрипт-конвертер, созданный с помощью ИИ. Такие скрипты можно адаптировать под свои нужды.

Консольные утилиты. Некоторые ядра, такие как Xray или sing-box, имеют встроенные команды для работы с конфигами. Например, xray run -test проверяет конфиг, но не конвертирует его в ссылку. Однако существуют сторонние утилиты, которые могут это делать.

Если вы используете роутер с OpenWrt, можно установить пакет v2ray-converter или использовать скрипты для автоматической конвертации подписок. Это удобно для регулярного обновления списка серверов.

В целом, для разовых задач достаточно онлайн-конвертера, а для регулярного использования лучше автоматизировать процесс.

Вопросы и ответы

Какие онлайн-конвертеры JSON в VLESS существуют?

Популярные варианты: V2RAY-CONVERTER (HTML-приложение, работает локально, поддерживает многие протоколы), конвертер на openwrt-router.ru (специализируется на sing-box и Xray-core, вычисляет публичный ключ Reality), а также универсальные инструменты вроде esit24.ru, которые дополнительно генерируют QR-коды и конфиги для MikroTik и Clash.

Можно ли конвертировать JSON в VLESS без интернета?

Да, если конвертер работает локально в браузере. Например, V2RAY-CONVERTER и конвертер на openwrt-router.ru выполняют все вычисления на JavaScript и не отправляют данные на сервер. Вы можете отключить интернет после загрузки страницы, и инструмент продолжит работать. Однако функции, требующие внешних сервисов (GeoIP, ping), будут недоступны.

Что делать, если в JSON только приватный ключ Reality?

Для клиентской ссылки нужен публичный ключ. Некоторые конвертеры автоматически вычисляют его из приватного по алгоритму X25519. Если ваш инструмент этого не делает, используйте отдельный генератор ключей Reality или вручную подставьте публичный ключ, полученный от сервера.

Почему в сгенерированной ссылке нет адреса сервера?

Это происходит при конвертации серверного конфига (inbound), где адрес указан как 0.0.0.0 или ::. Такой адрес не является публичным. Вам нужно вручную ввести реальный IP-адрес или домен сервера в поле конвертера перед генерацией ссылки.

Какие транспорты поддерживаются при конвертации в VLESS?

Обычно поддерживаются tcp, ws (WebSocket), grpc, http/httpupgrade и xhttp. Для каждого транспорта могут быть свои параметры (path, host, serviceName и т.д.), которые конвертер переносит в ссылку. Убедитесь, что выбранный инструмент поддерживает нужный транспорт.

Можно ли конвертировать JSON в VLESS для использования на роутере?

Да, сгенерированную ссылку можно использовать в podkop на OpenWrt или в других прокси-клиентах для роутеров. Также существуют конвертеры, которые сразу выдают конфиг для MikroTik или Clash. Для роутера важно, чтобы ядро (Xray или sing-box) поддерживало все параметры ссылки.

Что делать, если ссылка не подключается после конвертации?

Проверьте: 1) запущен ли сервер и открыт ли порт; 2) правильность адреса и порта; 3) совпадение SNI и fingerprint с настройками Reality; 4) наличие UDP-портов для Hysteria2. Также проверьте логи на сервере (например, logread -e sing-box) — там будет указана причина.