Molystrix MOLYSTRIX Оформить
· 9 мин чтения ·
#AmneziaWG #диагностика #troubleshooting

AmneziaWG не работает 2026: диагностика на iPhone, Android, Windows и Mac

Что делать если AmneziaWG не подключается или рвётся: handshake fail, MTU mismatch, DNS-leak, конфликт с другим туннелем — пошаговая диагностика для всех платформ.

Картина типичная. Импортировали конфиг из QR-кода, увидели запись в списке, нажали свитч. Индикатор позеленел, в статус-баре появилась маленькая иконка туннеля. Открыли браузер — а страница висит. Открыли мессенджер — отправленное сообщение крутится с серым кружком. Перезагрузили приложение, выключили-включили тумблер, попробовали ещё раз. Тот же результат: визуально всё подключено, но трафик через туннель не идёт.

Самое неприятное в AmneziaWG — отсутствие внятных сообщений об ошибке. Стандартный WireGuard хотя бы пишет в логах «handshake did not complete after 5 seconds, retrying». AmneziaWG чаще просто молчит — статус Connected, индикатор горит, а под капотом handshake уже двадцать минут как не проходит. Пользователь смотрит на зелёную иконку и не понимает, что именно сломано.

На практике в 90% случаев это одна из шести проблем, и диагностируется каждая за пять-десять минут. Ниже разбор по платформам и по симптомам.

Где ваш случай — короткая навигация

Прежде чем читать всё подряд — сопоставьте симптом со строкой таблицы. Большинство ситуаций попадает в одну из шести.

Ваша ситуацияКуда читать
Только что импортировал конфиг, индикатор включился — но интернета нетПроблема 1 (handshake fail)
Туннель подключился, страницы открываются, но рвутся длинные / видео буферитПроблема 2 (MTU mismatch)
Туннель работает, но whoer.net или 2ip.io показывают мой реальный IPПроблема 3 (DNS-leak)
На iPhone попап про «Add VPN Configuration» вообще не появляетсяСм. отдельный гайд по iPhone-проблемам
Туннель работал вчера, сегодня после обновления приложения — handshake failПроблема 6 (несовместимая версия)
Хочу проверить, может ли AmneziaWG в принципе работать у меняСекция «Что нужно для работы» ниже

Дальше по порядку — сначала что вообще требуется AmneziaWG чтобы заработать, потом шесть типичных проблем с пошаговыми фиксами, потом FAQ.

Что нужно для работы AmneziaWG

Прежде чем диагностировать «сломался» — стоит проверить, что среда в принципе поддерживает протокол. У AmneziaWG довольно мягкие требования, но несколько пограничных случаев есть.

Поддерживаемые операционные системы. iOS 15 и новее, iPadOS 15+, macOS Big Sur (11.0) и выше, Android 7 (API 24) и выше, Windows 10 версии 1809 и выше. На свежих устройствах с этим проблем не бывает — но если у вас iPhone 6/6s на iOS 12, или Android-планшет 2017 года с прошивкой Android 6 — AmneziaWG там просто не запустится.

Где AmneziaWG не работает полноценно. Linux — есть только CLI-инструменты (amneziawg-tools, awg-quick), GUI-приложения нет. Можно настроить через .conf и awg-quick up tunnel0, но никакого графического переключателя не будет. Huawei-устройства с HMS и устаревшим EMUI без VpnService API — туннель ставится из APK, но Always-on не работает.

Сеть. AmneziaWG — это UDP-протокол. Если ваш провайдер или Wi-Fi-точка режет исходящий UDP целиком (некоторые корпоративные сети, отели, кафе с captive portal), туннель не поднимется в принципе. На мобильном интернете UDP пропускают почти всегда — это первая проверка: попробуйте переключиться с Wi-Fi на 4G/5G. Если на мобильном работает, а на Wi-Fi нет — упирается в сетевую политику, не в AmneziaWG.

Background-разрешения (Android). Для Always-on нужно дать приложению battery optimization exception — иначе на агрессивных ROM (Xiaomi MIUI, Huawei EMUI, OPPO ColorOS, Realme) система убивает фоновый процесс через минуту после того, как экран гаснет.

