Какое различие между Shadowsocks, VLESS, Vmess и Trojan?

В последнее время появилось очень много новых протоколов и я пытаюсь какая между ними разница. Если честно уже запутался, но понимаю так что весь трафик проходит через TLS у всех?

See Introduction to V2Ray · Issue #36 · net4people/bbs · GitHub on V2Ray/Vmess.
You have to configure it the right way to get censorship resistance.

Shadowsocks is battle-tested, simple to understand and has a lot less overhead. You don’t need a domain name and it performs better. I recommend setting up your own server with Outline (I’m one of the authors). Or manually setup a server following How to Deploy a Censorship Resistant Shadowsocks-libev Server. The protocol is explained at Shadowsocks - AEAD Ciphers.

Trojan is explained at The Trojan Protocol | trojan, but I never used it.

V2ray/V2fly — мультипротокольный прокси-сервер и клиент. Он умеет инкапсулировать любой протокол в любой другой, а также строить цепочки протоколов/прокси. Собственных протоколов у него два: vmess и vless, а все остальные — сторонние, для подключения к уже существующим серверам по другим протоколам.

Vmess — полноценный протокол туннелирования, с собственным шифрованием, «встроенным» в протокол. Он работает только по TCP, весь UDP-трафик также инкапсулируется в TCP (в отличие от Shadowsocks, где TCP-трафик передаётся по TCP, а UDP — по UDP). Шифрование протокола привязано ко времени: на сервере и клиенте время должно быть синхронизировано, иначе соединение не установится. Vmess не использует TLS и не выглядит как TLS-трафик (но его можно инкапсулировать в TLS, при необходимости).

Vless — продолжение, развитие vmess, в котором убран слой шифрования протокола, что позволило избавиться от привязки ко времени. Протокол создавался для использования его с TLS-инкапсуляцией, для того, чтобы можно было определить тип TLS-запроса (vless или обычный TLS-запрос из браузера или другой программы) и перенаправить не-vless-трафик в другую программу или на другой порт, например, чтобы маскировать прокси под действующий веб-сайт: и прокси, и сайт будут работать на одном порту.

Trojan работает по схожему с vless принципу TLS-инкапсуляции, отличие только в протоколе. Он появился достаточно рано, для демонстрации принципа «незаметной» инкапсуляции в TLS. Вот что пишут авторы:

Trojan is not a fixed program or protocol. It’s an idea, an idea that imitating the most common service, to an extent that it behaves identically, could help you get across the Great FireWall permanently, without being identified ever. We are the GreatER Fire; we ship Trojan Horses.

4 posts were split to a new topic: Проксификация на Linux

По итогу Trojan выглядит наиболее простым. Честно говоря от китайских штук типа V2Ray или Xray как-то странно пахнет. Будто в них используется огромное количество велосипедов непонятно зачем. Я не исключаю, что всё это ради эффективного обхода блокировок, но вот например не понимаю зачем в большинстве гайдов создают такой оверхед, используя сразу TLS + WS + Vmess? Двойное шифрование с вебсокетами вместо обычного http/2.

Варианта два:

  1. Гайды пишет тот, кто до конца не разбирается;
  2. Так настраивают для туннелирования через CDN, например, Cloudflare, а не напрямую через сервер.

Со вторым стало понятней. Получается Cloudflare умеет проксировать нормально только вебсокеты?

trojan-go у меня не заработал на российском провайдере с ТСПУ. Через VPN работает (в бесцензурном интернете). Вот же лол. Вроде все домены и ip доступны.
Там ведь еще какой-то sni.

Я не понимаю какую мысль вы пытаетесь донести. Что в Китае нормальный интернет и блокировки легко обходятся? Ну да, блокировки можно обойти с TLS-инкапсуляцией, чем VPN в Китае (в том числе бесплатные) и пользуются. Но назвать это “легким обходом” у меня рука не поднимается.

Со слов @ValdikSS trojan и trojan-go это не прокси, поэтому требуют дополнительного колдовства, дело не в ТСПУ. У меня тоже по началу нифига не работало, но стоило запусть это всё вместе WireGuard и вауля, магия.

Еще такой момент, немаловажный, использование этого протокола подразумевает отсутствие возможности устанавливать нестандартные порты для подключения через него? Или ошибаюсь?

У меня вот сейчас настроены ShadowSocks сервера за NAT на разных портах (от провайдера дается определенный пул), попробовал ради теста поставить Vless Reality, но почему-то пока не удалось завести. На форумах и в различных инструкциях пишут что порт обязательно должен быть 443 (что в моем случае невозможно). Не подскажешь какой из протоколов можно было-бы настроить для обхода?

порт vless reality сервера может быть любой. с самого же сервера этот vless reality работает или тоже нет? сайт для маскировки должен поддерживать tls 1.3 TLS Checker - Instant Results | CDN77.com, www.site.com и site.com могут выдавать разные результаты

Здравствуйте, можете пожалуйста посоветовать инструмент/стек с маскировкой в TLS, если важны минимальные задержки/оверхед? Также важна возможность использования в качестве туннеля для произвольного трафика (не прокси).

Спасибо!

для чего вам?

Идеальный пример - в онлайн игры играть

вы не заметите никакой разницы на любом протоколе даже с большим оверхедом, играм задержка почти что не важна, она там и так большая, дополнительные +5мс не заметит ни один человек. Более лучший пример - usbip, там дополнительная задержка в 0.5мс уже сильно ограничивает скорость передачи. Лучше обратите внимание на удобство настройки и использования, а не оверхед и задержки

вы хотите маскировку в tls, и из-за tcp туннеля уже можно получить много проблем, зачем вам tls? вы не в рф?

Маскировка необходима, в том числе, для обхода корпоративного firewall. Разница в задержке между протоколами есть, тем более для шутеров. TCP туннель снижает payload и может дать проблемы если использовать системное API. Если использовать user space реализацию и заполнение только тех заголовков необходимых для пробива NAT ISP, то будет лучше, чем UDP работать (в виду отсутствия сетевого нейтралитета и приоритизации TCP провайдером). Для обхода firewall возможно потребуется заполнять и другие заголовки пакета. Для борьбы с TLS подобным траффиком DPI придётся использовать active probing, если есть защита от этого, то статистический анализ.