Какой протокол выбрать: сравнение WireGuard, OpenVPN и других решений для VPN

Какой протокол выбрать: сравнение WireGuard, OpenVPN и других решений для VPN Интернет

Когда человек ищет VPN, он сталкивается с непонятной мешаниной названий. WireGuard, OpenVPN, IKEv2, L2TP, IPSec, SSTP — звучит как технический беспорядок, и непонятно, какой взять для простого пользователя или для сервера на несколько юзеров. Между тем выбор протокола определяет скорость, надёжность и то, вообще ли VPN будет работать в вашей сети.

В статье разберём, как устроены популярные протоколы VPN, где они работают лучше всего, что у них получается быстро, а что медленно. Не будет общих фраз про безопасность, только конкретные параметры и реальные сценарии.

Почему протоколы отличаются, если VPN это просто шифрование трафика

VPN это не только шифрование, хотя многие думают именно так. Протокол определяет, как устанавливается соединение, как согласуются параметры безопасности, как сервер проверяет клиента, как долго трафик может идти без переподключения. Один и тот же алгоритм шифрования можно реализовать разными способами, и это сильно влияет на скорость и стабильность.

OpenVPN, например, строит туннель поверх TCP или UDP и сам управляет переподключением. Если интернет поддёргивается, OpenVPN понимает это и восстанавливает соединение. WireGuard вообще не заботится о TCP и UDP, он работает на уровне ниже и ждёт, когда система сама скажет, что пакет потерян. Это очень влияет на поведение в нестабильных сетях, например в метро или на 4G с прерывистым сигналом.

Второе различие в коде. OpenVPN это 400 килобайт исходного кода, который аудировали десятки экспертов. WireGuard это 4000 строк, весь код видно с одного взгляда. Для мобильного клиента меньше кода значит меньше уязвимостей и проще обновление, а для корпоративного сервера требуется больше тестирования и доверия проверенному решению. Третье это интеграция с системой. IKEv2 встроен в Windows, iPhone, Android — система сама знает, как с ним работать. OpenVPN нужно установить отдельно, но это работает везде одинаково.

Из-за этих различий один протокол может быть в два раза быстрее другого на одних и тех же серверах и с одинаковыми каналами. Выбрать наугад значит получить либо тормоза, либо нестабильность, либо сложность с администрированием.

WireGuard: минимум кода, максимум скорости, но с оговорками

WireGuard завоевал репутацию самого быстрого протокола, и это верно на практике. Его код занимает 4 тысячи строк против 400 килобайт у OpenVPN. Меньше кода означает меньше мест, где может скрыться ошибка, и быстрее работает парсинг пакетов. На серверах с нагрузкой в 1000 одновременных подключений WireGuard обычно держит задержку ниже 5 миллисекунд, в то время как OpenVPN начинает скатываться к 20 миллисекундам.

Скорость туннеля тоже выше. WireGuard использует современные криптографические примитивы, которые железо ускоряет лучше, чем старые алгоритмы в OpenVPN. На домашнем канале в 100 мегабит реальная пропускная способность туннеля в WireGuard составляет примерно 95 мегабит, а в OpenVPN часто 70 мегабит. Это ощутимо при скачивании больших файлов или стриминге.

Но есть серьёзный подвох. WireGuard стоит на том, что каждый пользователь привязан к IP-адресу на сервере. Если вы подключаетесь с разных мест, одного смартфона и домашнего Wi-Fi, WireGuard захочет выдать вам либо один адрес на всех устройств, либо разные адреса. С разными адресами это работает, но тогда клиенту нужно хранить конфигурацию для каждого адреса, а система путается. На мобильных это привело к жёстким ограничениям: многие приложения VPN используют WireGuard через прокси, потому что сам протокол для мобилей неудобен.

