todo/xray/v2fly-vs-xray.md
loop-uh 08b4491545
Some checks failed
Published content check / validate (push) Failing after 3s
Завершить переезд базы знаний на Forgejo
Обновить правила репозитория и подписи исходников в 99 заметках, не затрагивая пользовательские незакоммиченные файлы. Сделать Forgejo Actions содержательным: проверять опубликованный commit, а не пустое рабочее дерево после checkout.
2026-08-07 08:27:28 +03:00

21 KiB
Raw Permalink Blame History

date tags aliases link
2026-07-18
xray
v2ray
v2fly
архитектура
сравнение
v2fly vs Xray
v2ray-core vs Xray-core
Чем отличается v2ray от xray
v2fly/v2ray-core
https://github.com/v2fly/v2ray-core

⚔️ v2fly/v2ray-core против XTLS/Xray-core: чем отличаются два ядра

[!info] О чём заметка Сравнение двух прокси-ядер по исходному коду: v2fly/v2ray-core (продолжение оригинального V2Ray) и XTLS/Xray-core (форк, см. xray/project-x). Что у них общего от форка 2020 года и где они разошлись — по протоколам, транспортам, конфигу, зависимостям и модели управления. Про то, что это разные люди-авторы (RPRX vs Victoria/Darien Raymond), — в заметке xray/authors-v2ray-xray.

[!warning] Источник данных Заметка составлена по прямому разбору исходников обоих репозиториев (снимок на 1718 июля 2026: v2ray-core v5.52.0, Xray-core актуальный main) пятью независимыми проходами по коду и вебу. Пути к файлам и числа со временем поплывут — сверяйся с актуальными репозиториями.

TL;DR

  • Xray — форк v2ray-core примерно 2020 года. Это видно в коде: тела базовых файлов (например core.go) до сих пор почти идентичны, различается брендинг и версия. Их DI-модель, реестр протоколов и набор features/ — общее наследие.
  • Одной строкой: Xray — ужатое, «заточенное под обход блокировок» ядро v2ray плюс собственные антидетект-технологии; v2ray — то же наследие, но развитое в расширяемую платформу.
  • Эксклюзивы Xray: xray/reality, xray/xtls-vision (flow=xtls-rprx-vision), VLESS encryption (пост-квантовое), XHTTP (splithttp), рабочий XUDP. Ничего из этого в v2ray нет вообще.
  • Эксклюзивы v2ray: вторая схема конфига JSONv5 и protobuf-JSON форматы, транспорты QUIC / HTTP-2 / DTLS / domain socket, протоколы Hysteria2 и vlite, платформенные приложения (подписки, REST API, менеджер инстансов, WebRTC).
  • Лицензии разные: v2ray — MIT, Xray — MPL-2.0. Кросс-импортов между кодовыми базами нет — они полностью развязаны.
  • Управление: v2fly — «community edition» с несколькими мейнтейнерами (ведущий — неанонимный Xiaokang Wang / Shelikhoo); Xray центрирован на одном авторе RPRX. Оба проекта живы в 2026 году.

Общий предок: Xray — это форк v2ray

Начать надо с того, что это не два независимых проекта, а родитель и его форк. В отличие от пары sing-box/protocols-origin (которые написаны с нуля и не делят кода), Xray буквально отпочковался от v2ray-core в ноябре 2020 года — README Xray прямо говорит «Xray-core v1.0.0 was forked from v2fly-core».

Родство видно в коде до сих пор. Тело пакета core почти идентично: diff файла core.go в обоих репозиториях показывает, что различаются лишь брендинг («V2Ray» → «Xray»), схема нумерации версий и ASCII-арт в комментарии — сама логика одна. Общими остались: механизм загрузчиков конфига (RegisterConfigLoader), DI-реестр протоколов (common.RegisterConfig / CreateObject), весь набор features/ (dns, inbound, outbound, policy, routing, stats) и базовые приложения app/ (router, dns, dispatcher, proxyman, observatory и даже одинаковый observatory/burst).

Проще говоря: если снять с обоих ядер «фирменные» фичи, под ними обнаружится один и тот же скелет 2020 года. Разошлись именно верхние слои — конфиг, набор протоколов и транспортов, философия развития.

Полная родословная: Shadowsocks → V2Ray → v2fly → Xray

Здесь важно не путать два разных типа «наследования», которые в цепочке смешаны:

  • Идейный преемник — новый код, написанный с нуля и лишь вдохновлённый предшественником (общего кода нет).
  • Code-fork — прямое ответвление кодовой базы (общий код есть).

