Протоколы

Сравнение VPN-протоколов: WireGuard, OpenVPN, IKEv2 и VLESS

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

5 мин чтенияПоследняя проверка

Коротко

Основные протоколы в общих чертах
ПротоколСкоростьБатарея / ЦПВыживает при фильтрацииКогда применять
WireGuardОтличноОтличноПлохо — отпечаток снимается тривиальноСеть не фильтрует, а вам нужна максимальная производительность.
OpenVPN (UDP)ХорошоУмеренноПлохоШирокая совместимость важнее скорости.
OpenVPN (TCP/443)УмеренноУмеренноСлабо — опознаётся несмотря на портОграничивающая, но не инспектирующая сеть — скажем, отель, где открыты только 80 и 443.
IKEv2 / IPsecОчень хорошоОчень хорошоПлохо — фиксированные порты и характерный обменМобильные устройства, кочующие между сетями; переподключение — его сильнейшая сторона.
ShadowsocksОчень хорошоХорошоУмеренноФильтрация по сигнатуре протокола, но без активного зондирования.
VLESS поверх TLSОчень хорошоХорошоХорошо, если TLS достоверенСети, инспектирующие рукопожатия и ожидающие, что HTTPS выглядит как HTTPS.
VLESS + REALITYОчень хорошоХорошоСильно против зондированияСети, которые не только инспектируют трафик, но и активно зондируют конечные точки.

WireGuard

WireGuard — небольшой, современный и намеренно категоричный протокол. Он фиксирует криптографию вместо того, чтобы её согласовывать, что снимает целый класс проблем с понижением версии и оставляет реализацию достаточно компактной, чтобы её можно было как следует проаудировать. На большинстве платформ он работает в пространстве ядра и действительно быстр — обычно это самый быстрый вариант в сети, которая его не трогает.

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

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

OpenVPN

OpenVPN — давний универсал: зрелый, переносимый, поддерживаемый везде и конфигурируемый до избыточности. Он работает в пространстве пользователя, что стоит производительности по сравнению с WireGuard, но делает его доступным там, где модуль ядра не вариант.

Его режим TCP на порту 443 часто советуют как способ пройти сквозь ограничивающие сети. В сетях, фильтрующих только по порту, он действительно помогает, а в инспектирующих не помогает вовсе. У его управляющего канала узнаваемая структура кодов операций, а TCP внутри TCP порождает известный эффект коллапса, когда два таймера ретрансмиссии борются друг с другом на канале с потерями.

  • Сильные стороны: работает почти везде, крайне хорошо изучен, достаточно гибок под нестандартные требования.
  • Слабые стороны: медленнее WireGuard на одинаковом железе, тяжелее в настройке и опознаётся инспекцией независимо от выбранного порта.

IKEv2 / IPsec

IKEv2 встроен в iOS, Android, Windows и macOS, то есть сторонний клиент не нужен. Смену сети он переживает лучше любого протокола из этого списка: при переходе с Wi-Fi на мобильные данные туннель сохраняется через MOBIKE без заметного перерыва.

Против фильтрации он слабейший в этой группе. Он живёт на UDP 500 и 4500, а обмен IKE ни с чем не спутать. Любая сеть, намеренная блокировать VPN, блокирует его первым, и никакая конфигурация этого не меняет.

Shadowsocks

Shadowsocks с самого начала проектировался под другую модель угрозы: шифрованный прокси, трафик которого не несёт никакого узнаваемого рукопожатия и выглядит настолько похожим на случайные байты, насколько это возможно. Долгое время этого хватало.

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

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

VLESS

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

Поскольку протокол добавляет так мало собственной структуры, классификатору почти не за что зацепиться помимо TLS, в который он завёрнут. Это перекладывает всю нагрузку на убедительность TLS — в чём и состоит замысел, и по той же причине VLESS сам по себе не является полным ответом.

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

Как выбирать между ними

  1. Начните с самого быстрого работающего варианта

    В сети, которая не вмешивается, WireGuard или IKEv2 обгонят что угодно, завёрнутое в TLS, и нет причин платить за защиту, которая вам не нужна.

  2. Если не сработало — выясните, как именно

    Соединение, которое вообще не устанавливается, соединение, которое устанавливается и умирает, и соединение, которое работает, но еле ползёт, — это три разные проблемы с тремя разными решениями. Как их различать, описано в руководстве по диагностике.

  3. Подберите маскировку под сеть

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

  4. Пересматривайте, а не застывайте

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

Частые вопросы

Какой VPN-протокол самый быстрый?

В сети, которая не вмешивается, обычно самый быстрый WireGuard, следом IKEv2. В фильтруемой сети вопрос лишён смысла, пока вы не найдёте протокол, который не отбрасывают: у заблокированного протокола эффективная скорость равна нулю.

WireGuard лучше OpenVPN?

По пропускной способности, расходу батареи и простоте кода — безусловно да. Для прохода сквозь сеть, активно блокирующую VPN, не хорош ни тот, ни другой, хотя режим TCP/443 у OpenVPN помогает в сетях, фильтрующих только по порту.

Чем VLESS отличается от VMess?

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

Стоит ли всегда использовать самый обфусцированный протокол?

Нет. Обфускация стоит пропускной способности и добавляет сложности, а в нефильтруемой сети не даёт ничего. Лучше по умолчанию использовать простой быстрый вариант и переключаться, когда это действительно нужно.

Как это применяет HushTunnel

HushTunnel использует VLESS вместе с REALITY и XTLS — те самые решения, которые описаны в этих руководствах, — и не хранит записей о посещаемых вами сайтах.

Все руководства