Два измерения, по которым они различаются

Первое — накладные расходы. Любой туннель добавляет к каждому пакету служебные данные и работу процессора на шифрование. Чем этой работы меньше, тем ближе скорость к прямому соединению.

Второе — насколько трафик похож на обычный. Здесь речь не о том, чтобы что-то обойти, а о свойстве самого протокола: одни выглядят как узнаваемый служебный трафик, другие неотличимы от рядового HTTPS. За неотличимость платят сложностью настройки и иногда скоростью.

Третьего измерения — «надёжность» — у транспорта нет. Надёжность определяется сервером и каналом до него, а не тем, каким протоколом вы к нему идёте.

Простые: SOCKS5 и HTTP CONNECT

Самые старые и самые дешёвые по ресурсам. Шифрования у них нет вовсе: SOCKS5 просто передаёт байты, HTTP CONNECT открывает туннель командой протокола HTTP. Аутентификация — логин и пароль у SOCKS5, Basic у HTTP.

Когда берут: внутри доверенной сети, для разработки, для доступа к сервису, который сам по себе уже шифрует. Отдельно стоит помнить: SOCKS5 в клиенте умеет UDP, HTTP CONNECT — нет, и это единственное функциональное различие между ними, которое заметно на практике.

SSH Tunnel

Туннель поверх обычного SSH-соединения. Шифрование есть и оно надёжное, но SSH создавался для командной строки, а не для потока трафика: он переносит поток TCP внутри другого потока TCP, и при потерях в сети два уровня контроля доставки начинают мешать друг другу. На хорошем канале разницы не видно, на плохом — падение заметное.

Когда берут: когда сервер уже есть и ничего дополнительно ставить на него не хочется. SSH на нём почти наверняка уже работает.

Shadowsocks

Компромисс между простотой и незаметностью: лёгкий протокол с честным шифрованием, без служебных заголовков, по которым его легко узнать. Классические методы — aes-128-gcm, aes-256-gcm, chacha20-ietf-poly1305, xchacha20-ietf-poly1305.

Один нюанс, о котором стоит знать заранее: Shadowsocks-2022 клиент не поддерживает. Если ваш сервер настроен на него, понадобится обычный Shadowsocks.

VMess и Trojan

VMess — протокол со своей системой аутентификации по UUID и упакованными в ссылку параметрами транспорта. Trojan устроен иначе: он изображает обычный HTTPS-сервер и отдаёт настоящий сайт всем, кто пришёл без правильного пароля.

Когда берут: оба обычно приходят готовой конфигурацией от того, кто держит сервер. Самостоятельно между ними выбирают редко — чаще берут то, что выдала панель.

VLESS, Reality и XTLS-Vision

VLESS — самый лёгкий из современных: у него нет собственного шифрования, и это сделано намеренно. Шифрует TLS снаружи, а протокол внутри занимается только маршрутизацией, не тратя процессор на второй слой поверх первого.

Reality — режим, в котором сервер при рукопожатии предъявляет сертификат настоящего чужого сайта, а не свой. Для наблюдателя соединение выглядит как визит на этот сайт. Настройка сложнее остальных: нужно выбрать подходящий целевой домен и согласовать ключи.

XTLS-Vision — оптимизация, снимающая двойное шифрование внутри TLS. Практический эффект — меньше нагрузки на процессор и выше потолок скорости, особенно на слабых устройствах.

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

AmneziaWG

Единственный в списке, кто работает поверх UDP, а не TCP, — и отсюда его свойства. Соединение устанавливается почти мгновенно, потери в сети переносятся мягче, расход батареи ниже: протокол не держит постоянного соединения и не подтверждает каждый пакет дважды.

Обратная сторона тоже в UDP: там, где UDP режут или сильно ограничивают, работать он не будет, и никакая настройка это не изменит. Параметры обфускации — Jc, Jmin, Jmax, S1–S4, H1–H4 — задаются в конфигурации и должны совпадать на обеих сторонах.

Как это выбирают на практике

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

Во втором случае разумное правило простое. Тому, что чувствительно к задержке, — самый лёгкий из доступных транспортов. Тому, что качает большие объёмы, — тот, где выше потолок скорости. Всё остальное можно оставить на любом: разница будет незаметна.

И общее: смена транспорта почти никогда не решает проблему медленного соединения. Сначала стоит проверить сам сервер и расстояние до него.

Читайте дальше