AmneziaWG: как создать конфиг вручную, через генератор и на роутере OpenWrt

Подробный гайд по созданию конфигурации AmneziaWG: ручная сборка .conf, параметры обфускации, генераторы, настройка на OpenWrt, диагностика и ответы на вопросы.

Что такое AmneziaWG и зачем нужен конфиг

AmneziaWG — это форк WireGuard, который сохраняет высокую производительность и простоту настройки оригинального протокола, но добавляет многоуровневую обфускацию трафика. В отличие от классического WireGuard, чьи фиксированные заголовки и предсказуемые размеры пакетов легко определяются системами DPI, AmneziaWG модифицирует заголовки, рандомизирует длины пакетов и имитирует другие UDP-протоколы, такие как QUIC или DNS.

Конфигурационный файл AmneziaWG описывает параметры интерфейса и пира: ключи, адреса, параметры обфускации (Jc, Jmin, Jmax, S1-S4, H1-H4), а также endpoint и маршруты. Без корректного конфига невозможно установить соединение, поэтому умение создавать и редактировать .conf-файлы — базовый навык для работы с этим протоколом.

Конфиг можно получить несколькими способами: сгенерировать автоматически через официальное приложение AmneziaVPN, собрать вручную в текстовом редакторе, использовать веб-генераторы или сформировать на роутере с OpenWrt. Каждый способ имеет свои особенности, и выбор зависит от ваших задач и уровня подготовки.

Структура конфигурационного файла AmneziaWG

Конфигурационный файл AmneziaWG состоит из двух основных секций: [Interface] и [Peer]. В секции [Interface] указываются параметры локального интерфейса: адрес (Address), DNS-серверы, приватный ключ (PrivateKey), а также параметры обфускации: Jc, Jmin, Jmax, S1-S4, H1-H4. В секции [Peer] — данные удалённой стороны: публичный ключ (PublicKey), preshared key (PresharedKey), AllowedIPs, Endpoint и PersistentKeepalive.

Пример базового конфига:

[Interface]
Address = 10.8.2.2/32
DNS = 10.8.2.1
PrivateKey = YK+vDL7NUh5rPZQj6+nFiBrDjnHUGglltVJDGtC0g3c=
Jc = 24
Jmin = 694
Jmax = 934
S1 = 64
S2 = 49
H1 = 761546921
H2 = 1817895874
H3 = 471341646
H4 = 1487481836

[Peer]
PublicKey = Rw7vs08tul7h4lIqJTiigY29QDhE9ocuunufV1nlXhE=
PresharedKey = qZl6hUX4375Kb9JlHbB6ddq3D9Q2/mkS4IxPVLoNjr0=
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = x.x.x.x:54444
PersistentKeepalive = 25

Параметры Jc, Jmin, Jmax управляют «мусорными» пакетами, которые отправляются перед рукопожатием для размывания сессии. S1-S4 задают длину случайных префиксов для разных типов пакетов (Init, Response, Cookie, Data). H1-H4 — это диапазоны значений для динамических заголовков. Важно, чтобы диапазоны H1-H4 не пересекались между собой.

Если вы используете AmneziaWG в режиме совместимости с WireGuard (без обфускации), параметры Jc, Jmin, Jmax, S1-S4, H1-H4 можно опустить или установить в стандартные значения. При отключённой маскировке конфиг полностью совместим с WireGuard.