Вторая проблема в том, что WireGuard скрывает журнал IP-адресов пользователей по умолчанию. Это считается преимуществом для приватности, но на сервере, где нужно разобраться с инцидентом, вы не сможете узнать, какой клиент вам отправил пакет с вредоносом. В корпоративной сети это критично. OpenVPN все эти данные записывает по умолчанию.

WireGuard растёт в популярности, но медленнее, чем казалось пять лет назад. Для домашнего VPN на быстрый интернет это хороший выбор, особенно на VPS из-за скорости. На сервере для компании с 50 пользователями я бы не брал WireGuard, потому что администратору рано или поздно потребуется фильтровать трафик по клиентам, а WireGuard для этого не приспособлен.

OpenVPN: сложность с компенсацией надёжности и универсальности

OpenVPN работает уже 20 лет и ни разу не был взломан через протокол. Это не значит, что он абсолютно безопасен, но значит, что его очень много тестировали и он прошёл испытание временем. Код большой, но хорошо документирован, легко найти эксперта, который может его читать.

Главное преимущество OpenVPN в том, что он работает поверх обычного TCP или UDP. Это значит, что если ваш интернет-провайдер блокирует VPN по какому-то признаку, вы можете переключиться с UDP на TCP, и соединение восстановится. WireGuard такой подстановки не позволяет. В странах с активной цензурой блокировка VPN это реальная проблема, и OpenVPN часто становится последним рабочим вариантом.

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

Конфигурация OpenVPN выглядит как тёмный лес, если вы впервые. Нужно генерировать сертификаты, создавать .ovpn файл с нужной комбинацией параметров, понимать разницу между TLS 1.2 и 1.3. На мобильном можно просто скачать приложение и импортировать файл, но на сервере администратор будет потеть над скриптом какое-то время. OpenVPN требует больше знаний, чем WireGuard, это правда.

Нагрузка на процессор у OpenVPN выше из-за объёма кода, но на современных серверах это не критично. VPS с двумя ядрами может спокойно обслуживать 100 одновременных клиентов на OpenVPN. Пропускная способность туннеля ниже, чем у WireGuard, но обычно это не бутылочное горлышко. Главное затычка это задержка подключения, которая может растянуться на несколько секунд, если сервер нагружен.

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

IKEv2, L2TP, IPSec и SSTP: когда они работают, а когда это миф

IKEv2 это протокол, встроенный в Windows, iPhone и Android. Он не требует установки приложения, просто добавляешь конфигурацию, и система сама знает, как с ним работать. На практике это означает, что подключение восстанавливается автоматически и очень быстро, меньше чем за секунду. Если вы едите в машине и переходите с Wi-Fi на сотовую сеть, IKEv2 переподключится, и видеоconference не прервётся. OpenVPN и WireGuard в этом случае потеряют соединение.

Но IKEv2 хорош только на мобильных и на Windows. На Linux его поддержка урезана, на некоторых маршрутизаторах вообще нет. Для домашнего VPN на всю сеть IKEv2 не подойдёт. Второе ограничение в том, что IKEv2 часто блокируют провайдеры, потому что это протокол со своей сигнатурой, которую легко узнать. OpenVPN через TCP выглядит как обычный HTTPS, и его сложнее заблокировать.

L2TP это древний протокол, который часто используют вместе с IPSec для шифрования. На старых системах это всё ещё работает, но у L2TP есть серьёзный недостаток: во многих странах этот протокол на портах 500 и 4500 исходно блокируется брандмауэром. L2TP плохо пробивается через NAT, и на практике люди часто предпочитают что-то более современное.

SSTP это протокол от Microsoft, который работает на Windows лучше всего. Он идёт поверх обычного HTTPS, поэтому его очень сложно заблокировать. Если вам надо подключиться из сети, где блокируют всё кроме 443-го портов, SSTP может выручить. Но SSTP это де-факто решение только для Windows, на мобильных его почти нет.

