AmneziaWG Error: Handshake blocked by DPI — Обход блокировок сигнатур WireGuard
Стандартный протокол WireGuard полностью блокируется цензурой или системами глубокого анализа пакетов (DPI/ТСПУ) по сигнатуре первых байт пакета инициализации рукопожатия.
- При попытке подключения обычный WireGuard зависает на стадии
latest handshake: (never), хотя сервер и порт доступны. - Провайдер сбрасывает соединение через 1–2 секунды после начала отправки пакетов (DPI детектирует характерный заголовок Type 1 Handshake Initiation).
- В логах AmneziaWG:
Handshake failed to initiate, no response from censorship-blocked endpoint. - Анализатор трафика показывает блокировку UDP-дейтаграмм фиксированной длины (148 байт).
1. Принцип обфускации в протоколе AmneziaWG (AWG)
AmneziaWG модифицирует протокол WireGuard, добавляя случайный мусорный трафик (Junk packets), динамический размер заголовков и рандомизацию идентификаторов типов сообщений (Message Type Headers), что делает трафик невидимым для сигнатурных анализаторов DPI.
2. Генерация параметров обфускации в секции [Interface]
Отредактируйте конфигурацию сервера и клиентов, добавив параметры обфускации пакетов:
[Interface]
Address = 10.1.0.2/24
PrivateKey = <Client_PrivateKey>
DNS = 1.1.1.1
# --- Параметры обфускации AmneziaWG ---
# Количество мусорных пакетов перед инициализацией
Jc = 4
# Диапазон случайного размера мусорных пакетов (в байтах)
Jmin = 40
Jmax = 70
# Размер дополнительного мусора в пакетах рукопожатия (Init / Response)
S1 = 15
S2 = 25
# Пользовательские магические заголовки типов пакетов (Custom Magic Headers)
H1 = 1
H2 = 2
H3 = 3
H4 = 43. Полная синхронизация параметров между сервером и клиентом
Параметры Jc, Jmin, Jmax, S1, S2, H1, H2, H3, H4 должны быть **строго одинаковыми** на стороне сервера AmneziaWG и в конфигурационном файле каждого клиента.
4. Смена стандартного порта
Переведите сервис на нестандартный UDP-порт (например, 443, 8443, 2053 или диапазон 40000–50000), чтобы исключить блокировку по номеру порта 51820:
[Interface]
ListenPort = 4435. Запуск и тестирование через AmneziaWG сервис
# Запуск через интерфейс awg-quick
awg-quick up awg0
awg show Частые вопросы (FAQ)
Как DPI обнаруживает обычный WireGuard?
Обычный WireGuard имеет фиксированную структуру: пакет Handshake Initiation всегда имеет размер ровно 148 байт, первый байт всегда равен 0x01 (Type 1), а последующие байты содержат строго определенные поля. DPI мгновенно детектирует этот паттерн.
Совместим ли клиент AmneziaWG с обычным сервером WireGuard?
Если на сервере запущен стандартный WireGuard (без патчей AWG), параметры обфускации работать не будут. Для работы требуется установить модуль ядра amneziawg-dkms или docker-контейнер AmneziaWG на сервере.
Какие значения H1-H4 являются безопасными?
H1-H4 заменяют стандартные типы сообщений (1, 2, 3, 4) на любые случайные 32-битные целые числа. Используйте уникальные произвольные числа для своего сервера.
Увеличивает ли AmneziaWG задержку (Ping)?
Несколько миллисекунд тратятся только на отправку начальных мусорных пакетов во время 2-шагового рукопожатия. После установки сессии скорость передачи и пинг идентичны чистому WireGuard.