VLESS или Trojan: в чём разница и что выбрать

VLESS или Trojan - какой протокол лучше

VLESS или Trojan — какой протокол лучше использовать сегодня?

Оба варианта поддерживаются Xray.

Оба можно использовать в HAPP.

Оба умеют работать с современными transport methods.

И в большинстве обычных пользовательских сценариев оба способны обеспечить:

  • высокую скорость;
  • стабильное соединение;
  • TCP и UDP трафик;
  • работу через системный TUN;
  • несколько серверных локаций.

Поэтому ответ:

VLESS всегда быстрее Trojan

или:

Trojan всегда надёжнее VLESS

был бы слишком упрощённым.

В современной экосистеме Xray итоговое качество соединения зависит не только от proxy protocol.

Большую роль играют:

  • сервер;
  • маршрут;
  • transport;
  • TLS или REALITY;
  • XHTTP;
  • настройки Xray;
  • клиентское приложение.

Но между VLESS и Trojan всё же есть важные архитектурные различия.

Разберём их по порядку.

Короткий ответ

Если создаётся новая современная Xray инфраструктура, я бы в большинстве случаев выбирал VLESS.

Причины:

  • VLESS является одним из основных протоколов самого Xray;
  • поддерживает XTLS Vision;
  • имеет собственный flow;
  • работает с REALITY;
  • поддерживает XHTTP;
  • получил отдельный механизм VLESS Encryption;
  • активно развивается вместе с Xray.

Trojan при этом вовсе не устарел.

Он остаётся рабочим протоколом и может быть хорошим вариантом, если:

  • уже существует стабильная Trojan инфраструктура;
  • клиентская база хорошо его поддерживает;
  • используется классическая TLS архитектура;
  • нет причины мигрировать работающий сервис.

Для обычного пользователя готовой подписки разница ещё меньше:

если оператор выдал рабочий Trojan сервер — им можно пользоваться.

если оператор выдал VLESS — нет смысла искать Trojan только ради другого названия протокола.


Что такое VLESS

Project X описывает VLESS как:

лёгкий stateless transport protocol между Xray client и server.

Для аутентификации используется ID пользователя — чаще всего UUID.

Упрощённо:

Client
↓
VLESS
↓
Xray server
↓
Internet

VLESS сам по себе не определяет весь внешний вид соединения.

Ниже него отдельно настраиваются:

  • transport method;
  • transport security.

Например:

VLESS
↓
XHTTP
↓
REALITY

или:

VLESS
↓
RAW
↓
REALITY

или:

VLESS
↓
XHTTP
↓
TLS

Что такое Trojan

Trojan появился с другой исходной идеей.

Классический Trojan строился вокруг настоящего TLS соединения и пытался сделать proxy traffic максимально похожим на обычный HTTPS.

Оригинальный protocol design выглядит примерно так:

TLS handshake
↓
authentication
↓
Trojan request
↓
payload

После TLS handshake клиент передавал хэш пароля, запрос назначения и пользовательские данные. При неверной аутентификации сервер мог передать соединение обычному web backend, чтобы при активном сканировании endpoint выглядел как HTTPS сервер.

Именно отсюда появился исторический образ Trojan:

proxy, который выглядит как обычный HTTPS сайт.


Главное отличие: аутентификация

На самом базовом уровне различие довольно простое.

VLESS

Использует:

ID / UUID

В Xray VLESS user имеет поле:

id

и дополнительно может иметь:

flow

для XTLS Vision.

Trojan

Использует:

password

В конфигурации Xray Trojan пользователь имеет:

password
email
level

Пароль является обязательным параметром.


Значит ли UUID, что VLESS безопаснее пароля

Сам по себе формат credential не даёт такого вывода.

И:

случайный UUID

и:

длинный случайный Trojan password

могут иметь огромную энтропию.

Важнее:

  • не публиковать credential;
  • использовать нормальную transport security;
  • правильно настроить сервер.

Поэтому:

UUID безопасный, а password небезопасный

— неверное упрощение.


VLESS не зависит от системного времени

Это одна из особенностей VLESS.

Project X отдельно отмечает, что, в отличие от VMess, VLESS не зависит от времени системы.

Для сравнения именно с Trojan эта особенность не даёт огромного практического преимущества — Trojan тоже не строит свою основную аутентификацию вокруг синхронизации часов.