Системный профиль (iOS). AmneziaWG регистрирует в системе Personal VPN profile через NetworkExtension framework. Если при первом запуске вы случайно нажали Cancel на диалоге «AmneziaWG would like to add VPN configurations», профиль не установится — и туннель будет висеть в Connecting бесконечно. Подробный разбор iOS-кейсов — в отдельной статье.

Если по всем пунктам зелёный — переходим к диагностике.

Проблема 1: Handshake fail (самая частая)

Симптомы: индикатор подключён, иконка туннеля горит, но реально трафика нет. Speedtest упирается в «Не удалось установить соединение». Сайты не открываются, мессенджер не отправляет. Если у вас Linux и есть awg-CLI — команда awg show покажет latest handshake: never или latest handshake: 47 minutes ago.

Что такое handshake. Коротко про механику — поможет понять, что именно сломано.

AmneziaWG (как и обычный WireGuard) использует Noise IK pattern на базе криптографических примитивов Curve25519 (обмен ключами), ChaCha20-Poly1305 (шифрование) и BLAKE2s (хэш). Подключение начинается с того, что клиент отправляет первый handshake-пакет на endpoint сервера. Сервер должен ответить вторым пакетом в течение нескольких секунд. После успешного обмена устанавливается симметричный ключ сессии, через который идёт зашифрованный трафик.

Если первый пакет до сервера не дошёл — или дошёл, но сервер не ответил — handshake не состоится. Туннель формально «активен» (приложение его создало), но трафик не пойдёт.

Возможные причины и что проверять:

  • Endpoint недостижим. Провайдер или firewall режет именно этот UDP-порт. Проверка: попробуйте подключиться с мобильного интернета (4G/5G). Если на мобильном проходит — упирается в сеть, где вы находились. Часто корпоративные сети режут весь UDP кроме DNS (порт 53) и QUIC (порт 443).
  • Сервер сменил публичный ключ. Бывает после перевыпуска ключей на стороне сервиса. Старый конфиг ссылается на старый PublicKey пира, сервер с этим ключом больше handshake не подтвердит. Лечится запросом свежего конфига.
  • Параметры обфускации не совпадают. AmneziaWG добавляет к WireGuard несколько настраиваемых полей: junk packets (jc, jmin, jmax), magic header bytes (s1, s2), encrypted packet types (h1, h2, h3, h4). Если клиент пишет packet type h1=85, а сервер ждёт h1=137 — handshake не пройдёт даже если ключи верные. Параметры в .conf должны совпадать с серверными байт-в-байт.
  • Ваш приватный ключ уже используется другим устройством. Один пир — одна пара ключей. Если вы скопировали .conf с iPhone на Android и попробовали поднять туннель параллельно, сервер увидит handshake с одного и того же pubkey с двух разных endpoint’ов и начнёт «прыгать» между ними — оба устройства будут постоянно терять связь.

Что делать. Сначала попробуйте мобильный интернет — это отделяет проблему сети от проблем конфига. Если на мобильном тоже handshake fail — конфиг устарел или его параметры не совпадают с сервером. Запросите перевыпуск у того, кто выдал QR. У Molystrix перевыпуск идёт через бот @molystrix_bot: «Моя подписка» → «Получить конфиг» → выбираете слот, в ответ приходит свежий QR с актуальными параметрами.

Проблема 2: MTU mismatch (туннель работает, но длинные страницы зависают)

Симптомы: главная Google открывается мгновенно, поиск работает. А вот YouTube буферит на 1080p, GitHub-репозиторий с большим diff’ом не догружается, ChatGPT обрывает ответ на середине, картинка в Telegram-канале висит «1 KB из 940 KB». Короткий трафик пролезает, длинный — нет.

Почему так. У AmneziaWG поверх IPv4 заголовки забирают около 80 байт от каждого пакета (32 байта WireGuard transport header + 20 IP + 8 UDP + ~16-20 на junk/обфускацию). Если MTU физического канала 1500, безопасный MTU внутри туннеля — 1420. Но многие российские провайдеры используют PPPoE с дополнительным оверхедом 8 байт, и реальный MTU там 1492 → внутри туннеля надо 1412. На некоторых мобильных операторах при роуминге или при перегруженных сегментах MTU вообще режется до 1300-1280.

