Сравнивать эти два протокола полезно только тогда, когда сравнение касается того, чем вы действительно будете управлять. WireGuard определяет партнёров по открытому ключу и передаёт свой протокол по UDP, тогда как OpenVPN предлагает более широкий набор способов аутентификации и может работать по UDP или TCP, если сервер предоставляет оба. Эти различия формируют развёртывание и резервный путь гораздо раньше, чем формируют пропускную способность. Проведите четыре проверки ниже по порядку; первые две обычно решают выбор, а последние две говорят, было ли решение верным.

Начните с идентичности, а не со списка шифров

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

DecisionOpenVPNWireGuard
IdentityCertificates, plugins or scripts against an existing directoryOne private key per peer, public keys listed for the peers it may reach
TransportUDP or TCP profiles when the server offers bothUDP only in the native protocol
Routing and DNSServer pushes routes and DNS optionsAllowedIPs maps ranges to peers, and tooling installs the routes
Where it usually breaksProfile mismatch, expired certificate, failing pluginBlocked UDP, wrong AllowedIPs, key not installed

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

Затем посмотрите, что допускает транспорт

Протокол WireGuard использует UDP. Сервисы OpenVPN могут предлагать профили и по UDP, и по TCP, а в сети, которая блокирует или ухудшает UDP, второй вариант оказывается практическим резервным путём, а не теоретическим. Сервер должен поддерживать выбранный профиль, и смена номера порта не превращает туннель в HTTPS и не убеждает межсетевой экран пропустить его.

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

Затем проверьте маршрутизацию и разрешение имён

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

ip route show
ip -6 route show
resolvectl status
wg show

Прочитайте вывод, прежде чем доверять индикатору подключения. ip route show перечисляет, что клиент установил для IPv4, а вариант IPv6 ловит туннель, который несёт только одно семейство. resolvectl status показывает, к какому распознавателю клиент действительно обратится, а wg show печатает AllowedIPs, которые WireGuard считает своими. Если распознаватель по-прежнему указывает на локальную сеть, пока маршруты заявляют полное покрытие, DNS выходит за пределы туннеля.

Затем измерьте задачу, которая вам важна

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

iperf3 -c 203.0.113.20 -t 30
mtr -rwzbc 50 203.0.113.20

Запустите обе команды дважды, по одному разу на каждую пару профилей, в одной и той же сети и на одном устройстве. iperf3 даёт цифру пропускной способности, а mtr даёт путь и место, где появляются потери, чего одна цифра загрузки показать не может. Цифра загрузки также упускает то, что замечает звонок: добавленную задержку, дрожание и сколько занимает переподключение. Записывайте это отдельно, потому что протокол, выигрывающий по пропускной способности, всё равно может проиграть в задаче, которую вы действительно выполняете.

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

Запишите пару профилей до теста

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

Затем выполните ту же задачу на обоих, в одной и той же сети, в одной и той же сессии. Если один вообще не может подключиться, этот сбой и есть результат, и он вместе с причиной принадлежит записи. Храните запись вместе с документацией сервиса, чтобы следующий человек сравнил ту же пару, а не начинал заново.

Похожие статьи