Ядро, а не протокол

Ядро Xray-core

Xray — это ядро, а не протокол. Оно умеет одновременно работать с VLESS, VMess, Trojan, Shadowsocks и несколькими другими транспортами, а поверх них добавляет собственный движок маршрутизации.

Обновлено

Ядро Xray-core

Профиль по четырём осям

Скорость86
Незаметность94
Стабильность86
Простота настройки44

Оценки сравнительные, в пределах этой таблицы: 100 — лучший показатель среди рассмотренных протоколов, а не абсолютная величина.

Когда выбиратьXray нужен тем, кто настраивает сервер или клиент вручную; обычному пользователю ядро достаётся уже упакованным внутри приложения.

Ключевые характеристики

Что этоСетевое ядро, реализующее набор протоколов
Год появления2020, ответвление от проекта V2Ray
ЯзыкGo, сборки под все настольные и мобильные системы
ПротоколыVLESS, VMess, Trojan, Shadowsocks, SOCKS, HTTP
Ключевая связкаVLESS + Reality с потоком XTLS-Vision
КонфигурацияJSON: входящие, исходящие и правила маршрутизации
Роль в клиентахРаботает внутри приложения, пользователь его не видит

Сильные стороны

  • Один процесс закрывает практически все актуальные транспорты — не нужно держать несколько программ.
  • Реализация Reality появилась именно здесь, и она остаётся эталонной.
  • Движок маршрутизации по доменам и подсетям избавляет от внешних правил в системе.
  • Написано на Go: одна статическая сборка без зависимостей, легко переносится между машинами.
  • Открытый код и активное сообщество, вопросы разбираются публично.

Ограничения

  • Порог входа высокий: конфигурация в JSON без графического интерфейса и без значений по умолчанию для половины полей.
  • Ошибка в структуре файла обычно ведёт к отказу запуска с сообщением, которое мало что объясняет.
  • Ядро на Go расходует больше памяти, чем реализация в ядре системы: 40–90 МБ против единиц мегабайт у WireGuard.
  • Формат конфигурации периодически меняется, и старые примеры из сети быстро устаревают.
Схема работы протокола Xray
Как проходит соединение: от клиента до целевого сервиса
Устройство

Что отличает Xray

Несколько протоколов сразу

Одно ядро принимает соединения по VLESS и отдаёт их через Trojan или Shadowsocks. Смена протокола не требует смены программы — меняется только раздел конфигурации.

Движок маршрутизации

Правила по домену, IP-подсети, стране, порту и процессу-источнику. Российские сервисы идут напрямую, остальное — через выбранный маршрут, и всё это внутри одного процесса.

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

Структура из трёх частей: откуда принимать, куда отдавать и по каким правилам выбирать. Формат читаемый, но многословный: рабочий файл легко занимает 150 строк.

Быстрый цикл разработки

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

Ядро, а не протокол — почему это важно

Путаница возникает постоянно: «подключиться по Xray» звучит так же естественно, как «подключиться по WireGuard», но означает совсем другое. WireGuard — это спецификация протокола. Xray — программа, реализующая целый набор чужих спецификаций.

Когда в профиле написано «Xray», на деле имеется в виду один из протоколов, которые это ядро умеет: чаще всего VLESS с Reality, иногда Trojan или Shadowsocks. Ядро лишь исполняет протокол, а вся логика транспорта описана в других документах.

Практическое следствие: сравнивать Xray с WireGuard по скорости или незаметности некорректно. Сравнивать нужно протоколы. Ядро влияет на результат другим — качеством реализации, накладными расходами и тем, насколько быстро в нём появляются новые возможности.

Движок маршрутизации внутри ядра

Самая недооценённая часть Xray — не транспорт, а маршрутизация. Ядро принимает соединение, смотрит на домен назначения, IP-адрес, порт и иногда на процесс-источник, после чего решает, в какой из настроенных исходящих каналов его отправить.

Каналов может быть несколько: один через удалённый сервер, второй напрямую, третий — в никуда. Правила описываются списками доменов и подсетей, есть готовые наборы, обновляемые сообществом. Типичная схема: российские сервисы и банки идут напрямую, локальные адреса тоже, всё остальное — через сервер.

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

Формат конфигурации

Файл настроек — это JSON с несколькими разделами верхнего уровня. Основные три: входящие соединения, исходящие соединения и правила выбора между ними. Дополнительно описываются журналирование, встроенный резолвер имён и интерфейс управления.

Многословность здесь принципиальная: каждый транспорт имеет собственный набор полей, и общих значений по умолчанию почти нет. Минимальный рабочий клиентский файл занимает 60–80 строк, серверный с правилами маршрутизации — 150–250.

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

Почему большинство пользователей его не видит

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

Профиль подписки, который вы вставляете в приложение, — это, по сути, сжатое описание исходящего соединения. Клиент разворачивает его в полноценный JSON, добавляет свои правила маршрутизации и передаёт ядру. Всё это занимает доли секунды и остаётся невидимым.

Ручная работа с ядром нужна в двух случаях: при настройке собственного сервера и при нестандартной схеме маршрутизации, которую интерфейс клиента не покрывает. В остальных ситуациях знать о существовании Xray полезно, но пользоваться им напрямую не приходится.

Вопросы

Частые вопросы

Xray — это протокол?
Нет. Это ядро, то есть программа, реализующая несколько протоколов сразу: VLESS, VMess, Trojan, Shadowsocks и другие. Когда говорят «подключение по Xray», подразумевают один из них, чаще всего VLESS с Reality.
Чем Xray отличается от V2Ray?
Xray — ответвление от V2Ray, сделанное в 2020 году. Ключевые отличия: собственные разработки XTLS и Reality, более быстрый цикл релизов и заметная оптимизация обработки соединений. Базовая совместимость по конфигурации сохранена.
Нужно ли устанавливать Xray отдельно?
Обычному пользователю — нет. Ядро уже встроено в клиентские приложения и запускается автоматически. Отдельная установка нужна тем, кто поднимает собственный сервер или собирает нестандартную схему маршрутизации.
Сколько ресурсов потребляет ядро?
В покое 25–40 МБ оперативной памяти, при активной передаче на скорости 500 Мбит/с — 60–90 МБ и около 12–18% одного процессорного ядра. Это больше, чем у реализаций внутри ядра системы, но приемлемо даже для домашнего роутера среднего класса.
Xray или sing-box — что выбрать?
Xray сильнее в связке VLESS с Reality и раньше получает новые транспорты. Sing-box удобнее универсальностью и системой наборов правил, а его сборки лучше покрывают мобильные платформы. Для большинства сценариев разница в скорости в пределах 3–5%.
Все протоколы в одном клиенте

Xray включён во все платные тарифы

Транспорт выбирается в настройках клиента одним пунктом, доплаты за него нет. Если Xray в вашей сети перестал подниматься, соседний протокол обычно работает — переключение занимает секунды и не требует переустановки.

Подписка оформляется в Telegram-канале сервиса · Безлимитный трафик · Поддержка круглосуточно