Flex-VPN

Flex-VPN Journal

Протоколы VPN: WireGuard, AmneziaWG, VLESS и OpenVPN

Протокол определяет, как VPN-клиент и сервер договариваются о ключах, как шифруют трафик и по какому транспорту — UDP или TCP — его передают. От этого зависят скорость, задержка, расход батареи, поддержка на конкретных устройствах и порты подключения. В обзоре собраны основные протоколы VPN: WireGuard и его модификация AmneziaWG, VLESS + Reality на ядре Xray, OpenVPN, IKEv2/IPsec, а также устаревшие L2TP и PPTP. В конце — сводная таблица с портами по умолчанию и практические советы, как выбрать протокол под свои устройства.

Материал посвящён законным сценариям сетевой защиты и настройки. Соблюдайте правила, действующие в вашей юрисдикции.

Что такое VPN-протокол и за что он отвечает

VPN-протокол — набор правил, по которым защищённое соединение устанавливается, работает и закрывается. Любой протокол решает четыре задачи.

  • Рукопожатие и обмен ключами. Клиент и сервер проверяют друг друга и согласуют сеансовые ключи. WireGuard делает это по схеме на основе фреймворка Noise, OpenVPN — через TLS, IPsec — с помощью протокола IKE.
  • Шифрование и проверка целостности. Каждый пакет шифруется и получает код аутентификации, по которому получатель видит, что данные не изменили по дороге. Современные протоколы используют AEAD-шифры — ChaCha20-Poly1305 или AES-GCM.
  • Инкапсуляция. Исходные данные упаковываются в новый пакет, адресованный VPN-серверу. Дополнительные заголовки занимают место, поэтому полезных данных в каждом пакете помещается немного меньше.
  • Транспорт. Готовые пакеты уходят на сервер по UDP или TCP на определённый порт.

Полезно различать классические VPN-протоколы и прокси-протоколы. WireGuard, OpenVPN и IKEv2 создают в системе виртуальный сетевой интерфейс и передают IP-пакеты целиком. VLESS по своей природе прокси-протокол: он передаёт потоки данных отдельных соединений, а режим «весь трафик устройства через VPN» обеспечивает клиентское приложение, которое само поднимает виртуальный интерфейс (TUN). Пользователь разницы почти не замечает, но у каждого протокола свой формат профиля: ключ VLESS не откроется в приложении WireGuard, и наоборот.

WireGuard и AmneziaWG

WireGuard — относительно молодой протокол: в 2020 году он вошёл в ядро Linux 5.6. Его реализация занимает несколько тысяч строк кода — многократно меньше, чем у OpenVPN или стека IPsec, и это заметно упрощает аудит. Набор криптографии фиксирован: Curve25519 для обмена ключами, ChaCha20-Poly1305 для шифрования, BLAKE2s для хеширования. Шифры не согласуются, поэтому выбрать в настройках слабый алгоритм невозможно.

WireGuard работает только поверх UDP; в документации и примерах обычно указан порт 51820. У каждой стороны есть пара ключей, а в конфигурации прописываются открытый ключ собеседника и диапазоны адресов, которые через него разрешено передавать (параметр AllowedIPs). Когда данных нет, протокол «молчит»: без настройки PersistentKeepalive он не шлёт служебных пакетов. При смене сети, например с Wi-Fi на мобильный интернет, сервер узнаёт новый адрес клиента из первого же аутентифицированного пакета, и туннель продолжает работать без полного переподключения.

Чем AmneziaWG отличается от WireGuard

AmneziaWG — модификация WireGuard от проекта Amnezia. Криптография, принцип работы и транспорт UDP остаются прежними, но служебные пакеты дополнительно маскируются: перед рукопожатием клиент может отправить несколько пакетов со случайным содержимым, к пакетам рукопожатия добавляется случайное заполнение, а фиксированные значения типов сообщений в заголовках заменяются на заданные в конфигурации. За это отвечают параметры Jc, Jmin, Jmax, S1, S2 и H1–H4; в новых версиях AmneziaWG к ним добавились и другие.