Но для понимания архитектуры VLESS это полезный факт.


VLESS и Trojan сами по себе не равны шифрованию

Это очень важный момент.

Proxy protocol и transport security — разные уровни.

Современная архитектура Xray выглядит примерно так:

Proxy protocol
↓
Transport method
↓
Transport security

Например:

VLESS
↓
XHTTP
↓
REALITY

или:

Trojan
↓
XHTTP
↓
REALITY

Xray прямо разделяет эти три уровня в документации transport configuration.


Классический Trojan очень тесно связан с TLS

Изначальная идея Trojan буквально начинается с:

выполнить настоящий TLS handshake.

После этого уже внутри защищённого TLS потока передаётся Trojan request.

И актуальная отдельная страница Trojan в Xray по-прежнему предупреждает, что Trojan для публичного использования должен иметь transport security, а вариант security: none допускается только для доверенной private network.


Но современный Xray умеет Trojan + REALITY

Здесь есть важная современная поправка.

Общая таблица совместимости Xray сейчас показывает:

ProtocolTLSREALITY
VLESSДаДа
TrojanДаДа

То есть говорить:

Trojan работает только с обычным TLS сертификатом

для актуального Xray уже слишком категорично.

Классическая архитектура Trojan действительно построена вокруг TLS, но Xray вынес transport security в отдельный общий слой и поддерживает Trojan с REALITY.


А что с VLESS без TLS или REALITY

Исторически типичная конфигурация имела:

encryption=none

Поэтому публичный VLESS без внешней transport security не является нормальной схемой.

Project X сейчас прямо предупреждает:

VLESS должен использовать внешний слой transport security, кроме доверенной private network или случая, когда включён VLESS Encryption.

То есть конфигурация:

VLESS
+
никакой защиты
+
публичный интернет

не должна рассматриваться как обычный безопасный deployment.


Что такое VLESS Encryption

Это одна из заметных новых возможностей VLESS.

У VLESS появился собственный optional encryption layer.

По умолчанию:

encryption = none

но современный Xray позволяет включить отдельный механизм VLESS Encryption.

Он защищает payload на уровне VLESS и может использоваться даже без внешнего TLS/REALITY.

Но есть важное ограничение.


VLESS Encryption не заменяет маскировку TLS/REALITY

Project X отдельно подчёркивает:

VLESS Encryption защищает payload, но не создаёт внешний вид обычного HTTPS traffic, который дают TLS/REALITY.

Поэтому:

VLESS Encryption

и:

VLESS + REALITY

решают не полностью одинаковые задачи.

Для обычного публичного сервиса REALITY/TLS остаются очень важными.


Что такое XTLS Vision

Вот здесь VLESS получает одно из наиболее заметных технических отличий.

VLESS имеет параметр:

flow

и поддерживает:

xtls-rprx-vision

Project X описывает Vision как XTLS flow control, который может работать в сочетании:

TCP + TLS/REALITY

и оптимизировать передачу уже зашифрованного TLS трафика.


Что даёт Vision

При подходящих условиях Xray способен использовать Linux splice.

Упрощённо вместо:

socket
↓
Xray userspace
↓
memory copy
↓
Xray
↓
socket

часть данных может передаваться на более низком уровне через kernel.

Project X указывает, что это уменьшает:

  • memory copying;
  • context switching;
  • CPU overhead.

Есть ли Vision у Trojan

В текущей конфигурации Xray Trojan пользователь имеет:

  • password;
  • email;
  • level;

но отдельного VLESS flow поля там нет.

То есть типичная схема:

VLESS + XTLS Vision

является именно преимуществом VLESS экосистемы.

Trojan при этом способен использовать современные transport/security combinations, включая REALITY, но не тот же VLESS Vision flow.


Значит ли это, что VLESS всегда быстрее Trojan

Нет.

Vision создаёт потенциальные оптимизации в определённых комбинациях.

Но реальная скорость пользователя зависит от:

  • CPU;
  • сети;
  • маршрута;
  • RTT;
  • дата центра;
  • congestion;
  • transport.

Если канал ограничен:

100 Мбит/с

сам protocol overhead может вообще не иметь практического значения.


Trojan тоже очень лёгкий протокол