Когда MTU выставлен слишком большой, ОС пытается отправить пакет 1450 байт. Он не помещается в один UDP-датаграмм, должен фрагментироваться. Иногда фрагментация отключена флагом DF (Do not Fragment), иногда фрагменты теряются на маршруте — для TCP это retransmit, страница виснет.

Тест path MTU из терминала:

# Linux / macOS — отправить ping без фрагментации
ping -M do -s 1252 1.1.1.1   # 1252 + 28 байт IP/ICMP = 1280, минимум IPv6
ping -M do -s 1372 1.1.1.1   # 1372 + 28 = 1400
ping -M do -s 1392 1.1.1.1   # 1420, стандарт для WG поверх Ethernet
# Windows PowerShell
ping -f -l 1252 1.1.1.1
ping -f -l 1372 1.1.1.1

Найдите максимальный размер, при котором ping проходит без «Packet needs to be fragmented». Прибавьте 28 — реальный path MTU вашей сети. Отнимите 80 — безопасный MTU для интерфейса AmneziaWG.

Как починить. Откройте конфиг в AmneziaWG (на телефоне — нажать на тоннель → Edit), в секции [Interface] пропишите:

MTU = 1280

1280 — minimum guaranteed MTU для IPv6, проходит почти везде. Если после этого скорость осталась нормальной — оставьте. Если хочется выжать максимум — пройдите тест выше и подберите оптимальное значение для вашего провайдера.

Проблема 3: DNS-leak

Симптомы: speedtest.net показывает зарубежный IP сервера туннеля — всё ок, кажется. А зашли на whoer.net или 2ip.io — а там «DNS: 81.211.xx.xx, Rostelecom, Россия». Часть трафика всё-таки идёт мимо.

Что происходит. Туннель действительно пропускает TCP- и UDP-трафик через себя. Но DNS-запросы (запросы «дай мне IP для youtube.com») могут утекать мимо туннеля — если приложение использует свой собственный DNS-резолвер вместо системного, или если включён DoH (DNS over HTTPS) в браузере, который игнорирует системные настройки и шлёт запросы напрямую на dns.google или 1.1.1.1 — но через физический интерфейс, не через туннель.

Сайты, которые проверяют ваш IP через DNS (а это многие сервисы), увидят DNS-сервер вашего провайдера и поймут географию.

Что делать. Сначала жёстко зафиксируйте DNS в конфиге туннеля. В секции [Interface] добавьте или замените:

DNS = 1.1.1.1, 1.0.0.1

Это Cloudflare DNS — быстрый, без логирования. Альтернатива — Quad9 (9.9.9.9) или OpenDNS (208.67.222.222).

Дальше — отключите DoH в браузерах:

  • Chrome / Edge / Brave: chrome://flags → найдите Async DNS resolver → Disabled. Альтернативно chrome://settings/security → «Use secure DNS» → Off.
  • Firefox: Settings → General → Network Settings → отключить «Enable DNS over HTTPS».
  • Safari (macOS): DoH в Safari нет — DNS берётся из системы, всё OK.

На iPhone — Settings → VPN → нажать на свой профиль AmneziaWG → Configure DNS → Manual → 1.1.1.1. На Android — Settings → Network & Internet → Private DNS → Off (Private DNS у Android тоже может утекать мимо туннеля, парадоксально, но факт).

После этого пересдайте тест на whoer.net — DNS должен показывать тот же географический регион, что и IP.

Проблема 4: Конфликт с другим туннельным клиентом

Симптомы: AmneziaWG включается, в течение 5-10 секунд работает, потом сам отключается. Или вообще не включается — выскакивает уведомление «VPN session was disconnected by the system». На iOS — попап «Another VPN configuration is active».

Причина. Mobile-операционки пускают только один активный Personal VPN profile одновременно. На iOS это часть NetworkExtension framework — система просто не даёт второму процессу поднять TUN-интерфейс параллельно. На Android VpnService API ведёт себя так же: при попытке второго туннеля система разрывает первый.