Популярные протоколы VPN это не значит популярные для всех. L2TP IPSec встречается в корпоративных сетях, потому что люди инвестировали в это 15 лет назад и неохотно меняют. SSTP удобен для администраторов Windows, которые привыкли управлять всем через групповые политики. Но для нового проекта эти протоколы выбирают редко.

Выбор протокола под задачу: сервер, мобильный, корпоративная сеть

Представьте, что вы развертываете VPN на VPS для нескольких друзей, чтобы они смогли смотреть локальное ТВ из-за границы. Вам нужна скорость, простота, и не важна логирование подробных IP-адресов. Берёте WireGuard, ставите на сервер, генерируете конфиги для каждого друга, и они качают видео с нормальной скоростью. Каждый клиент займёт примерно 10 килобайт оперативной памяти на сервере, и даже VPS за 5 долларов в месяц будет работать без проблем.

Теперь другой сценарий: вы администратор в компании с 200 сотрудников, и нужна VPN для удалённого доступа в офисную сеть. Людям нужно подключаться с ноутбуков, смартфонов, планшетов, и иногда из проблемных сетей отелей с блокировками. Вы выбираете OpenVPN, потому что он работает везде одинаково и позволяет легко логировать, кто что качал из офисной сети. Ставите его на сервер, создаёте центр выдачи сертификатов, пишете скрипт для автоматического переисследования, и всё. Один OpenVPN сервер с 4 ядрами выдержит 500 одновременных подключений.

Третий случай: вы просто хотите переиметить свой адрес, чтобы сервис не видел, что вы из России. Берёте приложение на смартфоне, которое поддерживает IKEv2, потому что это даёт вам нормальную батарею. Система автоматически восстанавливает соединение, когда вы переходите между Wi-Fi и 4G, и вы даже не замечаете переключения. Никакие конфиги, никаких сертификатов.

Wireguard OpenVPN IKEv2 это не набор одинаковых вещей, из которых вы выбираете самый красивый. Это три разных инструмента для разных работ. WireGuard быстрый, но требует, чтобы у вас был один IP на клиента. OpenVPN сложный, но универсальный. IKEv2 удобный, но работает не везде. Когда вы понимаете, что именно вам нужно, выбор становится очевидным.

Есть ещё L2TP IPSec SSTP и другие, которые встречаются реже. Они работают, но они это наследие. Если у вас уже есть инфраструктура на этих протоколах, менять её смысла нет. Если вы выбираете с нуля, смотрите в сторону первой тройки и понимайте, что вторая лучше на практике почти всегда.

Скорость в реальных сетях и когда она вообще не главное

На бумаге WireGuard быстрее всех, и это правда. На локальной машине с гигабитным каналом вы увидите, что WireGuard держит 95 процентов пропускной способности, а OpenVPN около 70. Но в интернете скорость туннеля редко становится узким местом.

Если вы смотрите HD видео, вам нужно 5 мегабит. Если вы качаете файл, вам нужно 50 мегабит. Даже если туннель даёт только 70 мегабит вместо 95, это не почувствуется. Узкое место обычно на стороне исходного сервера, откуда вы качаете, или на канале интернета вашего провайдера. VPN протокол тут почти не влияет.

Реальная разница в скорости появляется в двух случаях. Первый, когда на VPN сервере давят тысячи одновременных пользователей, и задержка подключения растёт с 5 миллисекунд на WireGuard до 50 на OpenVPN. Но это проблема масштабирования сервера, а не протокола. Второй случай, когда вы используете VPN на маршрутизаторе для всей домашней сети, и одновременно смотрите видео, скачиваете торрент и качаете обновление системы. WireGuard в этом сценарии будет работать заметно стабильнее, потому что меньше нагружает процессор.

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

