Установка серверной части AmneziaWG на Ubuntu/Debian VPS

В прошлой статье мы разобрали, как AmneziaWG обманывает DPI с помощью шумовых пакетов, мимикрии под QUIC и шифрования заголовков. Теперь — практика. Будем поднимать сервер. Хорошая новость: вам не нужен мощный VPS. AmneziaWG работает на модуле ядра Linux, а значит, потребляет минимум ресурсов. Хватит самого дешёвого сервера за 2–4 $ в месяц с 1 vCPU и 512 МБ ОЗУ. Если планируете подключать много клиентов или гонять 4K-видео — берите 1 ГБ ОЗУ для комфорта. Что понадобится VPS с Ubuntu 24.04 LTS, Ubuntu 22.04 или Debian 12/13. Поддерживаются и другие версии, но на этих всё проверено. Доступ по SSH с правами root (или sudo). 2 ГБ свободного места на диске — минимум. Лучше 3+. 15–20 минут времени. 💡 Важно: В отличие от Marzban, для AmneziaWG не нужен домен, SSL-сертификат или reverse-proxy. Сервер работает на уровне ядра и общается с клиентами напрямую по UDP. Это одновременно и проще, и безопаснее — меньше поверхности для атаки. Шаг 1. Подготовка сервера ...

AmneziaWG: что это и как работает обфускация

В первой статье цикла мы разобрались, почему обычный WireGuard перестал работать в России. DPI-системы распознают его по четырём сигнатурам: фиксированному первому байту, размеру рукопожатия ровно 148 байт, порту 51820 и предсказуемым размерам пакетов.

Теперь — главный вопрос: как это исправить? Ответ — AmneziaWG. Это не «ещё один VPN», а глубоко модифицированный форк WireGuard, который сохраняет всю его скорость, но делает трафик неотличимым от обычного интернет-шума.

Разбираемся, как именно это работает.

Что такое AmneziaWG

AmneziaWG — это форк WireGuard-Go, созданный командой Amnezia VPN. Форк означает, что разработчики взяли открытый код WireGuard, сохранили его криптографическое ядро (ChaCha20-Poly1305, Curve25519, Noise Protocol Framework) и добавили сверху слой обфускации.

Ключевой принцип: криптография не меняется. AmneziaWG так же безопасен, как WireGuard. Меняется только «внешний вид» трафика — то, что видит DPI-система на стороне провайдера.

💡 Аналогия: Представьте, что WireGuard — это курьер в ярко-оранжевой форме с надписью «VPN» на спине. Все его видят и пропускают через блокпост только после проверки. AmneziaWG — тот же курьер, но в обычной одежде, с неприметной сумкой, который идёт по улице вместе с другими людьми. DPI-система просто не может его выделить из толпы.

Эволюция обфускации: от 1.0 до 3.1

AmneziaWG развивался поэтапно. Каждая версия отвечала на новые методы блокировки. Вот как это происходило:

📊 Эволюция AmneziaWG

Версия Год Что нового
1.0 2024 Базовая обфускация: мусорные пакеты (Jc), подмена заголовков (H1-H4)
1.5 2024–2025 Пакеты-подписи I1-I5, мимикрия под популярные UDP-протоколы
2.0 2025 CPS (Custom Protocol Signature), динамические заголовки, мимикрия под QUIC/DNS/SIP
3.0 2026 Header Protection — шифрование заголовков пакетов
3.1 2026 Защита от ИИ-анализа: рандомизация таймингов, метаданных, длины пакетов

Рассмотрим каждую версию подробно.

AmneziaWG 1.0: первая попытка

Самая первая версия решала базовую задачу: убрать сигнатуры WireGuard. Что именно было сделано:

1. Мусорные пакеты перед рукопожатием (Jc, Jmin, Jmax). Перед тем как начать handshake, клиент отправляет несколько пакетов со случайными данными. Они «размывают» начало сессии во времени и по размеру. DPI уже не может сказать: «первый пакет ровно 148 байт — это WireGuard».

2. Подмена магических чисел (H1-H4). В WireGuard каждый тип пакета имеет свой идентификатор: Init, Response, Cookie, Data. Эти идентификаторы — фиксированные байты, по которым DPI легко определяет протокол. AmneziaWG 1.0 позволил заменить эти байты на произвольные значения.

3. Padding для handshake (S1, S2). К пакетам Init и Response добавлялись случайные байты, чтобы их размер перестал быть фиксированным.

Однако к 2025 году DPI научился обходить и это: он анализировал не отдельные пакеты, а статистику — распределение размеров, интервалы, периодичность.

