Формат подписок VLESS
- title
- Формат подписок VLESS
- type
- concept
- summary
- Разделённый переводами строк base64-список URI VLESS для V2RayN, Clash и подобных клиентов
- tags
- vpn, vless, proxy, format
- created
- 2026-04-09
- updated
- 2026-04-09
- lang
- ru
- translation_of
- vless-subscription-format
- source_updated
- 2026-04-09
- translated
- 2026-09-01
- translator
- lllm/antigravity/gemini-3.7-flash-high
Подписка VLESS - это стандартный способ, с помощью которого клиенты вроде V2RayN, V2RayA, Clash, SingBox, mihomo и Happ получают список серверов от провайдера. Это не какой-то сложный протокол, а обычный HTTP-эндпоинт, который возвращает список VLESS URI в кодировке base64, по одной ссылке на строку. Вставляете URL эндпоинта в поле "подписка" в клиенте, а дальше клиент делает всё сам: декодирует, парсит каждый URI, собирает конфигурации серверов и периодически обновляет их.
Кодирование намеренно примитивное. VLESS URI выглядит как vless://<uuid>@<host>:<port>?<query>#<remark>, а подписка - это base64 от всех URI, склеенных через перевод строки. Никаких конвертов (envelope), метаданных или версионирования - просто base64 поверх списка с разделителем строк. Клиенты, появившиеся раньше этого формата, могли добавить его поддержку за вечер, поэтому он и прижился.
Строка запроса (query string) в каждом URI содержит все параметры транспорта и TLS: type=ws|tcp|grpc, security=tls|reality, sni=, pbk= (открытый ключ Reality), fp= (отпечаток uTLS), flow=xtls-rprx-vision и так далее. Разные провайдеры отдают разные комбинации в зависимости от того, какой транспорт и какие методы обхода DPI они используют. Клиент, читающий подписку, должен понимать все эти параметры, поэтому V2RayN, V2RayA, Clash и SingBox содержат парсер VLESS, покрывающий весь спектр возможных опций.
Подписки работают только по модели pull и не требуют никакой аутентификации, кроме самого URL. Любой, у кого есть ссылка, получает полный список серверов, то есть сам URL выступает в роли учётных данных. Провайдеры меняют URL, когда хотят отозвать доступ. Никаких аккаунтов, токенов и плясок с refresh-токенами - вся модель аутентификации сводится к фразе "знаешь URL".
Благодаря этой простоте и существуют конвертеры подписок вроде happ-subscription-converter. Получив список в base64, его можно раздавать откуда угодно. Формат никак не привязывает список к конкретному клиенту, конкретному устройству или временному окну. Любые ограничения со стороны клиента (например, учёт HWID у Happ) проверяются на апстрим-эндпоинте, а не в самом формате, поэтому переноса списка за прокси-скрипт достаточно, чтобы обойти эти проверки.
Дискриминация клиентов на стороне эндпоинта - это лазейка, которую провайдеры закрывают, возвращая разное содержимое разным клиентам (см. happ-proxy). Сам формат защитить себя не может - это делает только эндпоинт.