todo/xray/project-x.md
loop-uh 482ef21393
All checks were successful
Published content check / validate (push) Successful in 3s
Сохранить локальные статьи о FIDO и VLESS
Добавить новый раздел о стандартах FIDO, статьи о VLESS Encryption и слоях VLESS, а также несжатую иллюстрацию диагностики MTProxy. Обновить связанные материалы и направить ссылки на исходники новых статей в Forgejo.
2026-08-07 15:52:30 +03:00

177 lines
30 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
date: 2026-07-17
tags:
- xray
- xtls
- vless
- reality
- censorship
- history
aliases:
- Project X
- Xray-core
- Xray
- XTLS
link: https://github.com/XTLS/Xray-core
---
# 🛰️ Project X (Xray-core): что это за проект и откуда он взялся
> [!info] О чём заметка
> Обзорная заметка о **Project X** — проекте вокруг ядра **Xray-core** и протоколов **XTLS** и **REALITY**, на которых сегодня работает большинство VLESS-серверов для обхода блокировок. Здесь — история проекта (от V2Ray до форка и нынешних дней), объяснение его ключевых технологий и карта экосистемы. Устройство самого протокола VLESS подробно разобрано в отдельной заметке [[xray/vless|Протокол VLESS]]; разбор актуальных методов детекта связки VLESS+REALITY — в [[VLESS/dpi-tls-june-2026|разборе схемы ограничений июня 2026]].
## TL;DR
- **Project X** — организация на GitHub ([XTLS](https://github.com/XTLS)), развивающая ядро **Xray-core**, протокол маскировки **REALITY** и семейство технологий XTLS. Сайт: [xtls.github.io](https://xtls.github.io/en/).
- Xray-core — это **форк V2Ray** (ноябрь 2020), случившийся из-за лицензионного конфликта вокруг XTLS-патча. Автор XTLS и VLESS — анонимный разработчик **RPRX** — ушёл из v2fly и основал собственный проект.
- Главная идея всех технологий проекта — сделать прокси-трафик **неотличимым от обычного HTTPS**: XTLS убирает двойное шифрование, Vision маскирует паттерны «TLS внутри TLS», REALITY позволяет прикрываться настоящим чужим сайтом без собственного домена.
- Сегодня Xray — де-факто стандарт обхода DPI-цензуры в Иране, Китае и России; вокруг него выросла экосистема клиентов (v2rayN, v2rayNG, Hiddify, Streisand) и панелей (3x-ui, Marzban).
- Лицензия — MPL-2.0, версии с ~2024 года календарные (например v26.7.11 = 11 июля 2026).
## Предыстория: V2Ray и исчезновение автора
Чтобы понять Xray, нужно начать с его прародителя. **V2Ray (Project V)** — платформа для построения прокси-сетей, созданная анонимным разработчиком под псевдонимом **Victoria Raymond**; первый релиз вышел 18 сентября 2015 года ([Wikipedia](https://en.wikipedia.org/wiki/V2Ray)). V2Ray принёс протокол **VMess** и модульную архитектуру «ядро + транспорты», ставшую образцом для всех последующих инструментов обхода цензуры.
Около февраля 2019 года автор V2Ray перестал выходить на связь, и проект остался без владельца. Сообщество реорганизовало разработку под новой организацией **v2fly** (репозиторий v2fly/v2ray-core), где проект живёт до сих пор.
> [!note] «Victoria Raymond — девушка»? Не подтверждено
> Женское имя «Victoria» породило устойчивое мнение, что автора V2Ray — женщина, а заодно эту «женскость» переносят и на RPRX (автора Xray). На деле git-история того же проекта показывает, что тот же аккаунт чаще подписывался **мужским** именем «Darien Raymond», так что реальный пол автора неизвестен, а не женский. Полный разбор — в [[xray/authors-v2ray-xray|отдельной заметке про авторов V2Ray и Xray]].
Проще говоря: V2Ray — «дедушка» современных VLESS-серверов, потерявший автора и перешедший под управление сообщества. Именно внутри этого сообщества и созрел конфликт, породивший Xray.
## Форк: лицензионный конфликт вокруг XTLS (ноябрь 2020)
Разработчик под псевдонимом **RPRX** создал для v2ray-core два ключевых компонента: протокол [[xray/vless|VLESS]] (лёгкая замена VMess) и технологию **XTLS** (см. ниже). Точная механика конфликта (по разбору сообщества в [v2fly discussions #688](https://github.com/v2fly/v2ray-core/discussions/688)) такова: код XTLS был опубликован, но под **проприетарной лицензией**, не удовлетворяющей требованиям OSI. Это ломало сборку Debian-пакета (Debian принимает только OSI-совместимый код). Мейнтейнер Debian-пакета попросил RPRX перелицензировать XTLS под открытую лицензию — RPRX отказался (обсуждение [XTLS/Go #9](https://github.com/XTLS/Go/issues/9)). Тогда мейнтейнер предложил ([v2ray-core #2789](https://github.com/v2ray/v2ray-core/issues/2789)) убрать XTLS из ядра, чтобы сохранить Debian-пакет. Сообщество проголосовало — «отказаться от Debian-пакета или удалить XTLS» — и **выбрало удалить XTLS** (это произошло в версии v2ray-core 4.33.0).
> [!warning] Мотивы сторон — предмет спора, а не установленный факт
> В том же обсуждении [#688](https://github.com/v2fly/v2ray-core/discussions/688) участники **расходятся в оценке**, почему RPRX отказался открыть лицензию. Одни называют это «личной выгодой» (私利) и виной за раскол; другие считают такую оценку несправедливой и предлагают судить по первичной переписке в XTLS/Go #9. Ещё один участник резюмирует: «враг должен быть один — GFW». Это **оценки и приписывание мотивов**, а не документированный факт; заметка их не разделяет. Достоверно лишь то, что RPRX считал XTLS своей личной разработкой и не согласился передать решение о лицензии сообществу.
>
> Отдельная линия ретроспективы (комментарии 2025 года в [XTLS/Go #9](https://github.com/XTLS/Go/issues/9)): часть участников считает, что конфликт во многом раздут **недопониманием из-за машинного перевода** (китайский ↔ английский). По их прочтению, упаковщик Debian (rogers0) по-английски писал вполне вежливо, без «морального давления» — он лишь просил убрать из лицензии строку «Only for compiling executables usage for now», делающую код несвободным, и сожалел, что иначе Debian-пакет придётся снять. Резкость же возникла из восприятия RPRX плюс атак в китайских чатах вне самого issue. Это тоже интерпретация, но она смягчает картину «злого умысла» с обеих сторон.
RPRX вместе со сторонниками ушёл и основал **Project X**. 25 ноября 2020 года вышел **Xray-core v1.0.0** — форк v2ray-core (по README Xray — от коммита `9a03cc5`), объединивший бинарники `v2ray` и `v2ctl` в один `xray` и включивший полную поддержку VLESS и XTLS. Полная родословная ядер (Shadowsocks → V2Ray → v2fly → Xray) с разбором, где code-fork, а где идейное наследование, — в [[xray/v2fly-vs-xray|сравнении v2fly и Xray]]. На старте Xray был функциональным супермножеством V2Ray (всё то же плюс XTLS), но с тех пор проекты разошлись: сам Project X предупреждает, что Xray больше не является drop-in-заменой v2ray-core. Лицензия Xray-core — MPL-2.0.
> [!note] Кто такой RPRX
> RPRX — анонимный автор и бессменный лидер [[sing-box/protocols-origin|Project X]], дизайнер VLESS, XTLS, XTLS-Vision, REALITY и XHTTP (по био профиля [github.com/rprx](https://github.com/rprx): «VLESS & XTLS & REALITY & XHTTP»). Личность намеренно не раскрыта — официальное кредо проекта прямо гласит «It doesn't matter who we are» («неважно, кто мы»). Коммиты и релизы подписываются верифицированной GPG-подписью.
> [!warning] Миф «Xray-core создала девушка» — не подтверждён
> В русскоязычном сообществе RPRX нередко упоминают в женском роде и говорят, что ядро «написала девушка». **Публичных подтверждений этому нет.** Ни в профиле GitHub, ни в README, ни в официальной хронике, ни в релизах RPRX не указывает своё имя, пол, гендер или местоимения и никогда не делал(а) заявлений о женской идентичности. Женский род в чатах и ассоциация с аниме-аватаром — это конвенция и мем сообщества, а не факт: никнейм, аватар и языковые привычки чужих людей не являются заявлением человека о себе. Что известно достоверно: RPRX — псевдонимная фигура, реальные имя, пол и личность официально не раскрыты. Поэтому корректно писать о создателе нейтрально, не приписывая пол.
## Ключевые технологии
### VLESS: протокол без лишнего шифрования
**VLESS** — транспортный протокол прокси, придуманный RPRX как облегчённый наследник VMess. В отличие от VMess, VLESS не шифрует полезную нагрузку сам — шифрование делегируется внешнему слою (TLS, REALITY), и не требует синхронизации времени между клиентом и сервером. Подробный разбор протокола — в заметке [[xray/vless|Протокол VLESS]]; здесь важно одно: VLESS — это «скелет», а вся маскировка живёт уровнем ниже, в XTLS/REALITY.
### XTLS: убрать «TLS внутри TLS»
Классический прокси-через-TLS страдает **двойным шифрованием**: пользователь открывает HTTPS-сайт (первый слой TLS), и этот уже зашифрованный поток заворачивается во второй TLS-туннель до прокси-сервера. Это и лишняя нагрузка на CPU, и — главное — детектируемый цензором паттерн «TLS-in-TLS».
Идея **XTLS**: раз внутренний трафик уже зашифрован настоящим TLS 1.3, внешний слой после рукопожатия можно не шифровать повторно, а передавать внутренний поток напрямую. Ранние режимы **Direct** и **Splice** (Splice использует zero-copy механизм ядра Linux) давали почти нулевые накладные расходы — Xray спокойно работал даже на роутерах с OpenWRT.
Проще говоря: XTLS перестаёт «заворачивать письмо в второй конверт» — раз письмо уже запечатано, его пересылают как есть, экономя силы и не создавая подозрительно толстый конверт.
Важно не путать уровни: XTLS — это **не шифр и не протокол**, а механизм управления потоком поверх уже установленного TLS/REALITY. Подробный разбор терминологии (VLESS vs XTLS vs REALITY — что есть что) и механики паддинга/splice — в отдельной заметке [[xray/xtls-vision|XTLS и Vision]].
### XTLS-Vision: ответ на детект TLS-in-TLS (осень 2022)
Ранние режимы XTLS со временем научились детектировать: у прямой передачи вложенного TLS остаются характерные размеры и тайминги пакетов. Осенью 2022 года, на фоне волны блокировок прокси-серверов в Китае, RPRX выпустил новый flow-режим **XTLS-Vision** (`xtls-rprx-vision`) — он дополняет (паддит) первые пакеты соединения, размывая сигнатуру вложенного рукопожатия. Vision быстро стал рекомендуемым режимом по умолчанию для VLESS-серверов и на 2026 год остаётся единственным живым режимом XTLS (старые `origin`/`direct`/`splice` удалены). Как именно Vision паддит пакеты и когда переходит в zero-copy splice — в заметке [[xray/xtls-vision|XTLS и Vision]].
> [!warning] Точность дат
> Точные дни релизов Vision (осень 2022) и REALITY (весна 2023) в доступных источниках не зафиксированы — даты в заметке ориентировочные, по релиз-циклу Xray-core и обсуждениям в сообществе.
### REALITY: прикрыться настоящим чужим сайтом (2023)
**REALITY** ([github.com/XTLS/REALITY](https://github.com/XTLS/REALITY)) — замена классического серверного TLS, появившаяся весной 2023 года. До неё владельцу прокси нужен был собственный домен и сертификат (например, от Let's Encrypt) — а сам факт «свежий домен + сертификат + странный трафик» уже был сигналом для цензора.
REALITY работает иначе: сервер при рукопожатии **проксирует настоящий TLS-handshake реального стороннего сайта** (например, крупного публичного домена). Цензор, проверяющий сервер активным зондированием (active probing), получает настоящий ответ настоящего сайта — отличить прокси от легитимного сервера снаружи не получается. Легитимный же клиент, знающий ключ, получает временный сертификат и устанавливает туннель. Итог: не нужен свой домен, нет серверного TLS-отпечатка, есть защита от active probing.
Проще говоря: сервер REALITY притворяется чужим известным сайтом так убедительно, что при проверке он и есть этот сайт — «своим» он открывается только по секретному ключу. Как устроено зеркалирование ClientHello на реальный сайт, криптографическая метка в SessionId и временный сертификат на HMAC — подробно в отдельной заметке [[xray/reality|REALITY]].
Актуальный статус на 2026 год: REALITY по-прежнему криптографически не вскрыт, но цензоры сместились на **поведенческий анализ** соединений (тайминги, объёмы, эвристики) — подробный разбор этой схемы в [[VLESS/dpi-tls-june-2026|заметке про DPI-эвристики июня 2026]], а связанные риски настройки — в [[VLESS-SOCKS5-vulnerability]] и [[VLESS-localhost-protection-guide]].
### XHTTP: транспорт через CDN (2024)
**XHTTP** (изначально SplitHTTP, середина 2024; переименован и расширен к концу 2024) — транспорт, маскирующий трафик под обычные HTTP-запросы с раздельными путями upload/download. Главное применение — прохождение через CDN вроде Cloudflare: цензор видит соединение с CDN, а не с прокси-сервером. В Project X его позиционируют как направление «Beyond REALITY» ([обсуждения Xray-core](https://github.com/XTLS/Xray-core/discussions)). Разбор режимов `packet-up`/`stream-up`/`stream-one`, XMUX и механики маскировки — в отдельной заметке [[xray/xhttp|XHTTP]].
## Экосистема и распространение
Xray-core — это только ядро без графического интерфейса. Вокруг него выросла экосистема:
| Слой | Примеры | Роль |
|---|---|---|
| Ядро | Xray-core, sing-box (совместимая альтернатива, см. [[sing-box/sing-box-extended\|sing-box-extended]]) | Реализация протоколов |
| Клиенты | v2rayN (Windows), v2rayNG (Android), Hiddify, Streisand (iOS), NekoBox | GUI для пользователя |
| Панели | 3x-ui, x-ui, Marzban | Управление сервером и пользователями |
Массовое применение — страны с DPI-цензурой: Иран, Китай, Россия. В российском контексте связка VLESS+REALITY на арендованном VPS — один из основных методов обхода наряду с локальными инструментами вроде [[Zapret/about|zapret]] и альтернативными протоколами вроде [[Hysteria/00-overview|Hysteria 2]].
## Xray vs v2fly сегодня: в чём разница
После форка 2020 года в мире V2Ray живут **два независимых ядра одновременно**, и оба на 2026 год активно развиваются — это не «оригинал и заброшенный форк», а два параллельных проекта с разными мейнтейнерами и разным фокусом.
> [!important] Кто где из авторов — частая путаница
> Автор скандала вокруг лицензии XTLS — **RPRX** — ушёл и с тех пор ведёт именно **Xray-core (Project X)**, а НЕ v2fly. Распространённое заблуждение «поругавшийся автор теперь сидит на v2ray-core» — неверно: [v2fly/v2ray-core](https://github.com/v2fly/v2ray-core) мейнтейнит **команда сообщества** (та, что подхватила проект после исчезновения Victoria Raymond), и XTLS они из своего ядра как раз выпилили. То есть RPRX не «живёт на втором проекте» — он основал свой, третий по счёту (V2Ray → v2fly → Xray), и развивает его.
Проще говоря: V2Ray создала Victoria Raymond и пропала; сообщество продолжило её проект как **v2fly**; RPRX поругался с этим сообществом из-за лицензии и отпочковал **свой** Xray. Сегодня v2fly и Xray — соседи-конкуренты, каждый со своей командой.
### Оба проекта живы (на июль 2026)
- **Xray-core (Project X):** ~40 тыс. звёзд, календарные версии (v26.7.11 = 11 июля 2026), выкладываются часто. Фокус — агрессивное развитие антицензурных технологий.
- **v2fly/v2ray-core:** ~34 тыс. звёзд, семантические версии (последняя — v5.52.0 от 7 июля 2026), релизы примерно раз в 46 недель ([releases](https://github.com/v2fly/v2ray-core/releases)). Проект **не заморожен**: в него продолжают добавлять свои экзотические транспорты (WebRTC-туннель, Google Docs Viewer transport, X-Forwarded-For для gRPC), но в другом направлении, чем у Xray.
### Технические различия
| | Xray-core (Project X) | v2fly/v2ray-core |
|---|---|---|
| Мейнтейнер | RPRX и команда Project X | Команда сообщества v2fly |
| Общие протоколы | VMess, VLESS, Shadowsocks, Trojan, SOCKS, Dokodemo | те же |
| VLESS | Полный, с XTLS-flow (Vision) | Есть, но **без** XTLS-Vision |
| XTLS-Vision | Есть (эксклюзив) | Нет |
| REALITY | Есть (эксклюзив) | Нет |
| XHTTP / XUDP | Есть (эксклюзив) | Нет |
| [[xray/vless-encryption\|VLESS Encryption]] (пост-квант) | Есть (с v25.9.5, сентябрь 2025) | Нет |
| Свои транспорты | XHTTP и др. | WebRTC-туннель, Google Docs Viewer и др. |
| Лицензия | MPL-2.0 | MIT |
| Совместимость | Официально **больше не** drop-in-замена v2ray-core | — |
### Разница в философии
Главное различие — не в списке галочек, а в направлении. **Xray** сфокусирован на «войне с DPI»: почти все громкие антицензурные новшества последних лет (Vision, REALITY, XHTTP, пост-квантовое шифрование VLESS) рождаются именно здесь, часто как срочный ответ на новые методы блокировок в Китае, Иране и России. **v2fly** держит более консервативную линию классического V2Ray с упором на стабильность и широкий набор транспортов, но без «фирменных» XTLS/REALITY.
Именно поэтому в странах с жёстким DPI (Иран, Китай, Россия) на практике преобладает Xray-core — связка VLESS+REALITY возможна только на нём, и большинство популярных клиентов (v2rayN, v2rayNG, Hiddify, Streisand) и панелей (3x-ui, Marzban) собраны вокруг него.
## Исходный код: что и где ресёрчить
Xray-core — открытый проект на Go, весь код доступен для изучения. Если цель — понять, как VLESS и REALITY устроены «под капотом», ориентиры в репозитории [github.com/XTLS/Xray-core](https://github.com/XTLS/Xray-core) такие:
| Путь в репозитории | Что там |
|---|---|
| `proxy/vless/` | Сам протокол VLESS: формат заголовка, аккаунты, inbound/outbound-обработчики |
| `proxy/vless/encoding/` | Кодирование запросов/ответов VLESS и addons (в т.ч. flow) |
| `proxy/proxy.go` | Логика XTLS-Vision: паддинг и обработка вложенного TLS |
| `transport/internet/reality/` | Интеграция REALITY на стороне ядра (сам протокол — в отдельном репозитории [XTLS/REALITY](https://github.com/XTLS/REALITY)) |
> [!note] Локальная копия для ресёрча — модуль vpnbot
> В инфраструктуре vpnbot есть собственный управляющий модуль `xray_core` (локально: `G:\Privacy\vpnbot_codex\xray_core`, основной файл `manager.py`, ~2700 строк Python). Важно не путать: это **не исходники ядра Xray**, а обвязка над ним — менеджер, который по SSH управляет установленным на серверах Xray-core: правит файл managed-inbounds (`50_vpnbot_managed_inbounds.json`), валидирует конфиг, перезапускает сервис `vpnbot-xray.service`, ходит в gRPC-API ядра (`127.0.0.1:10085`) и в online-трекер соединений. По части VLESS модуль сам проставляет клиентам flow `xtls-rprx-vision`, когда inbound работает по TCP с security `reality`/`xtls` — то есть в нём видно, как описанные выше технологии применяются в реальной боевой инфраструктуре. Рядом в `vpnbot_codex` лежат и сервисы жизненного цикла VLESS-клиентов (`vless_revocation_service.py`, `vless_state_reconcile_service.py`, `user_vless_fingerprint_manager.py` и др.).
## 📚 См. также
- [[xray/v2fly-vs-xray|v2fly vs Xray]] — сравнение Xray-core с родительским v2ray-core по коду: что общего от форка, что разошлось
- [[xray/authors-v2ray-xray|Кто стоит за V2Ray и Xray]] — авторы (RPRX, Victoria/Darien Raymond), разбор мифов о личности, «исчезновение» 2019
- [[xray/vless|Протокол VLESS]] — подробное устройство и возможности протокола
- [[xray/xtls-vision|XTLS и Vision]] — терминология XTLS/Vision/REALITY и механика flow
- [[xray/reality|REALITY]] — как прокси прикрывается настоящим чужим сайтом
- [[xray/xhttp|XHTTP]] — транспорт через CDN, режимы packet-up/stream-up/stream-one
- [[xray/clients-and-routing|Клиенты и маршрутизация]] — как подключиться (HAPP и др.) и развести трафик
- [[Clash/08-vs-sing-box|mihomo против sing-box и Xray]] — чем экосистема Xray отличается от Clash/mihomo и sing-box, и когда что выбирать
- [[xray/routing|Маршрутизация в Xray]] — правила, geosite/geoip, балансировщики изнутри
- [[VLESS/dpi-tls-june-2026|DPI TLS heuristics 2026]] — как DPI детектит VLESS+REALITY поведенчески
- [[VLESS-SOCKS5-vulnerability]] и [[VLESS-localhost-protection-guide]] — риски неправильной настройки
- 🔗 [github.com/XTLS/Xray-core](https://github.com/XTLS/Xray-core) — репозиторий ядра
- 🔗 [xtls.github.io](https://xtls.github.io/en/) — официальная документация Project X
- 🔗 [Wikipedia: V2Ray](https://en.wikipedia.org/wiki/V2Ray) — история прародителя
---
> [!quote] 🤖 Эти статьи открыты — можно обучать на них ИИ
> При желании вы можете натренировать ИИ на наших статьях. Исходное форматирование и скачивание всего репозитория одним zip-архивом доступны в Forgejo: [исходник этой заметки](https://git.zapret.moe/zapretdiscordyoutube/todo/src/branch/main/xray/project-x.md) · [весь репозиторий](https://git.zapret.moe/zapretdiscordyoutube/todo/src/branch/main).