Что может конфликтовать:

  • AmneziaVPN (мульти-протокольный клиент той же команды) — если установлен и активен, ловит TUN раньше
  • Cloudflare WARP / 1.1.1.1 with WARP
  • Outline Client
  • ProtonVPN, NordVPN, ExpressVPN — любой коммерческий клиент
  • AdGuard (если включена опция «Защита DNS» через локальный туннель)
  • Корпоративный профиль для удалённой работы

Лечится так. На iOS — Settings → General → VPN & Device Management → VPN → переключите все профили кроме AmneziaWG в Not Connected. Если какой-то профиль не нужен совсем — нажмите на него, прокрутите вниз → Delete VPN.

На Android — Settings → Network & Internet → VPN → отключите все кроме AmneziaWG. Профили AdGuard / WARP лучше удалить полностью, если не используете.

На Windows / Mac — посмотрите в системном трее, что у вас работает. Иногда Cloudflare WARP запускается автоматически при загрузке и тихо съедает TUN-интерфейс.

Проблема 5: Always-on отключается после перезагрузки (Android)

Симптомы: настроили Always-on VPN, поставили галочку «Block connections without VPN». Туннель работал. Перезагрузили телефон — флаг Always-on сбросился, AmneziaWG в фоне не поднялся. Открыли вручную → включился.

Причина. Агрессивные ROM некоторых китайских OEM (Xiaomi MIUI/HyperOS, Huawei EMUI, OPPO ColorOS, Realme, Vivo FuntouchOS) применяют свои battery-saver политики, которые игнорируют стандартное VpnService Android API. После reboot эти системы зачищают autostart-список, и AmneziaWG не получает permission поднять туннель до того, как пользователь откроет приложение вручную.

Что делать. Раз и навсегда дать AmneziaWG исключения:

  1. Battery optimization: Settings → Battery → Battery optimization → All apps → AmneziaWG → Don't optimize. Точное название пункта зависит от ROM — на MIUI это Battery & performance → App battery saver → AmneziaWG → No restrictions.
  2. Autostart: на MIUI / HyperOS — Settings → Apps → Manage apps → AmneziaWG → Autostart → ON. На EMUI — аналогично через Settings → Apps → AmneziaWG → Battery → Launch → Manual + Auto-launch.
  3. Lock app in recents: откройте AmneziaWG, потяните карточку приложения вниз в режиме недавних, появится замок — нажмите. Это говорит ROM не убивать процесс при «очистке памяти».
  4. Always-on VPN включён в системе: Settings → Network & Internet → VPN → AmneziaWG → шестерёнка → Always-on VPN: ON. И ниже: Block connections without VPN: ON (kill switch).

После reboot туннель должен подниматься автоматически за 5-10 секунд до того, как разблокируется экран.

Проблема 6: Не работает после обновления приложения

Симптомы: вчера всё работало штатно. Сегодня утром открыли — обновилось через App Store / Play Store ночью. Включили туннель → handshake fail. Откатить версию приложения хочется, но непонятно как.

Причина. AmneziaWG-обновления иногда меняют дефолтные значения параметров обфускации (jc, s1, s2, h1-h4). Если ваш конфиг от провайдера был сгенерирован под старые дефолты, а в новой версии клиент применяет новые — handshake не сходится: клиент шлёт «junk packet» одного размера, сервер ожидает другого.

В норме такие изменения должны быть backward-compatible — но иногда release вылетает с регрессией.

Что делать. Сначала проверьте, не на стороне ли провайдера это лечится. У Molystrix параметры конфигов автоматически синхронизируются с актуальной версией клиента — после крупных AmneziaWG-релизов обычно пересобираем шаблоны в первые сутки. Запросите свежий конфиг через бот — если проблема в этом, новый QR заработает.