Практическое следствие: параметры у клиента и сервера должны совпадать, поэтому ключ AmneziaWG импортируют в Amnezia VPN или другой клиент с поддержкой AmneziaWG, а не в стандартное приложение WireGuard. Скорость и расход батареи сопоставимы с WireGuard: дополнительная работа касается в основном служебных пакетов, а не потока данных. Подробнее об устройстве обоих вариантов — в статье WireGuard VPN: как работает и чем отличается AmneziaWG.

VLESS + Reality и Xray

VLESS — лёгкий протокол, появившийся в экосистеме V2Ray; сейчас его развивают в основном в проекте Xray (Xray-core). В классической конфигурации у VLESS нет собственного шифрования: клиент идентифицируется по UUID, а защиту обеспечивает транспортный уровень — TLS или Reality. Благодаря этому данные не шифруются дважды, и протокол остаётся экономным.

Reality — механизм защиты соединения в Xray на базе TLS 1.3. Ему не нужны собственный домен и сертификат: в рукопожатии указывается имя (SNI) существующего стороннего сайта. В профиле клиента записаны открытый ключ сервера (X25519) и короткий идентификатор shortId — с их помощью клиент встраивает в рукопожатие метку, по которой сервер узнаёт своего пользователя. Подключение идёт поверх TCP, обычно на порту 443, и выглядит как обычный защищённый HTTPS-трафик. В профилях часто встречается параметр flow со значением xtls-rprx-vision — режим, который снижает накладные расходы, когда внутри туннеля передаётся уже зашифрованный TLS-трафик.

Ключ VLESS — это ссылка vless://, в которой закодированы адрес сервера, порт, UUID и параметры Reality. Чаще ключи выдают не по одному, а ссылкой подписки: приложение получает список серверов и само его обновляет. Подходят Happ, v2RayTun и другие клиенты на ядре Xray. Разбор ключа по полям — в статье Что такое VLESS: протокол, Xray и разбор ключа.

OpenVPN

OpenVPN — один из самых распространённых протоколов с открытым кодом; первая версия вышла в 2001 году. Для обмена ключами он использует TLS на базе OpenSSL или совместимой библиотеки, а данные в современных версиях обычно шифрует AES-256-GCM или ChaCha20-Poly1305. Работает и по UDP, и по TCP; закреплённый за ним в реестре IANA порт — 1194.

Сильные стороны VPN на OpenVPN — зрелость и гибкость: десятки параметров конфигурации, аутентификация по сертификатам, логину и паролю или их сочетанию, поддержка во многих роутерах и корпоративных шлюзах. Профиль хранится в файле .ovpn, который открывают OpenVPN Connect, Tunnelblick на macOS, NetworkManager в Linux и встроенные клиенты роутеров.

Слабые стороны — сложность и производительность. Классический OpenVPN обрабатывает трафик в пользовательском пространстве, поэтому на том же оборудовании обычно уступает WireGuard в скорости и сильнее нагружает процессор, а на телефоне — батарею. В версии 2.6 появился модуль Data Channel Offload (DCO), который переносит обработку данных в ядро и сокращает разрыв, но поддерживают его пока не все клиенты и платформы.

IKEv2/IPsec, L2TP и PPTP

IKEv2/IPsec

IKEv2 — протокол обмена ключами, который работает в паре с IPsec. Главный плюс — встроенная поддержка в Windows, macOS, iOS и Android: подключение настраивается в системных параметрах без сторонних приложений. Расширение MOBIKE сохраняет туннель при смене сети, поэтому IKEv2 часто выбирают для корпоративного удалённого доступа со смартфонов и ноутбуков. Обмен ключами идёт по UDP 500, а если устройство находится за NAT — по UDP 4500; данные передаются в протоколе ESP или упаковываются в тот же UDP 4500.

L2TP/IPsec