Выводить скоростные тесты туннеля на первое место ошибка. Мы часто видим обзоры, где автор запускает iperf между двумя серверами и пишет «WireGuard победил». Но на практике это означает только то, что если вы подключитесь к одному серверу по WireGuard и начнёте выкачивать данные с другого сервера, то выкачаете чуть быстрее. В реальной жизни этот сценарий редко встречается. Люди смотрят видео, которое хранится у провайдера видео, проверяют почту, которая ходит через почтовый сервер. И там WireGuard не даёт ощутимого выигрыша, потому что задержка в интернете уже в сотни миллисекунд.

Безопасность: что вам реально нужно знать про криптографию в протоколах

Все современные VPN протоколы используют надёжную криптографию, которую не взломают в ближайшие 20 лет. OpenVPN использует TLS с AES-256, WireGuard использует ChaCha20-Poly1305, IKEv2 использует AES-256 с IKEv2 negotiation. Все эти алгоритмы проверены десятками независимых криптографов и работают.

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

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

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

Реальная угроза не в том, что протокол можно взломать, а в том, что сервис может заложить backdoor в приложение. Вы ставите VPN приложение, автор приложения в нём вирус, и вас слухают. Это не проблема протокола, это проблема доверия. С открытыми исходниками типа OpenVPN это сложнее, потому что код может прочитать кто угодно. С закрытыми исходниками типа большинства мобильных приложений это верить надо на слово.

Подключение, переподключение и стабильность в плохих сетях

В хорошей сети дома на оптике все протоколы работают одинаково. Проблемы начинаются на мобильной сети или в публичном Wi-Fi. Вы сидите в кафе, интернет дёргается, теряются пакеты, и тут выясняется, что протоколы ведут себя по-разному.

WireGuard ждёт timeout и тогда пытается переподключиться. Timeout по умолчанию 10 секунд, поэтому если сеть прервалась на 5 секунд, WireGuard не заметит сразу. Вы начнёте писать сообщение, оно зависнет, потом отправится с задержкой. Если сеть восстановилась, то примерно через 10 секунд WireGuard заметит, что пакеты опять идут, и продолжит работу. Но если сеть была недоступна 20 секунд, WireGuard переподключится, и могут потеряться данные, которые вы отправили за 10 секунд до отключения.

OpenVPN более активный. Он отправляет пинги каждые 10 секунд и ждёт ответ. Если ответ не пришёл за 10 секунд, OpenVPN считает соединение мёртвым и переподключается. На практике это означает, что при потере сети OpenVPN заметит это в течение 20 секунд, а не 40. И OpenVPN лучше адаптируется к нестабильности, если потеряется половина пакетов, но половина будет идти быстро.

IKEv2 самый быстрый на переподключение. На мобильных это реализовано так, что при переходе с Wi-Fi на сотовую сеть соединение восстанавливается за полсекунды, а часто даже незаметно. IKEv2 именно для этого и делали, для мобильных сетей, которые часто меняются. Но это работает только на мобильных системах, потому что там IKEv2 встроен и работает на уровне ниже приложения.

Если вы сидите в поезде и интернет скачет каждые несколько секунд, то WireGuard будет раздражать постоянными рывками. OpenVPN адаптируется лучше. IKEv2 вообще не даст вам понять, что сеть менялась. Это не значит, что WireGuard плохой, это значит, что WireGuard проектировали для хороших каналов, а не для мобильных проблем.

Как выбрать протокол: итоговый алгоритм

Вспомните, что вы хотите делать, и ответьте на три вопроса. Первый: вам нужна максимальная скорость на самом сервере? Если да, и вы готовы проверять логи с помощью специальных скриптов, берите WireGuard. Если нет, идите дальше.

Второй вопрос: вы находитесь в сети с активной блокировкой VPN? Если да, берите OpenVPN через TCP. Если нет, идите дальше. Третий вопрос: у вас мобильное устройство, и нужна автоматическая переподключение при смене сети? Если да, проверьте, поддерживает ли ваше мобильное приложение IKEv2, и если поддерживает, берите его. Если не поддерживает, берите OpenVPN.

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

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

Оцените статью