AmneziaWG 1.5: мимикрия под UDP-протоколы

Версия 1.5 добавила ключевой элемент — пакеты-подписи I1-I5 (Signature Chain).

Идея: перед рукопожатием клиент отправляет до пяти UDP-пакетов, которые выглядят как настоящий трафик других протоколов. Например, как QUIC Initial handshake или DNS-запрос. DPI видит «обычный» пакет, пропускает его — а следом идёт уже настоящий handshake AmneziaWG.

Пять пакетов (I1-I5) отправляются последовательно, каждые 120 секунд. Каждый из них описывается в формате CPS (Custom Protocol Signature) — о нём ниже.

AmneziaWG 2.0: от маскировки к мимикрии

Версия 2.0 — качественный скачок. Разработчики поняли: маскировка (сделать трафик «непохожим на VPN») недостаточна. Нужна мимикрия — полная имитация легитимного протокола.

Что появилось в 2.0:

1. CPS — Custom Protocol Signature

CPS — это язык описания фейковых пакетов. Вы можете «одеть» трафик AmneziaWG в костюм любого UDP-протокола. Синтаксис CPS выглядит так:

i1 = <b 0xd100000001><rc 8><t><r 50>

Где:

  • <b hex_data> — статические байты (имитация заголовка протокола)
  • <rc N> — N случайных ASCII-букв (для текстовых протоколов)
  • <t> — текущий Unix timestamp
  • <r length> — случайные байты заданной длины

Например, чтобы трафик выглядел как настоящий QUIC-запрос, в CPS прописывается реальная последовательность байт QUIC Initial handshake. DPI проверяет пакет, видит знакомую сигнатуру QUIC — и пропускает.

2. Динамические заголовки (H1-H4 как диапазоны)

В версии 1.0 значения H1-H4 были фиксированными числами. DPI мог запомнить их и блокировать. В 2.0 они стали диапазонами: например, H1 = 100–500. Для каждого пакета выбирается случайное значение из диапазона. DPI не может составить универсальное правило блокировки.

3. Padding для всех пакетов (S3-S4)

Раньше padding был только на handshake-пакетах. В 2.0 случайные байты добавляются ко всем типам пакетов, включая Data. Это ломает статистический анализ размеров.

4. Мимикрия под QUIC, DNS, SIP

2.0 научился прикидываться тремя популярными протоколами:

  • QUIC — используется в Google, YouTube, большинстве современных сайтов.
  • DNS — запросы к DNS-серверам. Абсолютно нормальный трафик.
  • SIP — протокол VoIP-звонков (WhatsApp, Telegram, Zoom).

Для провайдера это выглядит как обычная работа интернета.

💡 Пример из практики: Пользователь из Москвы использовал AmneziaWG 2.0 с мимикрией под QUIC. Провайдер МТС не мог определить VPN в течение 4 месяцев. Потом ТСПУ обновили сигнатуры — и блокировка вернулась. Это показывает: обфускация — это гонка вооружений, и версии нужно обновлять.

AmneziaWG 3.0: шифрование заголовков

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

В 3.0 появился Header Protection. Заголовок пакета (а для handshake — всё сообщение целиком) шифруется потоковым шифром ChaCha20. Ключ шифрования — HeaderProtectionKey, общий секрет, который должен совпадать на сервере и всех клиентах.

Что это даёт:

  • DPI видит полностью случайный поток байтов — не может прочитать даже тип пакета.
  • Сервер расшифровывает заголовок, обрабатывает пакет, и никто по пути не понимает, что это VPN.
  • Handshake-сообщение шифруется целиком — даже его структура скрыта.

Важное требование: в 3.0 параметры S1-S4 должны быть не менее 12 байт. Это связано с тем, что nonce для шифрования берётся из начала padding. Если padding меньше 12 байт — nonce физически не влезает, и handshake не состоится.

AmneziaWG 3.1: защита от ИИ-анализа

Летом 2026 года в России прошла волна блокировок, показавшая: ТСПУ научился анализировать поведение соединения целиком, а не отдельные пакеты. Вот что он отслеживает:

  • Размеры и последовательность пакетов.
  • Интервалы между пакетами.
  • Паттерны рукопожатия.
  • Keepalive-пакеты.
  • Объём трафика.
  • Количество соединений.
  • Повторяющиеся статистические паттерны.

Версия 3.1 отвечает на это рандомизацией всего:

  • RandomTrailers — случайный «хвост» у каждого пакета. Длина хвоста варьируется, что ломает статистику размеров.
  • Рандомизация таймингов — интервалы между пакетами больше не фиксированы. Keepalive и rekey-события происходят в случайные моменты.
  • Обфускация метаданных — скрываются технические значения, по которым ИИ мог бы идентифицировать протокол.
  • Расширенный набор параметров pre-shared key — больше вариативности в handshake.