Разберём цепочку по звеньям:

  1. Shadowsocks (2012, автор под ником clowwindy) — первый массовый инструмент обхода GFW. В августе 2015 clowwindy сообщил, что к нему пришла полиция и потребовала прекратить разработку и удалить код с GitHub (знаменитое прощальное сообщение в issue shadowsocks-iOS #124). Сам Shadowsocks при этом не умер — репозитории заранее перенесли в организацию, права раздали участникам. Как и остальные в этой цепочке, clowwindy — псевдоним, настоящие имя и пол не раскрыты (англоязычная Wikipedia намеренно использует нейтральное «they»); встречающийся в прессе «he» — допущение пересказчиков, а не самоидентификация.
  2. V2Ray / Project V (первый релиз — 18 сентября 2015, автор под псевдонимом xray/authors-v2ray-xray) — появился буквально через месяц после ухода clowwindy, как более мощная и модульная альтернатива. Это НЕ форк кода Shadowsocks: у оригинального репозитория v2ray/v2ray-core нет метки «forked from», и он принёс собственный новый протокол VMess. Связь с Shadowsocks — идейная (ответ на ту же задачу в тот же момент), а не кодовая. Project V — «зонтичный» проект, V2Ray — его ядро.
  3. v2fly/v2ray-core (20192020, сообщество) — после исчезновения оригинального автора (см. xray/authors-v2ray-xray) сообщество создало каноническое продолжение. Это уже code-fork/continuation оригинального v2ray-core — общий код.
  4. XTLS/Xray-core (ноябрь 2020, RPRX) — прямой code-fork v2fly-core. README Xray прямо указывает точку ответвления: «Xray-core v1.0.0 was forked from v2fly-core 9a03cc5». Повод для форка — лицензионный: команда v2fly сочла лицензию XTLS несовместимой и удалила XTLS из v2ray-core (версия 4.33.0), в ответ RPRX увёл разработку в свой Project X.

Диаграмма (пунктир — идейная связь, стрелка — code-fork):

Shadowsocks (2012, clowwindy)
   ┆  идейный преемник (новый код, протокол VMess; НЕ форк)
   ▼
V2Ray / Project V (2015, Victoria/Darien Raymond)  — написан с нуля
   │  code-fork / continuation (после исчезновения автора, 2019)
   ▼
v2fly/v2ray-core (2020, сообщество)  — сегодня это «V2Ray»
   │  code-fork от коммита 9a03cc5 (лицензионный спор об XTLS, ноя. 2020)
   ▼
XTLS/Xray-core / Project X (2020, RPRX)  — VLESS, XTLS-Vision, REALITY, XHTTP

Итог для вашего вопроса «V2Ray — это форк?»: сам V2Ray — не форк, а самостоятельный проект (идейный наследник Shadowsocks). Форками являются v2fly (от оригинального v2ray-core) и Xray (от v2fly-core). Отсюда и вся общая кодовая база, разобранная ниже.

Протоколы и транспорты: кто на чём сфокусировался

Это самое наглядное различие. Базовый набор общий (VMess, VLESS, Trojan, Shadowsocks, Shadowsocks-2022, SOCKS, HTTP, WireGuard, freedom, dokodemo; транспорты TCP, WebSocket, gRPC, mKCP, HTTPUpgrade, TLS с ECH). А дальше приоритеты расходятся.

Возможность v2ray-core Xray-core
xray/reality (маскировка под чужой сайт) нет вообще transport/internet/reality
xray/xtls-vision (xtls-rprx-vision) (поле flow в proto есть, логики нет) proxy/vless/encoding
VLESS encryption (пост-квантовое) proxy/vless/encryption
XHTTP / splithttp (транспорт через CDN) transport/internet/splithttp
XUDP (рабочий пакет) (только в тесте) common/xudp
Фрагментация/обфускация (finalmask) transport/internet/finalmask
QUIC (транспорт) transport/internet/quic
HTTP/2 (h2) транспорт transport/internet/http
DTLS, domain socket, tlsmirror
Hysteria Hysteria 2 (proxy/hysteria2) Hysteria 1 (proxy/hysteria)
vlite proxy/vlite
tun (проксирование через TUN) proxy/tun

Обратите внимание на строку Hysteria: у ядер она разных версий (v2ray — Hysteria2, Xray — Hysteria1), то есть это не «одно и то же».

Вывод по этому срезу: весь фирменный антицензурный стек XTLS — REALITY, Vision, VLESS encryption, XHTTP, XUDP — существует только в Xray. v2ray, наоборот, шире по «классическим» и универсальным транспортам (QUIC, HTTP/2, DTLS, доменные сокеты) и несёт собственные протоколы Hysteria2 и vlite.

Конфигурация: v2ray-платформа против ужатого Xray

Оба ядра в рантайме protobuf-first (JSON из конфига компилируется в protobuf-сообщения) и оба умеют читать JSON/TOML/YAML. Но в области конфига v2ray ушёл заметно дальше:

  • v2ray держит две схемы конфига: классическую (v4) и новую JSONv5 (infra/conf/v5cfg, расширения .v5.json), плюс protobuf-JSON форматы (jsonpb, v2jsonpb) и CLI-конвертер между всеми форматами. Отсюда и объём protobuf-схемы: 110 .proto-файлов против 78 у Xray.
  • Xray оставил одну классическую схему (наследник v4) плоским набором файлов infra/conf/*.go, а TOML/YAML — тонкие обёртки, конвертирующие в тот же JSON. Никаких v5/jsonpb.

То же расхождение в приложениях app/. v2ray нарастил «платформенные» подсистемы: подписки (subscription), REST API (restfulapi), менеджер инстансов (instman), постоянное хранилище, browser forwarder, WebRTC. Xray, наоборот, ядро оставил тоньше (убрал эти приложения и часть реестра расширений), но добавил своё: подсистему метрик (app/metrics) и geodata как компонент.

Проще говоря: v2ray развивается как расширяемая платформа общего назначения, Xray — как узкоспециализированный инструмент обхода блокировок. Одна и та же кодовая база 2020 года, две разные стратегии.

Зависимости и лицензии

v2ray-core Xray-core
Лицензия MIT MPL-2.0
Модуль github.com/v2fly/v2ray-core/v5 github.com/xtls/xray-core
uTLS (маскировка TLS-почерка) refraction-networking/utls refraction-networking/utls (тот же форк)
quic-go официальный quic-go/quic-go + apernet/quic-go (для Hysteria2) только apernet/quic-go
REALITY-библиотека github.com/xtls/reality
Пост-квантовая крипта cloudflare/circl (для VLESS encryption)
WebRTC-стек (pion) полный (webrtc/v4, ice/v4…) почти нет

Важные наблюдения: uTLS у обоих — один и тот же форк refraction-networking/utls (в отличие от sing-box, который использует форк MetaCubeX). REALITY и пост-квантовое шифрование тянут за собой отдельные зависимости, которых у v2ray нет в принципе. И главное — кросс-импортов между кодовыми базами нет: ни одного боевого import из xtls/* в v2ray и из v2fly/* в Xray (только текстовые ссылки в комментариях тестов). Родственные по происхождению, сегодня они полностью развязаны.

Модель управления: сообщество против одного лидера

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

v2fly — организация-сообщество (основана 15 апреля 2019 года), самоопределение — «community-driven edition of V2Ray». Релизы подписывает коллективный ключ «V2Fly Developers», у проекта несколько мейнтейнеров. Фактический ведущий релиз-инженер — Xiaokang Wang (ник Shelikhoo), и это, в отличие от анонимного оригинального автора, публичная неанонимная фигура: по собственным данным профиля — Дублин, магистратура Trinity College Dublin; соавтор академических работ USENIX Security 2023 (о детекте полностью зашифрованного трафика GFW) и 2024 (Tor Snowflake), выступает под настоящим именем.

Xray — форк «Project X», центрированный на одном разработчике xray/authors-v2ray-xray (создателе XTLS/REALITY). Проект движется его видением.

[!note] Оговорка про «сообщество vs один автор» Ни у v2fly, ни у Xray в репозитории нет формального документа governance (файлов GOVERNANCE/MAINTAINERS/CODEOWNERS не найдено ни там, ни там). Поэтому противопоставление «коллективное управление v2fly ↔ один лидер Xray» — это обоснованная интерпретация по косвенным признакам (самоописание «community-driven», коллективные подписи-ключи у v2fly против проекта, центрированного на RPRX, у Xray), а не цитата из устава. RPRX как единоличный лидер Xray — общеизвестный факт, но в README это не кодифицировано.

Оба проекта живы

Важно, что это не «оригинал и заброшенный форк», а два параллельно развивающихся ядра. v2ray-core на июль 2026 активно релизится (последняя версия v5.52.0 от 7 июля 2026, каденс — примерно раз в 24 недели, коммиты в master ежедневно). Xray-core тоже активно развивается (см. xray/project-x). Выбор между ними — это выбор между узкоспециализированным антицензурным инструментом (Xray с REALITY/Vision) и более широкой расширяемой платформой (v2ray), а не между живым и мёртвым.

📚 См. также

  • xray/project-x — история форка, ключевые технологии Xray, роль RPRX
  • xray/authors-v2ray-xray — авторы обоих проектов, разбор мифов о личности
  • xray/reality и xray/xtls-vision — фирменные технологии Xray, которых нет в v2ray
  • xray/vless — базовый протокол, общий для обоих (но encryption/vision — только в Xray)
  • sing-box/protocols-origin — для сравнения: там пара ядер БЕЗ общего кода, здесь — родитель и форк

Источники


[!quote] 🤖 Эти статьи открыты — можно обучать на них ИИ При желании вы можете натренировать ИИ на наших статьях. Исходное форматирование и скачивание всего репозитория одним zip-архивом доступны в Forgejo: исходник этой заметки · весь репозиторий.