Что такое AmneziaWG 2.0 и зачем он нужен
AmneziaWG 2.0 — это развитие протокола AmneziaWG, который, в свою очередь, является модификацией WireGuard. Первая версия появилась в 2023 году и позволяла маскировать VPN-трафик с помощью мусорных пакетов и изменения заголовков. Однако с тех пор системы глубокого анализа трафика (DPI) стали значительно умнее: они научились распознавать не только стандартный WireGuard, но и многие обфусцированные протоколы по статистическим паттернам, размерам пакетов и временным характеристикам.
Версия 2.0 — это ответ на эти вызовы. Вместо простой маскировки заголовков она предлагает полную мимикрию под легитимные UDP-протоколы, такие как DNS, QUIC или SIP. Это означает, что ваш VPN-трафик выглядит как обычные DNS-запросы или QUIC-соединения, что значительно затрудняет его обнаружение и блокировку.
Протокол поддерживается в приложении AmneziaVPN начиная с версии 4.8.12.9 для десктопных платформ и Android. Для пользователей self-hosted серверов AWG 2.0 доступен уже сейчас, а для Free и Premium версий поддержка появится позже. Если вы хотите скачать AmneziaWG 2.0, вам нужно обновить приложение AmneziaVPN до последней версии и переустановить протокол на сервере.
Ключевые отличия AmneziaWG 2.0 от версии 1.0
Версия 1.0 умела отправлять мусорные пакеты перед handshake (параметры Jc, Jmin, Jmax), изменять размеры handshake-пакетов через padding (S1, S2) и заменять стандартные заголовки WireGuard на фиксированные значения (H1-H4). Этого было достаточно против простых сигнатурных DPI, но современные системы анализируют не только заголовки, но и размеры пакетов, их частоту и другие характеристики.
AmneziaWG 2.0 добавляет несколько важных нововведений:
- Signature Packets (i1-i5) — до пяти специальных пакетов, которые отправляются перед каждым handshake и имитируют начало легитимного протокола (DNS, QUIC и т.д.).
- Расширенный padding (S3 и S4) — теперь можно добавлять случайные байты не только к handshake-пакетам, но и к cookie reply (S3) и ко всем транспортным data-пакетам (S4). Это делает размеры пакетов непредсказуемыми.
- Диапазоны для заголовков H1-H4 — вместо фиксированных значений теперь можно задавать диапазоны, из которых случайно выбирается значение для каждого пакета. Это предотвращает запоминание DPI-системой постоянного заголовка.
Также из версии 2.0 удалены параметры j1-j3 и itime, которые были признаны избыточными. Важно отметить, что версия 1.5, которая использовалась ранее, уже содержала параметры I1-I5, но без остальных новшеств.
Как работает мимикрия трафика: signature packets и CPS
Signature packets — это, пожалуй, самое значительное нововведение AmneziaWG 2.0. Идея проста: перед каждым настоящим WireGuard handshake (который происходит примерно раз в две минуты) клиент отправляет серверу до пяти специальных пакетов, которые выглядят как начало обычного DNS-запроса, QUIC-соединения или любого другого протокола. DPI-система видит эти пакеты и считает, что трафик легитимный, пропуская его.
Формат этих пакетов описывается на языке CPS (Custom Protocol Signature). CPS — это набор тегов, которые позволяют собрать пакет из различных элементов:
**— вставляет точные байты (например, магические байты протокола).- `` — добавляет временную метку (4 байта Unix time).
- `` — добавляет N случайных байт.
- `` — добавляет N случайных букв/цифр (для текстовых протоколов).
- `` — добавляет N случайных цифр.
Например, сигнатура для имитации QUIC Initial packet выглядит так: **. Здесь ** — это начало QUIC-пакета (тип 0xc7, версия 1), ` — 8 случайных символов для Connection ID, — временная метка, ` — 50 случайных байт payload. В результате DPI видит пакет, который выглядит как начало QUIC-соединения, и пропускает его.
Важно понимать, что signature packets отправляются только перед handshake, а не перед каждым data-пакетом. Это снижает нагрузку и сохраняет производительность.
Расширенный padding: S3 и S4 для маскировки data-трафика
В версии 1.0 padding применялся только к handshake-пакетам (S1 и S2). Но handshake происходит редко — раз в две минуты. Основной объём трафика — это data-пакеты, которые несут загрузку сайтов, видео, файлов. Их размеры оставались предсказуемыми, что позволяло DPI-системам идентифицировать WireGuard.
AmneziaWG 2.0 решает эту проблему с помощью двух новых параметров:
- S3 (Cookie Reply Padding) — добавляет случайные байты к пакетам Cookie Reply, которые сервер отправляет клиенту при нагрузке (защита от DoS-атак). Стандартный размер такого пакета — ровно 64 байта, что является отличным индикатором для DPI. S3 позволяет изменить этот размер.
- S4 (Transport Data Padding) — добавляет случайные байты к каждому зашифрованному транспортному пакету. Это самый важный параметр, так как он работает постоянно для всего data-трафика.
Пример конфигурации:
S1 = 68
S2 = 149
S3 = 32
S4 = 16Здесь S4 = 16 означает, что к каждому data-пакету будет добавлено 16 случайных байт. Это делает размеры пакетов непредсказуемыми, что затрудняет статистический анализ. Однако стоит помнить о компромиссе: чем больше padding, тем больше накладные расходы и ниже скорость. Рекомендуется подбирать значение S4 экспериментально, исходя из вашей сети.
Диапазоны заголовков H1-H4: как это работает
В WireGuard каждый пакет начинается с 4-байтового идентификатора типа: Type=1 (Handshake Initiation), Type=2 (Handshake Response), Type=3 (Cookie Reply), Type=4 (Transport Data). AmneziaWG 1.0 позволял заменять эти значения на фиксированные через параметры H1-H4. Но DPI-системы быстро запоминали эти постоянные значения и снова блокировали трафик.
Версия 2.0 вводит диапазоны. Вместо одного значения вы задаёте диапазон, из которого для каждого пакета случайно выбирается число. Например:
H1 = 471800590-471800690
H2 = 1246894907-1246895000
H3 = 923637689-923637690
H4 = 1769581055-1869581055При отправке пакета значение выбирается случайно из диапазона, при приёме — принимается любое значение из настроенного диапазона. В результате каждый пакет имеет уникальный заголовок, и DPI не может запомнить паттерн.
Важное ограничение: диапазоны H1, H2, H3 и H4 не должны пересекаться. Иначе невозможно будет понять, какой тип пакета пришёл. Например, если H1 = 1000-2000, а H2 = 1500-2500, то пакет с заголовком 1700 может быть интерпретирован и как Handshake Initiation, и как Handshake Response, что приведёт к ошибкам.
Как скачать и установить AmneziaWG 2.0 на self-hosted сервер
Чтобы использовать AmneziaWG 2.0, вам понадобится приложение AmneziaVPN версии 4.8.12.9 или выше. Скачать его можно с официальной страницы загрузки или через зеркало. После установки приложения выполните следующие шаги:
- Откройте AmneziaVPN и нажмите на название любого подключения.
- Нажмите на иконку шестерёнки справа от подключения к вашему серверу — отобразится список всех протоколов, доступных для установки.
- Нажмите на иконку загрузки справа от протокола AmneziaWG, затем нажмите «Установить».
После завершения установки протокол AmneziaWG 2.0 станет доступным для выбора в параметрах подключения. Обратите внимание: если на сервере ранее был установлен AmneziaWG 1.0, он будет отображаться как AmneziaWG Legacy, и для подключения по новой версии потребуется сгенерировать новые ключи и конфигурации.
По умолчанию протокол устанавливается со случайным портом. Некоторые провайдеры блокируют UDP-трафик на высоких портах, поэтому рекомендуется сменить порт на значение до 9999, например 585 или 1234. Убедитесь, что выбранный порт не занят другим сервисом.
Если у вас нет возможности обновить приложение, вы можете использовать AmneziaWG 1.5 с параметром I1 для маскировки под DNS. Для этого в настройках подключения найдите поле I1 и вставьте строку вида **.
Как самостоятельно найти сигнатуру протокола для маскировки
Если вы хотите использовать нестандартную маскировку, вы можете самостоятельно найти сигнатуру нужного протокола с помощью Wireshark. Это бесплатный анализатор трафика, который можно скачать с официального сайта.
Процесс выглядит так:
- Установите и запустите Wireshark.
- Выберите сетевой интерфейс, через который идёт ваш интернет-трафик, и начните захват пакетов.
- Введите в поле фильтра название протокола, например
quicилиdns. - Выберите пакет, который хотите использовать для маскировки. Рекомендуется выбирать начальные или финальные пакеты сессии, так как они лучше подходят для имитации.
- Кликните по пакету правой кнопкой мыши → Copy → …as Hex Stream. Вы получите строку вида
d10000000108c10f0131a077e7f01087....
Чтобы использовать эту строку в AmneziaVPN, нужно преобразовать её в формат CPS:
- Добавьте префикс
**.
В итоге должно получиться: **.
Затем вставьте эту строку в параметр I1 (или I2-I5) в настройках сервера или клиента. Если на сервере установлен AmneziaWG 2.0, вы можете изменить параметры I1-I5 на стороне сервера, и они будут применяться ко всем подключающимся устройствам. Если используется AmneziaWG 1.0 (Legacy), изменения нужно вносить на каждом клиенте отдельно.
Частые вопросы и ограничения при использовании AWG 2.0
При переходе на AmneziaWG 2.0 важно учитывать несколько моментов.
Совместимость с приложением. Подключиться к VPN по протоколу AWG 2.0 можно только в AmneziaVPN версии 4.8.12.9 или выше. В более старых версиях подключение не будет работать — под названием подключения будет надпись «Not installed».
Необходимость новых ключей. При установке AWG 2.0 на сервер старые ключи и конфигурации от версии 1.0 продолжат работать, но только для протокола AmneziaWG Legacy. Для нового протокола нужно сгенерировать новые гостевые конфигурации. Обновить существующее подключение с 1.0 до 2.0 нельзя — потребуется создать новое.
Изменение настроек. Если вы меняете параметры только в настройках подключения на конкретном устройстве, перевыпускать ключи не нужно. Но если вы меняете серверные настройки (порт, параметры протокола), ранее выданные ключи перестанут работать, и нужно будет создать новых пользователей.
Производительность. Padding (особенно S4) увеличивает объём передаваемых данных, что может снизить скорость. Рекомендуется подбирать значения S4 и других параметров, исходя из вашей сети и требований к скорости.
Ограничения DPI. Несмотря на все улучшения, ни один протокол не даёт 100% гарантии обхода блокировок. DPI-системы постоянно развиваются, и возможно, что в будущем появятся методы обнаружения даже таких имитаций. Поэтому важно следить за обновлениями AmneziaVPN и своевременно обновлять протокол.
Практические рекомендации по настройке AWG 2.0
Чтобы максимально эффективно использовать AmneziaWG 2.0, следуйте этим рекомендациям.
Выбор порта. Используйте порты до 9999, так как многие провайдеры блокируют высокие UDP-порты. Популярные варианты: 53 (DNS), 123 (NTP), 443 (HTTPS), но учтите, что эти порты могут быть заняты другими сервисами. Лучше выбрать нестандартный порт, например 585 или 1234.
Настройка signature packets. Начните с простой сигнатуры DNS, например **. Это проверенный вариант, который хорошо работает. Если DNS заблокирован, попробуйте QUIC: **.
Подбор S4. Начните с S4 = 16 и постепенно увеличивайте, если трафик всё ещё детектируется. Но помните, что слишком большой padding снижает скорость. Оптимальное значение зависит от вашего интернет-соединения.
Диапазоны H1-H4. Убедитесь, что диапазоны не пересекаются. Используйте широкие диапазоны для H4 (data-пакеты), так как их больше всего. Например, H4 = 1769581055-1869581055 даёт 100 миллионов вариантов.
Тестирование. После настройки проверьте, что VPN работает, и попробуйте подключиться с разных устройств. Если возникают проблемы, проверьте логи AmneziaVPN и убедитесь, что все параметры введены корректно.
Обновления. Регулярно обновляйте AmneziaVPN до последней версии, так как разработчики исправляют ошибки и улучшают совместимость с новыми DPI-системами.
Вопросы и ответы
Где скачать AmneziaWG 2.0?
AmneziaWG 2.0 — это не отдельное приложение, а протокол, который встроен в AmneziaVPN. Чтобы его использовать, скачайте AmneziaVPN версии 4.8.12.9 или выше с официального сайта или зеркала. После установки приложения протокол AWG 2.0 можно установить на ваш self-hosted сервер через интерфейс приложения.
Чем AmneziaWG 2.0 отличается от версии 1.0?
Версия 2.0 добавляет signature packets (i1-i5) для имитации легитимных протоколов, расширенный padding (S3 и S4) для всех типов пакетов, а также поддержку диапазонов для заголовков H1-H4. Это позволяет маскировать трафик не просто под случайные данные, а под конкретные протоколы, такие как DNS или QUIC, что значительно затрудняет обнаружение DPI.
Нужно ли перевыпускать ключи при переходе на AWG 2.0?
Да, если вы устанавливаете AWG 2.0 на сервер, вам потребуется сгенерировать новые ключи и конфигурации для подключения. Старые ключи от версии 1.0 продолжат работать только для протокола AmneziaWG Legacy. Обновить существующее подключение с 1.0 до 2.0 нельзя — нужно создать новое.
Как настроить маскировку под DNS в AmneziaWG 2.0?
В настройках сервера или подключения найдите поле I1 (Special junk 1) и вставьте строку: **. Это имитирует DNS-запрос. Если вы используете AWG 2.0, изменения можно внести на стороне сервера, и они применятся ко всем клиентам.
Можно ли использовать AmneziaWG 2.0 в старых версиях AmneziaVPN?
Нет. Для работы с AWG 2.0 требуется AmneziaVPN версии 4.8.12.9 или выше. В более старых версиях подключение по этому протоколу не будет работать — под названием подключения будет надпись «Not installed». Если вы не можете обновить приложение, используйте AmneziaWG 1.5 с параметром I1 для маскировки.
Как самостоятельно найти сигнатуру протокола для маскировки?
Используйте Wireshark для захвата трафика нужного протокола (например, QUIC). Выберите начальный пакет сессии, скопируйте его как Hex Stream, затем преобразуйте в формат CPS: добавьте ** в конце. Полученную строку вставьте в параметр I1-I5 в настройках AmneziaVPN.
Какие ограничения есть у AmneziaWG 2.0?
Основные ограничения: требуется новая версия приложения, необходимость генерации новых ключей, возможное снижение скорости из-за padding, а также то, что ни один протокол не гарантирует 100% обход DPI. Также важно следить, чтобы диапазоны H1-H4 не пересекались, иначе протокол не сможет корректно определять типы пакетов.