Классическая структура Trojan достаточно простая.

После TLS handshake передаётся:

  • authentication hash;
  • destination;
  • payload.

То есть сам Trojan не является каким-то тяжёлым многоуровневым VPN.

Он способен показывать очень высокую производительность.


Поэтому Speedtest не выбирает протокол за вас

Например:

VLESS NL → 300 Мбит/с
Trojan FR → 500 Мбит/с

не означает:

Trojan быстрее.

Вы поменяли одновременно:

  • protocol;
  • сервер;
  • страну;
  • маршрут.

Для корректного сравнения нужны:

  • один VPS;
  • один network path;
  • одинаковая transport security;
  • одинаковый transport.

Transport сегодня зачастую важнее выбора VLESS или Trojan

Это один из главных выводов современной Xray архитектуры.

Текущая compatibility table показывает, что оба протокола поддерживают практически один и тот же набор transport methods:

  • RAW;
  • XHTTP;
  • gRPC;
  • WebSocket;
  • HTTPUpgrade;
  • mKCP;
  • Hysteria transport.

Получается:

VLESS + XHTTP

и:

Trojan + XHTTP

могут отличаться меньше, чем:

VLESS + RAW

и:

VLESS + XHTTP + CDN.

Почему это важно

Пользователь часто видит:

этот сервер VLESS, а этот Trojan.

Но на практике один может быть:

VLESS
↓
REALITY
↓
прямой сервер

а другой:

Trojan
↓
WebSocket
↓
TLS
↓
CDN

Вы сравниваете не два протокола.

Вы сравниваете две полностью разные сетевые архитектуры.


XHTTP доступен обоим

Да.

Современная таблица Xray отмечает XHTTP как поддерживаемый transport и для:

  • VLESS;
  • Trojan.

Поэтому XHTTP не является эксклюзивной функцией VLESS.

Это отдельный transport layer.


REALITY тоже не равно VLESS

Это особенно распространённая путаница.

Можно встретить выражение:

протокол VLESS Reality.

В бытовом смысле оно понятно.

Но технически:

VLESS

— proxy protocol.

А:

REALITY

— transport security.

В современной таблице Xray REALITY совместим не только с VLESS, но и с Trojan.


Почему VLESS + REALITY всё равно встречается намного чаще

Потому что именно вокруг VLESS активно развивалась современная Xray экосистема:

  • Vision;
  • REALITY;
  • XHTTP;
  • VLESS Encryption;
  • новые flow варианты.

То есть связка:

VLESS + REALITY

стала естественным современным выбором для многих операторов.

Но это не означает, что REALITY является частью VLESS.


Как маскируется классический Trojan

Изначальная идея была следующей:

Client
↓
реальный TLS handshake
↓
Trojan

При неправильном запросе сервер мог передавать соединение обычному web backend.

С точки зрения активного probe такой endpoint выглядел как HTTPS service.

Это было одной из главных идей Trojan с самого начала.


Но VLESS тоже имеет fallback

В современном Xray это уже не уникальная функция Trojan.

VLESS inbound поддерживает:

fallbacks

Trojan inbound также имеет полноценную поддержку fallback.

То есть аргумент:

Trojan умеет отправлять неправильный traffic на сайт, а VLESS нет

сегодня неверен.


Fallback работает не с любой transport комбинацией

Project X указывает, что fallback относится к определённым TCP+TLS сценариям.

При других transport combinations логика может быть другой.

Поэтому наличие поля fallbacks ещё не означает, что любой XHTTP deployment использует ту же классическую схему.


Внешний вид traffic сегодня определяется несколькими слоями

Очень грубо:

Protocol
+
Transport
+
Transport Security
+
Network behavior

Например:

VLESS
+
XHTTP
+
REALITY

может иметь совсем другой внешний профиль, чем:

VLESS
+
WebSocket
+
TLS

Хотя proxy protocol в обоих случаях VLESS.


Поэтому вопрос «какой protocol лучше скрывается» слишком простой

Гораздо корректнее спрашивать:

какая полная server/client configuration используется?

Одно слово:

Trojan

или:

VLESS

не описывает весь network traffic.


UDP поддерживают оба

Классический Trojan protocol предусматривает не только TCP CONNECT, но и:

UDP ASSOCIATE

и отдельный формат передачи UDP datagrams.