Ручное создание конфига: пошаговая инструкция

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

  1. Сгенерируйте ключи. Вам понадобятся приватный и публичный ключи для интерфейса и пира. Это можно сделать с помощью утилиты wg (если установлен WireGuard) или через онлайн-генераторы. В AmneziaVPN ключи генерируются автоматически при добавлении сервера.
  1. Определите параметры обфускации. Если вы используете AmneziaWG 2.0 или новее, вам нужно задать Jc, Jmin, Jmax, S1-S4, H1-H4. Эти значения можно сгенерировать случайно или взять из примеров. Важно, чтобы они были одинаковыми на клиенте и сервере.
  1. Заполните секцию [Interface]. Укажите адрес вашего виртуального интерфейса (например, 10.8.2.2/32), DNS-сервер (обычно это IP сервера), приватный ключ и параметры обфускации.
  1. Заполните секцию [Peer]. Укажите публичный ключ сервера, preshared key (если используется), AllowedIPs (0.0.0.0/0 для полного туннеля), Endpoint (IP или домен сервера и порт) и PersistentKeepalive (рекомендуется 25 секунд для NAT).
  1. Сохраните файл с расширением .conf и импортируйте его в клиент AmneziaVPN или AmneziaWG.

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

Использование веб-генераторов конфигов

Для быстрого создания конфига можно использовать веб-генераторы, например AmneziaWG Config Generator. Такие инструменты позволяют выбрать формат (Legacy или AWG 2.0), настроить AllowedIPs, DNS, endpoint, порт, CPS-параметры и получить готовый .conf-файл или ссылку vpn:// для импорта на мобильное устройство.

Генератор полезен, когда нужно:

  • быстро собрать конфиг без ручного редактирования;
  • проверить различные route presets (например, только для определённых подсетей);
  • сравнить поведение hostname и прямого IP в endpoint;
  • подготовить мобильный профиль для нестабильных сетей.

Важно понимать, что генератор не гарантирует работу в любой сети. Подключение зависит от многих факторов: клиента, endpoint, UDP-фильтрации, DNS, маршрутизации, NAT и ограничений устройства. Поэтому при проблемах стоит использовать диагностику, а не просто перегенерировать конфиг.

Некоторые генераторы также предоставляют функцию healthcheck — проверку доступности API и endpoint-сценариев. Это помогает отделить проблемы конфига от проблем сети.

Настройка AmneziaWG на роутере OpenWrt

AmneziaWG можно развернуть на роутере с OpenWrt, чтобы обеспечить VPN-доступ к домашней сети или использовать роутер как VPN-сервер. Для этого потребуется:

  • роутер с OpenWrt (рекомендуется не менее 128 МБ ОЗУ и 32 МБ флеш-памяти);
  • статический белый IP-адрес (или использование NAT Map);
  • SSH-клиент и Python3 на ПК для генерации заголовков.

Установка пакетов:

  1. Скачайте с GitHub релизы пакетов kmod-amneziawg, amneziawg-tools, luci-app-amneziawg для вашей архитектуры.
  2. Установите их через System → Software → Upload Package, либо используйте скрипт установки.
  3. Сгенерируйте файл с заголовками с помощью header-generator.py.

Создание интерфейса:

  1. Перейдите в Network → Interfaces → Add new Interface, назовите его, например, HomeVPN, выберите протокол AmneziaWG VPN.
  2. Нажмите Generate new key pair, запомните публичный ключ.
  3. Укажите IP-адрес интерфейса (например, 10.8.2.1/24) и порт прослушивания (например, 54444).
  4. В разделе AmneziaWG Settings вставьте заголовки, полученные ранее.

Настройка файрвола:

  • В Network → Firewall для интерфейса HomeVPN установите Input = accept, Allow forward to destination zones = lan и wan, Allow forward from source zones = lan.
  • Добавьте Port Forward: протокол UDP, source zone WAN, external port 54444, destination zone HomeVPN, internal port 54444, internal IP 10.8.2.1.

Добавление пира:

  1. В Network → Interfaces → HomeVPN → Edit → Peers → Add Peer.
  2. Сгенерируйте ключи для пира, запомните приватный ключ и preshared key.
  3. Укажите Allowed IPs (например, 10.8.2.2/32) и включите Route Allowed IPs.
  4. После сохранения перезагрузите интерфейс.

Для генерации клиентского конфига на роутере установите пакет qrencode, затем в редактировании пира нажмите Generate configuration. Укажите внешний IP роутера в Connection endpoint. Для телефона можно отсканировать QR-код, для ПК — скопировать конфигурацию.

