Какое различие между 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 и вауля, магия.