VLESS/Xray также умеет передавать UDP traffic.

Поэтому для обычных задач вроде:

  • Discord voice;
  • игр;
  • DNS;

нельзя автоматически утверждать:

Trojan только TCP.

Это неверно.


Но UDP ещё зависит от клиента и transport

Даже если protocol умеет UDP, реальный путь определяется:

  • Xray;
  • TUN;
  • transport;
  • routing;
  • сервером.

Поэтому проверять нужно конкретную конфигурацию.


Что с играми

Ни VLESS, ни Trojan не гарантируют меньший ping сами по себе.

Для игры важнее:

  • серверная локация;
  • маршрут;
  • packet loss;
  • jitter.

Например:

Trojan сервер → 80 мс
VLESS сервер → 45 мс

скорее всего VLESS будет лучше.

Но причина может быть просто в более удачном дата центре.


Что с YouTube

Здесь особенно важна стабильная bandwidth.

И VLESS, и Trojan способны нормально обслуживать:

  • Full HD;
  • 4K;
  • большие downloads.

Если один тормозит, сначала проверяйте:

  • node;
  • server load;
  • route;

а уже потом proxy protocol.


Что с Discord

Для voice важнее:

  • UDP;
  • packet loss;
  • latency.

Если:

Trojan node

даёт лучший route до Discord, он может работать лучше VLESS.

Если наоборот — VLESS.

Название protocol не определяет geography.


Что с мобильной сетью

То же самое.

Один endpoint может отлично работать через LTE, другой плохо.

Это зависит от:

  • operator routing;
  • IPv4/IPv6;
  • server IP;
  • network path.

Нет универсального правила:

Trojan лучше для мобильного интернета.


Что проще настроить

Для классического Trojan TLS схема концептуально довольно понятная:

domain
↓
TLS certificate
↓
password
↓
Trojan server

Но администратор должен правильно настроить:

  • TLS;
  • certificate;
  • SNI;
  • web fallback.

VLESS может выглядеть сложнее

Современный профиль способен содержать:

  • ID;
  • REALITY public key;
  • short ID;
  • SNI;
  • fingerprint;
  • flow;
  • transport;
  • XHTTP settings.

Снаружи такая ссылка выглядит заметно сложнее обычного Trojan URL.

Но для пользователя готовой подписки эта сложность почти исчезает.


Пользователь HAPP ничего из этого вручную вводить не обязан

HAPP поддерживает и VLESS, и Trojan.

Официальная документация клиента перечисляет оба protocol type и позволяет импортировать:

vless://

и:

trojan://

через:

  • clipboard;
  • QR;
  • subscription.

То есть для пользователя интерфейс практически одинаковый:

импортировал подписку
↓
выбрал сервер
↓
Connect

Значит для обычного пользователя разница небольшая?

Часто — да.

Если оператор уже всё правильно настроил, пользователь видит:

🇫🇷 France

и:

🇳🇱 Netherlands

а не архитектуру proxy protocol.

В такой ситуации гораздо полезнее выбрать:

сервер, который работает быстрее и стабильнее.


Нужно ли менять VLESS на Trojan, если VLESS плохо работает

Не первым делом.

Если один VLESS node:

timeout

а другой VLESS node:

работает

проблема явно не в концепции VLESS.

Проверяйте:

  • конкретный сервер;
  • IP;
  • маршрут.

Когда сравнение другого protocol действительно полезно

Например:

один VPS
один регион
VLESS profile
Trojan profile

и вы хотите проверить, как конкретная сеть относится к разным network configurations.

Тогда A/B сравнение уже имеет смысл.


Но transports должны быть сопоставимы

Если:

VLESS → REALITY

а:

Trojan → WebSocket + CDN

вы опять сравниваете не только protocol.

Для технического теста нужно максимально выровнять остальные параметры.


Что происходит, если пароль Trojan неверный

Trojan server проверяет credential.

В классической specification используется:

SHA224(password)

в начале Trojan request.

Если запрос не соответствует ожидаемой структуре или authentication не проходит, классическая схема могла отправить соединение fallback backend.

Xray Trojan также поддерживает fallback при неправильной аутентификации.


Что происходит при неправильном VLESS ID

VLESS server проверяет пользователя по id.