Параметры обфускации: как они влияют на конфиг

AmneziaWG 3.1 предлагает расширенные механизмы маскировки, которые настраиваются через конфиг. Основные параметры:

  • Jc, Jmin, Jmax — количество и размер «мусорных» пакетов, отправляемых перед рукопожатием. Они размывают начало сессии.
  • S1-S4 — длина случайных префиксов для пакетов Init, Response, Cookie и Data. Скрывают стандартные размеры WireGuard-сообщений.
  • H1-H4 — диапазоны значений для динамических заголовков. Делают заголовки непредсказуемыми.
  • CPS (I1-I5) — пользовательские сигнатуры для имитации других протоколов (например, QUIC). Позволяют задать произвольные байты, таймстампы, случайные данные.
  • Header Protection — дополнительное шифрование служебных частей пакетов с помощью ChaCha20.
  • Content Padding — добавление случайных байтов к транспортным пакетам.
  • Random Trailers — случайные данные в конце пакетов.
  • DisableCookies — отключение Cookie Reply для снижения fingerprint.

При ручном редактировании конфига важно, чтобы значения S1-S4 были не меньше 12 байт, если используется Header Protection. Также рекомендуется задавать одинаковые значения S1-S4 при использовании RandomTrailers, чтобы избежать ошибок определения типа пакета.

Если вы не уверены в параметрах, лучше использовать автоматическую генерацию через AmneziaVPN, которая заполняет их корректно.

AllowedIPs и маршрутизация: полный туннель или раздельное использование

AllowedIPs определяет, какие IP-адреса будут направляться через туннель. Значение 0.0.0.0/0 означает, что весь IPv4-трафик идёт через VPN (full tunnel). Добавление ::/0 включает IPv6. Если указать конкретные подсети, через туннель будет идти только трафик к этим сетям.

Раздельное туннелирование (split tunneling) позволяет использовать VPN только для определённых ресурсов, например, для доступа к домашней сети или обхода блокировок отдельных сайтов. Это снижает нагрузку на VPN-сервер и уменьшает задержки для остального трафика.

При использовании нескольких route presets (наборов CIDR) важно следить за количеством записей. Некоторые роутеры и мобильные клиенты могут молча обрезать длинные таблицы маршрутов, что приведёт к неработоспособности туннеля. Веб-генераторы часто показывают счётчик CIDR и предупреждают о превышении консервативного порога.

Пример: если вы хотите использовать VPN только для доступа к домашней сети 192.168.1.0/24, укажите AllowedIPs = 192.168.1.0/24. Весь остальной трафик будет идти напрямую.

Диагностика проблем с подключением

Если конфиг не работает, важно систематически проверять возможные причины. Типичные симптомы и их источники:

  • Работает через LTE, но не через Wi-Fi — скорее всего, проблема в UDP-фильтрации, NAT или captive portal в Wi-Fi сети.
  • IP работает, а hostname — нет — клиент не может зарезолвить домен через локальный DNS. Попробуйте использовать прямой IP в endpoint.
  • Вчера работало, сегодня нет — у конфига нет срока действия, но может измениться маршрут до anycast endpoint, доступность порта или поведение сети.

Для диагностики можно использовать:

  • Проверку доступности endpoint через ping или telnet (UDP-порт).
  • Просмотр логов клиента AmneziaVPN.
  • Использование healthcheck-инструментов веб-генераторов.
  • Сравнение конфигов с рабочими примерами.

Также стоит проверить, совпадают ли параметры обфускации на клиенте и сервере. Ошибка в одном символе может привести к полной неработоспособности.

Импорт конфига в клиенты и мобильные устройства

Готовый конфиг можно импортировать в различные клиенты:

  • AmneziaVPN (Windows, macOS, Linux, Android, iOS) — поддерживает импорт из файла, текста или QR-кода.
  • AmneziaWG (Android) — специализированный клиент для протокола.
  • WireGuard — если конфиг не содержит параметров обфускации, он совместим с оригинальным WireGuard.