Если провайдер не обновляет шаблоны — варианты:

  • Android: скачать APK предыдущей версии с APKMirror, удалить текущий клиент, поставить старую сборку. Отключить автообновления для AmneziaWG в Play Store (нажать на приложение → меню справа сверху → снять галочку Auto-update).
  • iOS: официально откатить версию приложения нельзя. Если App Store недоступен из России — установить можно через альтернативные методы (AltStore, Sideloadly), но это уже инфраструктурно неприятно. Проще запросить у провайдера обновлённый конфиг.
  • Windows: скачать предыдущий MSI с GitHub-релизов amneziawg/amneziawg-windows-client, удалить текущий, поставить старый.
  • macOS: через brew install --cask можно откатиться через brew tap-info, но проще пересоздать конфиг.

Если потратили час на диагностику и каждый шаг возвращает «handshake never» — возможно, дело не в вашем устройстве, а в самосбор-сервере с устаревшими параметрами AmneziaWG или в провайдере, который не обновляет шаблоны конфигов под новые релизы клиента. У нас Molystrix — 249 ₽ в месяц за три устройства, конфиг автогенерится со свежими параметрами обфускации под актуальную версию приложения, QR-кодом на email после оплаты. Перевыпуск через бот в любой момент, если что-то перестало работать. → Посмотреть тарифы

Что попробовать прямо сейчас — короткий чеклист

Десять минут на пять шагов — часто этого хватает, чтобы починить или хотя бы локализовать проблему.

  1. Перезагрузить устройство. Не «закрыть приложение», а полный рестарт. ОС иногда держит зомби-сессии — после reboot всё чистится.
  2. Удалить и переимпортировать конфиг. Свайп влево по тоннелю → Delete. Дальше — сосканировать QR заново из письма / бота. Это лечит случаи, когда клиент сохранил битый internal state.
  3. Переключиться на мобильный интернет. Если на 4G/5G работает, а на Wi-Fi нет — упирается в роутер/провайдера, не в AmneziaWG. Часто корпоративные сети режут UDP.
  4. Проверить статус сервиса. Если у вашего провайдера есть status-page или служебный канал — посмотрите там. Сервера падают, дата-центры тоже. Иногда «AmneziaWG сломался» — это ваш сервис тихо лежит.
  5. Написать в поддержку. Если конфиг от Molystrix — @molystrix_support, видим серверные логи в реальном времени, за 15 минут понятно, наш косяк или нет. У других провайдеров — ищите канал в боте или email на сайте.

Часто задаваемые вопросы

Почему AmneziaWG показывает зелёный индикатор, но интернета нет?

Чаще всего — handshake не прошёл, но приложение этого не показывает. На iOS / Android индикатор означает «туннель технически активен» (TUN-интерфейс создан), но не «handshake успешен». Если на Linux запустить awg show, увидите latest handshake: never — крипто-сессия не установилась. Причины: устаревший публичный ключ сервера, несовпадение параметров обфускации jc/h1-h4, провайдер блокирует UDP-порт. Решение — запросить свежий конфиг у того, кто выдал; попробовать через мобильный интернет; проверить, не идёт ли в конфигe устаревший endpoint.

Что значит «handshake fail» в AmneziaWG?

Handshake — это начальный криптографический обмен между клиентом и сервером по схеме Noise IK (Curve25519 для обмена ключами, ChaCha20-Poly1305 для шифрования). Клиент шлёт первый пакет с публичным ключом, сервер должен ответить вторым. Если первый пакет не дошёл, или сервер не ответил, или AmneziaWG-параметры обфускации не совпадают — handshake не состоится. Туннель формально активен, но трафик не пойдёт.

Что делать если AmneziaWG не подключается после перезагрузки телефона?