Результат: два разных сеанса AmneziaWG выглядят по-разному. ИИ-система не может найти общий паттерн, потому что его нет.

Как это работает на уровне пакетов

Посмотрим на конкретный пример. Вот что отправляется при установке соединения:

📦 Цепочка пакетов AmneziaWG 3.1

Шаг Что отправляется Как выглядит для DPI
1 I1 (CPS-пакет) QUIC Initial handshake
2 I2–I5 (CPS-пакеты) DNS-запросы, случайный UDP
3 Jc мусорных пакетов Случайный UDP-трафик
4 Init handshake (зашифрованный) Непонятный поток байтов
5 Data (зашифрованный) Случайный UDP с варьирующимися размерами

Для DPI это выглядит как обычный сеанс: несколько UDP-пакетов, похожих на QUIC/DNS, затем непонятный шифрованный трафик. Ни одного признака VPN.

Сравнение с обычным WireGuard

⚖️ WireGuard vs AmneziaWG

Параметр WireGuard AmneziaWG 3.1
Скорость 950+ Мбит/с 880+ Мбит/с
Криптография ChaCha20-Poly1305 ChaCha20-Poly1305
Обфускация Нет Встроенная
Обход DPI ❌ Блокируется ✅ Работает
Параметры обфускации — Jc/Jmin/Jmax, S1-S4, H1-H4, I1-I5, CPS
Совместимость Стандарт Требует клиенты AmneziaWG

Потери скорости — около 7%. Это цена за обфускацию. Криптография идентична.

Практические рекомендации по настройке

Если вы разворачиваете AmneziaWG, вот что важно знать:

1. Параметры Jc/Jmin/Jmax

Это количество и размеры мусорных пакетов. Сообщество рекомендует:

  • Для мобильных сетей: Jc=3–10, Jmin=40, Jmax=100 (мягкий набор).
  • Для стабильных сетей: Jc=15, Jmin=1, Jmax=10 (минимальный шум).
  • Не ставьте Jc=120 — это создаёт ненужный спам и замедляет подключение.

2. Диапазоны H1-H4

В 2.0+ используйте диапазоны, а не фиксированные числа. Например:

H1 = 100-500
H2 = 1000-1500
H3 = 2000-2500
H4 = 3000-3500

Диапазоны не должны пересекаться — иначе handshake не пройдёт.

3. HeaderProtectionKey (3.0+)

32 байта в base64. Должен совпадать побайтово на сервере и всех клиентах. Если не совпадает — handshake никогда не состоится, и в логах не будет ни одной ошибки (для принимающей стороны это просто мусор из интернета).

4. S1-S4 в 3.0+

Должны быть ≥ 12. Старые конфиги с S3=5 в 3.0 невалидны.

5. CPS-пакеты I1-I5

Не обязательны к совпадению на сервере и клиенте — это отдельные «приманки», которые принимающая сторона не проверяет. Но их наличие значительно повышает устойчивость.

Итог

AmneziaWG — это эволюция WireGuard в условиях цензуры. Криптография осталась той же, но внешний вид трафика изменился до неузнаваемости.

Ключевые выводы:

  • AmneziaWG 1.0–1.5 — базовая обфускация, работает против простого DPI.
  • AmneziaWG 2.0 — мимикрия под QUIC/DNS/SIP, динамические заголовки. Работает против продвинутого DPI.
  • AmneziaWG 3.0 — шифрование заголовков. DPI не может прочитать даже тип пакета.
  • AmneziaWG 3.1 — защита от ИИ-анализа через рандомизацию всего.

Это гонка вооружений. Каждый раз, когда ТСПУ обновляет сигнатуры, AmneziaWG выпускает новую версию. Пока что протокол выигрывает.

В следующей статье цикла мы разберём установку серверной части AmneziaWG на Ubuntu/Debian VPS — пошагово, с командами и проверками.


➤ Следующая статья: «Установка серверной части AmneziaWG на Ubuntu/Debian VPS»

📚 Это часть цикла «AmneziaWG: полное руководство». Смотрите все статьи цикла.

Комментарии

Популярные сообщения

🧬 ChaCha20 и Curve25519: Криптография под капотом WireGuard

Немного о том, зачем это нужно.

🔌 L2TP: протокол, который объединил лучшее от двух миров

⚡ ИИ-помощник (на OpenRouter)

Спросите про VPN, протоколы или настройку серверов.