L2TP сам ничего не шифрует, поэтому его используют только вместе с IPsec. Получается двойная инкапсуляция и больше накладных расходов, чем у современных протоколов; задействованы UDP 500, 4500 и 1701. L2TP ещё встречается в старых роутерах и корпоративных сетях, но Microsoft объявила PPTP и L2TP устаревшими в Windows Server, а на многих современных Android-устройствах во встроенных настройках остались только варианты IKEv2/IPsec.

PPTP

PPTP — протокол 1990-х годов, который использует TCP 1723 и GRE. Его схема аутентификации MS-CHAPv2 давно считается небезопасной, а Apple убрала PPTP из iOS и macOS ещё в 2016 году. Для защиты трафика PPTP использовать не стоит.

Flex-VPN работает на двух протоколах — AmneziaWG и VLESS + Reality. OpenVPN, IKEv2, L2TP и PPTP описаны для общего понимания: в сервисе они не используются.

UDP или TCP и стандартные порты

Транспорт определяет, как пакеты туннеля доходят до сервера, и заметно влияет на поведение подключения в нестабильных сетях.

  • UDP не устанавливает соединение и сам не пересылает потерянные пакеты. Для туннеля это плюс: внутри идут обычные TCP-соединения ваших приложений, и потери они обрабатывают сами. Поэтому WireGuard, AmneziaWG и OpenVPN в режиме UDP обычно дают меньшую задержку и хорошо подходят для звонков, игр и видео.
  • TCP гарантирует доставку и порядок данных. Если пакетный туннель вроде OpenVPN работает по TCP, а внутри тоже идёт TCP, при потерях повторные отправки происходят на двух уровнях сразу и скорость проседает сильнее — это называют проблемой TCP-over-TCP. VLESS передаёт не IP-пакеты, а потоки данных: клиент сам завершает TCP-соединения приложений, поэтому у него этот эффект выражен слабее.

Практическое правило: если UDP-профиль в вашей сети работает ровно, оставляйте его. Если в конкретной сети UDP-соединение рвётся или теряет пакеты, попробуйте профиль поверх TCP и сравните результат.

Порты в таблице ниже — значения по умолчанию из документации и стандартов. Сервер может работать и на другом порту: он записан в ключе или файле конфигурации, поэтому при импорте готового профиля вводить его вручную не нужно. Учитывайте и накладные расходы на заголовки: если MTU не задан явно, утилита wg-quick вычитает 80 байт из MTU основного сетевого интерфейса — обычно получается 1420 вместо привычных 1500, чтобы упакованный пакет проходил по каналу без фрагментации.

Протоколы VPN в одной таблице: транспорт, порты, клиенты

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

ПротоколТранспортПорт по умолчаниюГде применяетсяКлиенты
WireGuardUDP51820Личные и корпоративные VPN, роутеры, серверы LinuxПриложение WireGuard, встроенная поддержка в Linux и многих роутерах
AmneziaWGUDPЕдиного значения нет, порт указан в ключеПодключение по готовому ключу на телефонах, компьютерах и роутерахAmnezia VPN, прошивки роутеров с поддержкой AmneziaWG
VLESS + RealityTCP (TLS 1.3)Обычно 443Альтернативный профиль поверх TCP/TLS, подключение по ссылке подпискиHapp, v2RayTun и другие клиенты на ядре Xray
OpenVPNUDP или TCP1194Корпоративные сети, роутеры, старые системыOpenVPN Connect, Tunnelblick, клиенты роутеров
IKEv2/IPsecUDP, ESP500 и 4500Корпоративный удалённый доступ, мобильные устройстваВстроенные клиенты Windows, macOS, iOS, Android
L2TP/IPsecUDP500, 4500, 1701Старые роутеры и корпоративные сетиВстроенные клиенты части систем
PPTPTCP, GRE1723Устаревшее оборудованиеВстроенные клиенты старых систем; использовать не рекомендуется

Какой протокол выбрать: скорость, батарея и поддержка на устройствах