Для мобильных устройств удобно использовать ссылку vpn://, которая содержит весь конфиг в сжатом base64-формате. Такую ссылку можно передать через мессенджер или открыть на телефоне — клиент автоматически предложит импорт.

При импорте на iOS в России могут быть особенности, связанные с доступностью приложений в App Store. Официальная документация Amnezia предлагает альтернативные способы установки.

После импорта проверьте параметры подключения: адрес, порт, ключи. Если что-то не совпадает, соединение не установится.

Безопасность и ограничения AmneziaWG

AmneziaWG сохраняет криптографическое ядро WireGuard (ChaCha20-Poly1305), что обеспечивает высокую безопасность. Однако обфускация не является абсолютной защитой от DPI: она лишь усложняет детекцию. В странах с агрессивной цензурой (например, в России) могут применяться более сложные методы анализа, включая поведенческий.

Версия 3.1 была выпущена в ответ на массовые блокировки в июне-июле 2026 года. Она добавляет механизмы против статистического анализа: изменение размеров, последовательности и интервалов между пакетами, а также скрытие части служебных данных.

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

Также стоит учитывать, что AmneziaWG работает поверх UDP, что может быть заблокировано в некоторых сетях. В таких случаях может помочь использование TCP-обёрток или других протоколов.

Вопросы и ответы

Можно ли использовать конфиг AmneziaWG в оригинальном WireGuard?

Да, если в конфиге отключены параметры обфускации (Jc, Jmin, Jmax, S1-S4, H1-H4 и другие). В этом случае конфигурация полностью совместима с WireGuard. Однако при использовании AmneziaWG-специфичных параметров оригинальный WireGuard не сможет установить соединение.

Что делать, если конфиг не работает через Wi-Fi, но работает через мобильный интернет?

Скорее всего, проблема в UDP-фильтрации, NAT или captive portal в Wi-Fi сети. Попробуйте:

  • изменить порт endpoint на менее распространённый;
  • использовать прямой IP вместо hostname;
  • проверить, не блокирует ли роутер UDP-трафик;
  • временно отключить файрвол или антивирус на устройстве.
Как сгенерировать ключи для AmneziaWG?

Ключи можно сгенерировать с помощью утилиты wg (из пакета wireguard-tools), онлайн-генераторов или через интерфейс AmneziaVPN при добавлении сервера. В OpenWrt ключи генерируются кнопкой Generate new key pair в настройках интерфейса или пира.

Что такое CPS и как его настроить в конфиге?

CPS (Custom Protocol Signature) — это параметры I1-I5, которые задают пользовательские пакеты для имитации других протоколов (например, QUIC). Они настраиваются в секции [Interface] и содержат теги: ** для статических байт, ` для timestamp, для случайных байт, для случайных букв, для случайных цифр. Пример: I1 = ** `.

Как импортировать конфиг на телефон через vpn://?

Ссылка vpn:// содержит весь конфиг в сжатом base64-формате. Скопируйте ссылку и отправьте её на телефон (например, через мессенджер). Откройте ссылку — AmneziaVPN или AmneziaWG распознает её и предложит импортировать конфиг. Это удобно, когда нет возможности передать файл.

Почему hostname endpoint работает хуже, чем прямой IP?

При использовании hostname клиент сначала резолвит домен через локальный DNS. Если DNS блокирует домен или возвращает неверный ответ, туннель не поднимется. Прямой IP исключает этот этап, но если IP-адрес anycast-узла изменится, соединение также может не установиться. Выбор зависит от конкретной сети.

Какие минимальные требования к роутеру для AmneziaWG?

Для установки AmneziaWG на OpenWrt рекомендуется не менее 128 МБ оперативной памяти и 32 МБ флеш-памяти. Также нужен статический белый IP-адрес (или использование NAT Map). Производительность зависит от архитектуры процессора, но AmneziaWG достаточно лёгкий и работает даже на бюджетных роутерах.