На Android — проверить battery optimization (Settings → Battery → AmneziaWG → Don't optimize) и autostart (на MIUI/HyperOS нужно явно включить). Always-on VPN-флаг сбрасывается на агрессивных ROM. На iPhone — открыть приложение вручную один раз после reboot, дальше работает. Если каждый раз приходится поднимать руками — нет permission на Personal VPN profile, переустановить и согласиться с системным диалогом.

Можно ли использовать AmneziaWG-конфиг от одного провайдера в клиенте, скачанном из APK?

Да, клиент один и тот же — что в App Store, что в Google Play, что APK с GitHub-релиза amneziawg/amneziawg-android. Конфиг привязан к серверу, а не к origin клиента. Главное — версия клиента должна поддерживать те параметры обфускации (s1, s2, h1-h4), которые прописаны в конфиге. Очень старые сборки (до 1.2.x) могут не понимать новые поля.

Что такое DNS-leak и как его проверить?

DNS-leak — когда часть DNS-запросов идёт мимо туннеля через физический интерфейс. Сайты, проверяющие географию через DNS-резолвер (а это многие сервисы), видят DNS вашего провайдера и понимают реальную локацию. Проверка — открыть whoer.net или 2ip.io, сравнить IP туннеля и DNS-провайдера. Если DNS показывает Rostelecom / МТС / Билайн, а IP зарубежный — у вас leak. Лечится явным DNS в [Interface] (DNS = 1.1.1.1) и отключением DoH в браузере.

AmneziaWG не работает на корпоративном Wi-Fi — почему?

Корпоративные сети часто пускают только TCP/80, TCP/443 и UDP/53 (DNS), всё остальное режут. AmneziaWG — UDP-протокол на нестандартном порту (обычно 51820), он туда не пройдёт. Workaround: попросить провайдера перенастроить сервер на UDP/443 (этот порт обычно открыт под QUIC, и трафик проходит как часть «нормального» интернета). У некоторых сервисов AmneziaWG на 443 идёт в конфиге по умолчанию.

Может ли антивирус мешать AmneziaWG?

Иногда да. Kaspersky Internet Security и ESET NOD32 на Windows могут классифицировать AmneziaWG-клиент как «потенциально нежелательное ПО» из-за того, что он добавляет TUN-адаптер и перехватывает системный трафик. Лечится добавлением AmneziaWG.exe в исключения. На macOS / iOS / Android такого почти не бывает.

Что делать если конфиг был, но потерялся?

У Molystrix — войти в бот @molystrix_bot, «Моя подписка» → «Получить конфиг» → выбрать слот → бот пришлёт свежий QR с новыми ключами. Старый конфиг при этом инвалидируется автоматически. У других сервисов — обычно есть личный кабинет или email-поддержка для перевыпуска, ищите по принципу «где оплачивали». QR-код, который вы получили один раз, и приватный ключ можно скопировать в безопасное хранилище (1Password, KeePass) — пригодится при смене устройства.

Резюме

  • Зелёный индикатор ≠ работающий туннель. На iOS / Android приложение показывает «Connected» как только создаст TUN-интерфейс — handshake к этому моменту мог не пройти. Реальная проверка — открыть speedtest или whoer.net.
  • 90% проблем — одна из шести. Handshake fail (устаревший конфиг или несовпадение обфускации), MTU mismatch (длинные пакеты теряются), DNS-leak (системный DNS идёт мимо), конфликт с другим Personal VPN profile, отвалы Always-on на агрессивных Android ROM, регрессия после обновления приложения.
  • Если клиент молчит — диагностируйте сетью. Попробуйте 4G/5G вместо Wi-Fi — отделит проблемы сети от проблем конфига. Откройте логи в приложении (на iOS: тоннель → View Logs, на Android: Settings → Logs) — там видно retry handshake’ов.
  • Не помогло — запросите свежий конфиг. Перевыпуск занимает минуту, но решает половину случаев: устаревший публичный ключ сервера, новые параметры обфускации после релиза клиента, кривой импорт. У Molystrix перевыпуск идёт через бот @molystrix_bot, конфиг приходит на email QR-кодом — 249 ₽ в месяц за три устройства.

Если симптомы шире и затрагивают мульти-протокольный AmneziaVPN-клиент (а не standalone AmneziaWG), посмотрите параллельный разбор про другой клиент той же команды. Если только устанавливаете AmneziaWG — есть гайд по установке на всех платформах и более подробный пошаговый разбор для iPhone и iPad. Чем AmneziaWG отличается от обычного WireGuard — в этом сравнении. Для близкой по жанру диагностики обычного WireGuard — отдельная статья по слоям.

Подключите Molystrix за 2 минуты

Защищённое соединение для работы с международными сервисами. Протокол AmneziaWG, серверы в Европе, 3 устройства, оплата картой или СБП.