Протокола, который одинаково хорош для всех, нет — есть подходящий под конкретную задачу и устройство. Ориентируйтесь на три критерия.

  • Скорость и задержка. WireGuard и AmneziaWG — лёгкие протоколы с коротким рукопожатием и минимумом служебного трафика; на одном и том же сервере они обычно дают наименьшую задержку. VLESS + Reality тоже экономен, но работает поверх TCP, и в сети с потерями это может быть заметно. OpenVPN, как правило, медленнее из-за обработки в пользовательском пространстве. Сравнивайте на своём подключении: чужие тесты мало говорят о вашей сети.
  • Батарея. Пока нет данных, WireGuard и AmneziaWG почти не отправляют служебных пакетов — для смартфона это удобно. В остальном расход больше зависит от качества сети и частоты переподключений, чем от протокола.
  • Поддержка на устройствах. Если на устройство нельзя ставить сторонние приложения, остаётся встроенный IKEv2. Для роутеров чаще выбирают WireGuard, AmneziaWG или OpenVPN. На телефонах и компьютерах с приложениями доступны все современные варианты.

Какой протокол выбрать в Amnezia VPN и Happ

Amnezia VPN поддерживает несколько протоколов, но при подключении по готовому ключу выбирать ничего не нужно: тип протокола и все параметры уже записаны в ключе. Happ — клиент на ядре Xray, и в нём подключение задаёт ссылка подписки, которая сама обновляет список серверов. Поэтому настройка протокола VPN в обоих приложениях сводится к импорту ключа или ссылки. В Flex-VPN ключи AmneziaWG открываются в Amnezia VPN, а профиль VLESS + Reality — в Happ или v2RayTun по ссылке подписки.

Как подобрать протокол на практике

  1. Начните с AmneziaWG: установите Amnezia VPN и импортируйте ключ по инструкции по настройке Amnezia.
  2. Проверьте подключение в обычных условиях: откройте несколько сайтов, проведите видеозвонок, переключитесь с Wi-Fi на мобильный интернет и обратно.
  3. Если в какой-то сети соединение нестабильно, добавьте профиль VLESS + Reality: установите Happ и импортируйте ссылку подписки по инструкции для Happ.
  4. Сравните оба профиля в одной сети и в одно и то же время, затем оставьте тот, что работает ровнее. Оба приложения можно держать установленными, но включать два VPN одновременно не стоит.

Приложения для Windows, macOS, Android и iPhone собраны на странице загрузок, а подробное сравнение двух протоколов — в статье AmneziaWG и VLESS + Reality: чем отличаются.

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

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

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

Какие протоколы ВПН считаются устаревшими?

PPTP: его схема аутентификации давно признана небезопасной, а Apple убрала его из iOS и macOS ещё в 2016 году. L2TP/IPsec пока работает, но уступает современным протоколам и постепенно исчезает из встроенных настроек систем.

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

WireGuard передаёт IP-пакеты по UDP и шифрует их сам. VLESS — лёгкий прокси-протокол: в классической конфигурации защиту даёт TLS или Reality, а подключение идёт поверх TCP, обычно на порту 443. Форматы ключей разные, поэтому и приложения нужны разные.

Можно ли открыть ключ AmneziaWG в приложении WireGuard?

Как правило, нет: в ключе AmneziaWG есть дополнительные параметры (Jc, S1, H1 и другие), которые стандартный клиент WireGuard не понимает. Используйте Amnezia VPN или другой клиент с поддержкой AmneziaWG.

Какой порт использует OpenVPN?

По умолчанию UDP 1194, но администратор сервера может назначить другой порт или перевести подключение на TCP. Точные значения указаны в файле конфигурации .ovpn.

Поддерживает ли Flex-VPN OpenVPN или IKEv2?

Нет. В сервисе используются AmneziaWG и VLESS + Reality: ключи AmneziaWG импортируются в Amnezia VPN, а ссылка подписки VLESS — в Happ или v2RayTun.

Flex-VPN

Готовы настроить подключение?

Выберите тариф на три устройства и получите профили подключения в Telegram.

Открыть бота