Если пользователь не существует, запрос не будет принят как нормальное VLESS соединение.

В некоторых TCP+TLS конфигурациях Xray также способен использовать fallback.


Пользовательский credential нужно хранить одинаково аккуратно

Неважно, что это:

VLESS UUID

или:

Trojan password.

Полная share link является доступом к серверу.

Не публикуйте:

vless://...

или:

trojan://...

в открытом интернете.


QR код тоже является credential

Если QR содержит:

  • VLESS URL;
  • Trojan URL;
  • subscription URL;

фотография QR фактически копирует доступ.

Не публикуйте её вместе со скриншотом настроек.


VLESS или Trojan с CDN

Оба protocol могут работать с HTTP oriented transport methods.

Текущая таблица Xray показывает поддержку:

  • XHTTP;
  • WebSocket;
  • gRPC;

для обоих.

Поэтому CDN architecture больше зависит от transport, чем от самого VLESS/Trojan.


Например

Можно построить:

VLESS
↓
XHTTP
↓
CDN
↓
Xray

и:

Trojan
↓
XHTTP
↓
CDN
↓
Xray

Обе комбинации поддерживаются Xray.


WebSocket тоже доступен обоим

Таблица совместимости Xray также разрешает:

VLESS + WebSocket

и:

Trojan + WebSocket.

Поэтому WebSocket не является специфической особенностью одного из двух protocol.


А REALITY нельзя использовать с WebSocket

Это уже ограничение transport method, а не VLESS/Trojan.

Xray сейчас поддерживает REALITY только с:

  • RAW;
  • XHTTP;
  • gRPC.

WebSocket + REALITY в таблице отмечен как неподдерживаемый.

То есть:

VLESS + WS + REALITY

не поддерживается.

И:

Trojan + WS + REALITY

тоже.


Это хороший пример роли transport

Ограничение одинаково действует на оба proxy protocol.

Поэтому при проектировании Xray infrastructure часто сначала нужно решить:

transport/security architecture,

а уже затем выбирать VLESS/Trojan.


Что выбрать с REALITY

Если выбор начинается с нуля, VLESS выглядит более естественным вариантом.

Главная причина — возможность использовать:

xtls-rprx-vision

и более тесная интеграция с современными VLESS функциями Xray.

Trojan + REALITY технически поддерживается, но не получает VLESS Vision flow.


Что выбрать с обычным TLS

Тут Trojan остаётся совершенно разумным.

Особенно если:

  • уже есть domain;
  • certificate;
  • reverse proxy;
  • рабочая инфраструктура.

Не обязательно мигрировать только потому, что VLESS новее.


Нужен ли сертификат

В классической Trojan TLS архитектуре — да, используется настоящий TLS server и нормальная certificate verification является важной частью схемы. Оригинальная документация Trojan прямо рекомендует проверять сертификат и hostname.

Для VLESS deployment конкретные требования зависят уже от выбранной transport security.


Почему REALITY изменил картину

REALITY является отдельной transport security scheme Xray.

Project X описывает её как модификацию TLS, использующую внешний вид и handshake characteristics целевого сайта.

Поэтому современная Xray архитектура больше не сводится к выбору:

VLESS без TLS против Trojan с TLS.

Оба могут использовать современные security layers.


Что лучше сопротивляется блокировкам

Нет честного универсального ответа по одному названию protocol.

Реальный результат зависит от:

  • transport;
  • security;
  • IP сервера;
  • network filtering;
  • routing.

Например:

публичный IP заблокирован

сломает доступ независимо от того, находится за ним:

  • VLESS;
  • Trojan.

Смена protocol не меняет заблокированный IP

Очень важный практический момент.

Если:

203.0.113.10

недоступен у провайдера вообще, перенос:

VLESS → Trojan

на тот же IP может ничего не изменить.

Сначала нужно понять уровень проблемы.


То же самое с route timeout

Если пакеты до сервера не доходят:

authentication protocol ещё даже не начал работать.

Поэтому менять VLESS на Trojan из-за обычного TCP timeout бессмысленно.


Когда другой protocol реально помогает

Когда фильтрация или middlebox реагируют на:

  • конкретный transport;
  • handshake;
  • traffic pattern.

Но в современном Xray это зачастую означает необходимость менять полную комбинацию, например:

VLESS + один transport

