Xray-core — это сетевое ядро из экосистемы Project X. Оно не является готовым VPN-сервисом, тарифом или приложением с одной кнопкой. Core выполняет техническую работу: принимает входящие подключения, отправляет исходящие подключения, применяет маршрутизацию, использует DNS-модуль, пишет логи и реализует протоколы вроде VLESS, VMess, Trojan, Shadowsocks, WireGuard и Hysteria.
В пользовательском языке Xray часто называют «VPN», потому что многие клиенты поднимают системный VPN/TUN-режим и отправляют трафик через Xray-core. Точнее разделять уровни: приложение показывает интерфейс, профиль хранит параметры, Xray-core выполняет сетевую логику, а сервер или панель управления отвечают за конкретный доступ. Если «Xray не работает», причина может быть в любом из этих уровней.
#Где находится Xray-core в клиентах и серверах
На клиентском устройстве Xray-core обычно спрятан внутри приложения. Пользователь видит Hiddify, Nekoray, NekoBox, v2rayN, Streisand, V2RayTun или другой интерфейс, но подключение может выполнять bundled core — встроенная версия Xray. Поэтому в диагностике важны две версии: версия приложения и версия ядра. Новый интерфейс не гарантирует поддержку свежего Reality, XHTTP, flow или VLESS Encryption, если внутри старый core.
На сервере Xray-core чаще работает как отдельный процесс или служба. Его конфигурацию может генерировать панель, например 3x-ui или другая оболочка, но в итоге сервер все равно запускает Xray с config.json или набором конфигурационных файлов. Панель удобна для пользователей, портов и QR-кодов; ядро отвечает за то, какой inbound слушает порт, какие users разрешены и куда отправлять трафик дальше.
- Клиент принимает ссылку, подписку или QR-код, создает outbound и отправляет трафик на сервер.
- Сервер слушает inbound, проверяет пользователя, принимает транспорт и выпускает трафик через outbound.
- Панель упрощает управление пользователями и ссылками, но не заменяет понимание core при сложных ошибках.
- Подписка передает клиенту параметры профилей; она может устареть независимо от версии Xray-core.
#Какие протоколы поддерживает Xray-core
Xray-core — не один протокол. Это платформа, в которой разные inbound и outbound протоколы можно соединять с разными транспортами. В официальной документации среди inbound/outbound протоколов встречаются VLESS, VMess, Trojan, Shadowsocks, Socks, HTTP, WireGuard, Hysteria и служебные варианты вроде DNS, Freedom, Blackhole и Loopback. В реальных пользовательских профилях чаще всего видны VLESS, VMess, Trojan, Shadowsocks и WireGuard.
Отдельно стоит понимать transport. Протокол отвечает за смысл соединения и аутентификацию, а transport отвечает за способ передачи данных между узлами. В Xray для этого используется streamSettings: там задают network и security. Например, network=raw, network=ws, network=grpc, network=xhttp и security=reality или security=tls. Если на клиенте выбран WebSocket, а сервер ожидает RAW, соединение не установится, даже если UUID и порт правильные.
VLESS
Переходите к настройке VLESS
Если вы уже понимаете, как работает VLESS, получите данные для подключения и добавьте их в совместимое приложение.
#Основные блоки config.json
Конфигурация Xray обычно описывается JSON-файлом. GUI-клиент может не показывать его напрямую, но внутри все равно есть похожая модель: входы, выходы, DNS, маршруты, транспорт и логи. Официальная документация перечисляет базовые модули конфигурации, среди них version, log, dns, routing, policy, inbounds, outbounds, transport, stats, metrics и другие.
| Блок | Что означает | Почему важен |
|---|---|---|
inbounds | Где Xray принимает трафик. | На клиенте это может быть локальный SOCKS/HTTP/TUN-вход, на сервере — VLESS/Trojan/VMess-порт. |
outbounds | Куда Xray отправляет трафик. | На клиенте outbound ведет к серверу, на сервере обычно есть прямой выход freedom или другой следующий hop. |
streamSettings | Transport и транспортная безопасность. | Здесь находятся network, security, realitySettings, tlsSettings, grpcSettings, wsSettings и похожие поля. |
routing | Правила, которые выбирают outbound. | Через routing делят прямой и проксируемый трафик, блокируют домены, выбирают узел по тегу. |
dns | Встроенный DNS-модуль. | Ошибки DNS могут выглядеть как неработающий VPN: подключение есть, а домены не открываются. |
log | Access/error логи и уровень подробности. | Без логов трудно понять, это отказ аутентификации, таймаут, ошибка TLS/Reality или проблема маршрута. |
Главная практическая идея: Xray связывает элементы по тегам. Inbound получает трафик, routing смотрит правила, outbound отправляет его дальше. Если тег написан с ошибкой, правило может не сработать. Если первый outbound в списке не тот, трафик может уходить не туда при отсутствии совпадений в routing. Если DNS настроен отдельно, приложение может резолвить домены иначе, чем ожидает пользователь.
#Как Xray-core связан с VLESS
VLESS — один из протоколов, которые реализует Xray-core. Официальная документация описывает его как легкий протокол без сохранения состояния, разделенный на inbound и outbound части; он служит мостом между Xray-клиентом и сервером и использует UUID для аутентификации. Поэтому фраза «у меня Xray» обычно неполная: нужно уточнить, какой именно протокол и какая связка включены.
На сервере VLESS inbound содержит список клиентов: clients, id, flow, level, иногда email для учета. На клиенте VLESS outbound содержит адрес, порт, id, encryption, flow и транспортные настройки. В ссылке это превращается в строку vless://..., где часть параметров попадает в query string: type, security, sni, fp, pbk, sid, path, serviceName.
Важно: VLESS не равен Reality. VLESS отвечает за прокси-протокол и пользователя. Reality задается в transport/security-слое через streamSettings.security и realitySettings. TLS — другой вариант транспортной безопасности. RAW, WebSocket, gRPC, XHTTP и HTTPUpgrade — варианты передачи данных. Ошибка в любом слое может выглядеть одинаково: «профиль импортировался, но не подключается».
#Reality, TLS и XTLS Vision
Reality в Xray — это режим транспортной безопасности. В документации он находится рядом с TLS в разделе способов передачи: security может быть none, tls или reality. Для Reality важны serverName/SNI, public key, shortId, fingerprint и поддержка со стороны клиента. Если клиент старый и не понимает Reality-поля, простая замена названия протокола на VLESS не поможет.
XTLS Vision — это режим flow, который часто встречается в связке VLESS + Reality + RAW. В профилях он выглядит как flow=xtls-rprx-vision. Flow не заменяет Reality и не является отдельным сервером: это режим управления потоком, который должен соответствовать конфигурации. В документации VLESS указано, что пустой flow означает обычный TLS proxy, а xtls-rprx-vision включает новый XTLS-режим.
VLESS + Reality + RAW + xtls-rprx-vision означает: протокол VLESS, транспортная безопасность Reality, передача через RAW/TCP и flow Vision. VLESS + TLS + WebSocket использует тот же VLESS, но другой security и другой transport.#Версии и совместимость
Версия Xray-core имеет прямое значение. Новые релизы добавляют поля, транспорты, исправления совместимости и изменения поведения. На момент проверки 5 мая 2026 года страница GitHub Releases показывает Xray-core v26.5.3 от 3 мая 2026 года как pre-release, а блок Releases на главной странице репозитория может показывать более старый Latest v26.3.27 от 27 марта 2026 года. Поэтому для точной проверки лучше смотреть страницу Releases и конкретный тег, а не только карточку репозитория.
В клиентах проблема сложнее: приложение может иметь собственную версию и отдельно bundled core. Если профиль использует XHTTP, новые параметры Reality, VLESS Encryption или специфичный flow, старый core может импортировать ссылку частично, проигнорировать поле или выдать неочевидную ошибку. При сравнении «на телефоне работает, на компьютере нет» проверяйте не только операционную систему, но и версию ядра внутри клиента.
- Если профиль новый, а клиент давно не обновлялся, сначала проверьте поддержку transport/security/flow.
- Если сервер обновили, а старые клиенты перестали подключаться, ищите несовместимые параметры или изменение ссылки.
- Если панель генерирует ссылку, убедитесь, что она генерирует формат, который понимает выбранный клиент.
- Если инструкция упоминает
tcp, помните, что в новых документах Xray для точности используетсяraw, при сохранении совместимости с прежним именем.
#Логи Xray-core
Логи — главный инструмент диагностики. В Xray есть access log и error log. Access log показывает факты подключений, а error log — предупреждения и ошибки ядра. В конфигурации log можно указать пути к файлам, уровень loglevel, DNS-логи и маскирование адресов через maskAddress. Если путь не задан, вывод может идти в stdout; значение none отключает соответствующий лог.
Уровень warning обычно подходит для обычной работы. debug полезен на короткое время, когда нужно поймать ошибку рукопожатия, DNS или маршрутизации, но такие логи могут быть шумными и содержать чувствительные адреса. Перед отправкой логов в поддержку или публичный чат включайте маскирование IP или вручную удаляйте UUID, домены, адреса серверов, subscription URL и личные метки пользователей.
| Уровень | Когда использовать |
|---|---|
debug | Краткая глубокая диагностика: transport, DNS, routing, TLS/Reality, неожиданные отказы. |
info | Проверка обычного запуска и статуса без максимальной детализации. |
warning | Повседневный режим: видны проблемы, которые могут повлиять на работу. |
error | Только серьезные ошибки, когда Xray не может нормально работать. |
none | Логи отключены; удобно для приватности, плохо для диагностики. |
#Типовые ошибки и что проверять
Ошибки Xray редко объясняются одним словом. Одна и та же фраза в клиенте может означать разные причины: сервер недоступен, порт закрыт, UUID не совпадает, Reality-параметры неверны, DNS сломан или routing отправляет трафик в неправильный outbound. Проверяйте от простого к сложному и меняйте одну настройку за раз.
- Connection refused. На адресе и порту никто не слушает, порт закрыт firewall, серверная служба не запущена или панель сгенерировала не тот порт.
- Timeout / i/o timeout. Пакеты не доходят, IP заблокирован, сеть фильтрует соединение, неправильный transport или сервер отвечает слишком долго.
- Invalid user / rejected. Обычно проблема в UUID/id, user level, списке clients на сервере или в том, что подключаетесь не к тому inbound.
- TLS handshake failed. Проверьте SNI/serverName, сертификат, ALPN, дату на устройстве, домен и включенную проверку сертификата.
- Reality handshake не проходит. Сравните
pbk,sid,fp,sni,spiderXи поддержку Reality в версии core. - Профиль импортировался, но сайты не открываются. Смотрите DNS, routing, TUN, split tunneling, выбранный outbound и правила для доменов.
- Работает в одном клиенте, но не работает в другом. Сравните bundled core, поддержку XHTTP/Reality/Vision, формат ссылки и то, не потерял ли клиент параметры при импорте.
- После обновления стало хуже. Проверьте release notes, изменившиеся параметры панели, старые подписки и возможность временно откатиться на предыдущую рабочую конфигурацию.
#Что Xray-core не гарантирует
Xray-core — мощный сетевой инструмент, но он не гарантирует приватность, скорость или доступность сам по себе. Владелец сервера видит технические метаданные подключений, сайты видят IP выхода, DNS может уходить не тем маршрутом, а неправильно настроенный клиент может отправлять часть приложений мимо туннеля. Безопасность определяется всей схемой: источником профиля, сервером, транспортом, DNS, routing, версией core и поведением приложения.
Не стоит включать небезопасные настройки только потому, что «так заработало». Отключенная проверка сертификата, публично опубликованный UUID, случайная подписка из чата или устаревший core могут создать больше проблем, чем исправить. Если нужно разбирать сбой, начните с версии ядра, полного типа связки, логов с маскированием и сравнения параметров клиента и сервера.
#Краткий итог
Xray-core лучше понимать как движок, который соединяет протоколы, транспорты, маршруты, DNS и логи. VLESS — один из протоколов внутри этого движка. Reality — слой транспортной безопасности. XTLS Vision — режим flow. Клиентское приложение и серверная панель делают работу удобнее, но не отменяют базовую модель Xray: inbound принимает, routing выбирает, outbound отправляет, streamSettings задает transport/security, а логи показывают, где именно ломается цепочка.