на:

Trojan + другой transport/security

А не только одно слово protocol.


VLESS имеет более активное современное развитие в Xray

Это видно хотя бы по текущему набору возможностей:

  • Vision;
  • VLESS Encryption;
  • reverse proxy extensions;
  • новые encryption modes.

Текущая документация VLESS заметно крупнее простой схемы id + address.

Поэтому для нового Xray deployment VLESS обычно даёт больше возможностей для дальнейшего развития.


Trojan архитектурно проще

Xray Trojan configuration остаётся очень компактной:

address
port
password
email
level

Это тоже плюс.

Если не нужны VLESS specific features, простой протокол может быть вполне достаточным.


Простота не означает устаревание

Протокол не обязан иметь двадцать параметров, чтобы быть хорошим.

Если Trojan:

  • стабилен;
  • поддерживается клиентами;
  • даёт хорошую скорость;
  • работает в вашей сети,

нет технической необходимости заменять его только ради более длинного списка возможностей VLESS.


Что лучше поддерживается клиентами

Оба давно распространены.

HAPP официально поддерживает:

  • VLESS;
  • Trojan;
  • VMess;
  • Shadowsocks;
  • Socks;

а актуальная документация также приводит отдельные URL schemes:

vless://
trojan://

Для пользователя HAPP совместимость не является решающим различием.


А старые клиенты

Старый клиент может отлично понимать классический Trojan, но не знать:

  • новый XHTTP;
  • современную VLESS Encryption;
  • некоторые новые Xray extensions.

Но это уже вопрос версии core.

С современным HAPP такой legacy вопрос обычно не актуален.


Подписка может содержать оба protocol

Да.

Один subscription list технически может содержать разные типы конфигураций.

Например:

France — VLESS
Netherlands — Trojan

HAPP распознаёт оба формата.

Пользователь при этом просто выбирает node.


Есть ли смысл оператору держать оба

Иногда — как технический резерв.

Например:

  • основной VLESS;
  • альтернативный Trojan.

Но постоянно дублировать каждый сервер двумя protocols тоже не обязательно.

Это:

  • усложняет поддержку;
  • увеличивает число profiles;
  • путает пользователей.

Для массового сервиса проще стандартизировать одну основную схему

Например:

VLESS
+
единый transport/security stack

а альтернативные варианты использовать только там, где они реально нужны.

Так проще:

  • обновлять;
  • мониторить;
  • диагностировать.

Что выбрать для своего VPS

Если сервер поднимается сегодня с нуля и используется современный Xray:

VLESS будет моим первым выбором.

Особенно если планируется:

  • REALITY;
  • Vision;
  • XHTTP;
  • развитие конфигурации дальше.

Когда я бы выбрал Trojan на новом сервере

Например, если:

  • нужна совместимость с существующей Trojan инфраструктурой;
  • используемые клиенты уже стандартизированы на Trojan;
  • есть конкретная проверенная TLS схема;
  • миграция на VLESS ничего практически не даёт.

Тогда Trojan остаётся нормальным решением.


Что выбрать обычному пользователю

Совсем другой ответ.

Если у вас нет своего VPS и VPN сервис уже дал subscription:

не выбирайте protocol по названию.

Проверяйте:

  • latency;
  • скорость;
  • стабильность;
  • приложения;
  • сеть.

Если Trojan node работает лучше VLESS node — используйте Trojan.

Если VLESS лучше — VLESS.


Пользователь не обязан строить Xray архитектуру

Это работа оператора.

В нормальном готовом сервисе пользователь получает:

subscription
↓
HAPP
↓
server list

и выбирает рабочую локацию.

Он не должен каждый день решать:

сегодня я хочу XHTTP packet-up или Trojan TLS.


Как сравнить VLESS и Trojan правильно

Если хочется провести технический тест:

Один сервер

Не разные VPS.

Одинаковая локация

Чтобы не сравнивать geography.

Одинаковая сеть

Один ISP.

Похожие transport/security

Насколько это возможно.

Несколько реальных задач

  • browser;
  • download;
  • upload;
  • Discord;
  • game.

После этого сравнение имеет смысл.


Что измерять

Не только:

Speedtest download.

Полезнее:

  • connection time;
  • median ping;
  • jitter;
  • packet loss;
  • sustained download;
  • стабильность несколько часов;
  • CPU сервера.

Особенно если тестируется свой VPS.


Возможное преимущество VLESS Vision видно именно по CPU

В определённых сценариях Vision + splice способны сократить userspace processing.

Project X прямо указывает снижение memory copying и context switching.

На мощном сервере и небольшом количестве пользователей разницу можно вообще не заметить.

На сильно нагруженном node она уже интереснее.


А Trojan может оказаться проще и достаточно быстрым

Если server CPU далёк от предела, теоретическая экономия нескольких операций не обязательно имеет пользовательское значение.

Иногда самая разумная инфраструктура — та, которая:

уже работает и хорошо мониторится.


Ошибки подключения тоже выглядят немного по-разному

У VLESS чаще обсуждаются:

  • ID;
  • flow;
  • transport;
  • REALITY parameters.

У Trojan:

  • password;
  • TLS;
  • certificate/SNI;
  • transport.

Но в обоих случаях пользовательские симптомы похожи:

  • timeout;
  • connection reset;
  • EOF;
  • immediate disconnect.

По тексту ошибки не всегда можно определить protocol без контекста.


Trojan password неверный — сервер может выглядеть как обычный web endpoint

Это было частью первоначальной идеи Trojan.

Неправильный protocol request мог передаваться backend серверу, чтобы active probe не видел отдельный proxy daemon.

Xray Trojan сохранил полноценные fallbacks.


Но VLESS fallback делает похожую задачу

В определённых TLS configurations VLESS также может отправлять неправильный или неавторизованный traffic на fallback destination.

Поэтому это уже не фундаментальное различие сегодняшнего Xray.


Что лучше: пароль или UUID для управления пользователями

Для панели управления разница минимальна.

Можно создать:

User A → VLESS ID
User B → VLESS ID

или:

User A → Trojan password
User B → Trojan password.

Xray поддерживает массив пользователей для обоих protocols.


Статистика пользователей тоже возможна

Оба user objects имеют:

  • email;
  • level;

которые можно использовать для идентификации и policy/statistics внутри Xray.

Поэтому для биллинга сам выбор protocol не решает всю систему учёта.


VLESS или Trojan: сравнительная таблица

ХарактеристикаVLESSTrojan
Поддержка XrayДаДа
HAPPДаДа
АутентификацияID / UUIDPassword
Stateless designДаНе основное отличие
TLSДаДа
REALITY в текущем XrayДаДа
XHTTPДаДа
WebSocketДаДа
gRPCДаДа
UDPДаДа
XTLS VisionДаНет VLESS flow
VLESS EncryptionДаНет
FallbackДаДа
Классическая HTTPS концепцияНе основнаяДа
Подходит для новой Xray инфраструктурыОтличноДа
Legacy compatibilityВысокаяВысокая
Простота базового user configСредняяВысокая

Что выбрать по сценариям

Новый Xray сервер

VLESS.

Больше современных возможностей и наиболее естественное направление Xray ecosystem.


Уже есть стабильный Trojan

Можно оставить Trojan.

Нет смысла мигрировать только ради названия.


Нужен REALITY

Оба protocol технически совместимы с REALITY в современной таблице Xray.

Но для новой конфигурации VLESS выглядит интереснее из-за Vision.


Нужен XHTTP

Оба поддерживают XHTTP.

Но VLESS остаётся более распространённым выбором для современной XHTTP/REALITY инфраструктуры.


Нужна классическая TLS схема

Trojan здесь исторически очень органичен.

Но VLESS + TLS тоже является полностью поддерживаемым вариантом.


Нужна максимальная современная функциональность Xray

VLESS.

Главные причины:

  • Vision;
  • VLESS Encryption;
  • активное развитие protocol specific features.

Пользователь готового VPN

Выберите тот сервер, который лучше работает.

Здесь преимущества конкретного route часто намного важнее protocol architecture.


Что не стоит делать

Не нужно:

  • менять VLESS на Trojan из-за одного timeout;
  • считать Trojan автоматически быстрее;
  • считать VLESS автоматически безопаснее;
  • называть REALITY частью VLESS;
  • считать Trojan только TCP protocol;
  • считать XHTTP только VLESS transport;
  • менять protocol на том же заблокированном IP и ждать чуда.

Сначала определите реальную причину проблемы.


Если один protocol не работает в конкретной сети

Проверьте:

  1. Другой node.
  2. Другой IP.
  3. Другую сеть.
  4. Transport.
  5. Security layer.

И только затем делайте вывод о самом protocol.


Почему это важно

Например:

VLESS server A → timeout
Trojan server B → работает

может означать:

Trojan лучше.

А может означать:

IP сервера A недоступен.

Это две совершенно разные причины.


Как проверить точнее

Если возможно, разверните оба protocol на одном VPS.

Тогда:

один IP
один дата центр
одна сеть

и различий становится значительно меньше.

Только такой тест действительно начинает сравнивать protocol layer.


VLESS.ART и выбор протокола

Для пользователя готовой подписки нет необходимости самостоятельно поднимать:

  • Xray server;
  • TLS;
  • REALITY;
  • XHTTP.

VLESS.ART использует готовые VLESS profiles для HAPP и совместимых клиентов с несколькими серверными локациями.

Пользователь получает subscription и выбирает подходящий node.

Посмотреть тарифы:
https://vless.art/#tarif

Если один сервер временно работает хуже, можно переключить локацию без ручного изменения protocol parameters.


Стоит ли искать Trojan сервис вместо VLESS

Если текущий VLESS:

  • стабилен;
  • быстрый;
  • работает на ваших устройствах;

особой причины нет.

Trojan не является «следующей версией» VLESS.

И VLESS не является «новым Trojan».

Это разные proxy protocols, которые современный Xray умеет использовать внутри общей transport architecture.


Стоит ли переходить с Trojan на VLESS

Для пользователя — только если новый сервис или server реально работает лучше.

Для администратора — зависит от целей.

Если нужен:

  • Vision;
  • современная VLESS Encryption;
  • единая VLESS инфраструктура;

миграция имеет смысл.

Если текущий Trojan deployment стабилен и решает все задачи, срочности нет.


Самый важный вывод

Сегодня сравнивать:

VLESS против Trojan

в отрыве от остальной конфигурации уже недостаточно.

Современный Xray позволяет обоим protocol использовать почти одинаковые transport methods, включая XHTTP, gRPC и WebSocket, а общая compatibility table поддерживает TLS и REALITY для обоих.

То есть итоговая схема может отличаться не protocol name, а вот этим:

transport
security
routing
server
network path

И эти параметры зачастую сильнее влияют на реальную работу.


Итог

Если выбирать VLESS или Trojan для новой Xray инфраструктуры, сегодня я бы чаще выбирал VLESS.

VLESS является лёгким stateless protocol Xray с ID/UUID authentication и имеет ряд возможностей, которых у Trojan нет в той же форме:

  • flow;
  • XTLS Vision;
  • VLESS Encryption;
  • специфические современные extensions.

Trojan использует password authentication и исторически строился вокруг настоящего TLS handshake и идеи выглядеть как обычный HTTPS service. Оригинальная protocol specification предусматривает как TCP CONNECT, так и UDP ASSOCIATE, поэтому представление «Trojan только для TCP» неверно.

Но современный Xray сильно сблизил оба варианта на транспортном уровне.

Оба сейчас могут использовать:

  • RAW;
  • XHTTP;
  • gRPC;
  • WebSocket;
  • HTTPUpgrade;
  • другие поддерживаемые Xray transport methods.

А в текущей таблице transport security и VLESS, и Trojan совместимы с TLS и REALITY.

Поэтому нельзя сводить современный выбор к:

VLESS — один тип traffic.

Trojan — HTTPS.

Реальный внешний профиль определяется всей цепочкой:

proxy protocol
↓
transport
↓
transport security
↓
server/network path

Практическая рекомендация получается простой:

новый сервер на современном Xray → чаще VLESS.

уже есть хороший Trojan server → можно спокойно продолжать использовать.

пользователь готовой подписки → выбирайте node по скорости и стабильности, а не по названию protocol.

нужен Vision или максимум современных VLESS specific функций → VLESS.

И если VLESS сервер не работает, не нужно автоматически переходить на Trojan.

Сначала проверьте:

другой server → другой IP → другую сеть → transport → routing.

Очень часто проблема вообще находится не на уровне VLESS или Trojan, а несколькими слоями ниже.