Ошибка handshake в AmneziaWG означает, что клиент и сервер не завершили начальный обмен служебными пакетами, поэтому туннель не поднялся. Чаще всего причина в недоступном UDP-порте, блокировке по сигнатуре или порту, неверных ключах, измененных параметрах AmneziaWG либо в сбитом времени на сервере или устройстве. В начале страницы есть кнопка с альтернативным официальным вариантом подключения: она уместна, когда не хочется разбираться с чужими конфигами и вручную перепроверять каждый параметр.
Что означает ошибка handshake
Handshake — это стартовое «рукопожатие» между клиентом и сервером. В этот момент стороны обмениваются служебными пакетами, подтверждают ключи и договариваются о рабочей сессии. Если этот этап не завершился, VPN может висеть в состоянии подключения, сразу отключаться или подключаться без трафика.
У AmneziaWG криптографическая база остается совместимой с логикой WireGuard, а поверх нее добавлена транспортная маскировка и изменяемые параметры пакетов. Именно поэтому проблема может быть не только в ключах, но и в сигнатуре, порте или специфических настройках протокола. Это прямо описано в документации AmneziaWG и в официальных материалах WireGuard.
На практике фраза вроде «handshake did not complete» почти всегда означает одно из двух: либо пакет от клиента не дошел до сервера, либо сервер ответил, но клиент не смог принять или распознать ответ.
Главные причины сбоя
Сначала полезно смотреть не на сам текст ошибки, а на класс проблемы. У AmneziaWG чаще всего встречаются такие сценарии:
- UDP-порт сервера недоступен или фильтруется провайдером;
- IP сервера недоступен из текущей сети;
- в конфиге указан не тот публичный ключ сервера или не та приватная часть на стороне клиента;
- после изменения серверных параметров старые ключи и конфиги перестали подходить;
- вручную менялись Jc, Jmin, Jmax, S1-S4, H1-H4, I1-I5, и теперь клиент и сервер фактически ждут разные пакеты;
- на сервере или устройстве сильно сбито время;
- сервер не активен, не оплачен или сам сервис протокола работает некорректно.
В официальной инструкции Amnezia отдельно указывает, что при проблемах с self-hosted-подключением нужно сперва исключить недоступность сервера и неудачные настройки протокола, а если вручную менялись параметры AmneziaWG, разумно начать с возврата к штатной конфигурации. Также там отмечено, что некоторые провайдеры режут UDP на портах выше 9999, поэтому смена порта на значение ниже 9999 может помочь.
Быстрая диагностика
| Симптом | Причина | Первое действие |
|---|---|---|
| Handshake не появляется совсем | Порт недоступен, IP заблокирован или сервер не отвечает | Проверить доступность сервера по SSH и UDP-порт |
| Подключение есть, трафика нет | Сбой маршрутов, AllowedIPs, DNS или ответ сервера не проходит обратно | Проверить конфиг и логи, затем протестировать другой интернет |
| Ошибка появилась после смены настроек AmneziaWG | Изменены параметры сервера или подключения | Вернуть стандартные значения и пересоздать конфиг при необходимости |
| Работает в одной сети и не работает в другой | Фильтрация UDP, порта или IP со стороны оператора | Проверить тот же сервер через другой интернет и другой порт |
| После замены ключей стало хуже | Перепутаны публичный и приватный ключи, старый конфиг на клиенте | Пересоздать ключи и заново импортировать профиль |
| После правки серверных настроек старые клиенты перестали подключаться | Ключи или файлы конфигурации устарели | Перевыпустить конфиги для пользователей |
Как проверить порт
Для AmneziaWG это один из самых частых источников проблемы. Протокол работает поверх UDP, а значит обычная проверка «сайт открывается — значит сервер жив» тут недостаточна. Нужен именно контроль порта и пути до сервера.
1. Убедитесь, что сервер вообще доступен
Попробуйте подключиться к серверу по SSH. Если SSH тоже не открывается из той же сети, где не работает VPN, проблема может быть в IP-адресе сервера или в ограничениях провайдера. Такой порядок проверки советует и сама Amnezia в материале по неполадкам AmneziaWG.
2. Сравните поведение в разных сетях
Одна из самых показательных проверок — попробовать тот же конфиг через другой источник интернета: домашний Wi‑Fi, мобильную сеть другого оператора, офисную сеть. Если в другой сети handshake проходит, значит проблема не в ключах, а в маршруте, фильтрации или самом порте.
3. Посмотрите, слушает ли сервер нужный UDP-порт
На сервере обычно проверяют, открыт ли нужный порт и запущен ли интерфейс. Конкретные команды зависят от вашей сборки и способа установки, но логика одна: нужно убедиться, что интерфейс WireGuard/AmneziaWG поднят, а UDP-порт действительно прослушивается. В Linux для диагностики часто используют вывод интерфейса и информацию из wg show, где можно увидеть peer и время последнего handshake через latest-handshakes. Такая возможность описана в man-странице wg.
4. Попробуйте сменить порт
Официальная инструкция Amnezia прямо рекомендует исключать блокировку по порту и при необходимости менять его в серверных настройках AmneziaWG. Там же отмечено, что порты выше 9999 у части провайдеров могут работать хуже, поэтому есть смысл проверить значения ниже 9999, например 585, 1234 или другой свободный вариант. В редких случаях помогает 443. Важно: если вы меняете порт в серверных настройках протокола, старые пользовательские конфиги и ключи подключения могут перестать подходить, их придется обновить.
Если вам не нужен именно ручной сценарий, а важнее предсказуемое подключение на разных устройствах, кнопка в начале страницы выглядит логичной альтернативой случайным конфигам и ручному перебору параметров.
Как проверить время сервера и устройства
Сильно сбитое время — не самая частая, но вполне реальная причина проблем с handshake. Когда часы на сервере или клиенте заметно уехали, протокол может вести себя нестабильно: соединение то поднимается, то нет, а в логах картина выглядит как будто сеть живая, но ответа нет.
Почему время важно
WireGuard использует таймеры и переинициализацию handshake по времени. Это не значит, что любая разница в несколько секунд сломает туннель, но грубый рассинхрон, неверная дата после сбоя VPS, ручная правка времени или сломанный NTP вполне могут мешать нормальной работе. В официальном описании протокола WireGuard отдельно разобраны таймеры переобмена и логика повторных handshake.
Что проверить на сервере
- Посмотрите текущие дату, время и часовой пояс на сервере.
- Убедитесь, что включена синхронизация времени через NTP.
- После исправления времени перезапустите интерфейс или сервис, если это требуется вашей конфигурацией.
- Повторите попытку подключения и проверьте, появился ли свежий handshake.
Что проверить на телефоне или ПК
- Включите автоматическую установку даты и времени.
- Проверьте, не задан ли вручную неверный часовой пояс.
- Если профиль импортировался давно, переимпортируйте его после исправления времени и серверных параметров.
| Ситуация | Что проверить | Решение |
|---|---|---|
| Сервер после перезагрузки показывает неверную дату | NTP, системные часы, часовой пояс | Включить синхронизацию времени и повторить подключение |
| Телефон подключается нестабильно | Автоматические дата и время | Отключить ручную настройку часов |
| Handshake то появляется, то исчезает | Не уходит ли время на сервере после перезапуска | Проверить службу синхронизации и состояние VPS |
Как проверить ключи и конфиг
Если сервер доступен, порт вроде бы живой, а handshake все равно не проходит, следующий кандидат — ключи и сам профиль подключения.
Что чаще всего ломают
- вставляют не тот публичный ключ сервера в клиентский конфиг;
- меняют серверные настройки и продолжают использовать старый файл клиента;
- путают профиль WireGuard и профиль AmneziaWG;
- копируют конфиг вручную с потерянными символами или пробелами;
- берут ключ или конфиг из стороннего источника, где часть параметров уже неактуальна.
Amnezia отдельно предупреждает, что вручную созданные WireGuard и AmneziaWG-конфигурации могут вызывать ошибки совместимости, а также что после изменений в серверных настройках протокола ранее выданные конфиги пользователей перестают работать.
Порядок проверки
- Сравните IP сервера и порт в клиенте с фактическими значениями на сервере.
- Проверьте, что в клиенте указан публичный ключ именно того сервера, к которому вы подключаетесь.
- Если недавно меняли серверные параметры AmneziaWG, пересоздайте пользовательский ключ или экспортируйте новый конфиг.
- Удалите старый профиль с устройства и импортируйте новый заново.
- Если есть второй клиент, например телефон вместо ПК, проверьте тот же новый конфиг на нем.
Признаки, что проблема именно в ключах
Обычно это выглядит так: сервер доступен, UDP-порт прослушивается, в другой сети ситуация не меняется, но последнего handshake нет вообще или он не обновляется после пересоздания соединения. В таких условиях безопаснее всего заново выпустить конфиг, а не править старый файл вручную.
Что проверить в параметрах AmneziaWG
У обычного WireGuard набор причин уже был бы понятен, но у AmneziaWG есть дополнительный слой параметров. Если вы вручную трогали Jc, Jmin, Jmax, S1-S4, H1-H4 или I1-I5, именно это может мешать handshake. В документации Amnezia описано, что протокол меняет заголовки пакетов, размеры handshake-сообщений и сигнатурные пакеты перед рукопожатием, а в инструкции по устранению неполадок прямо советуют сначала вернуть штатные параметры либо переустановить протокол без ручных изменений.
Особенно важно помнить разницу между настройками подключения и настройками сервера. В официальной инструкции Amnezia подчеркивается: если менять серверные настройки AmneziaWG, уже выданные ключи и файлы конфигурации пользователей перестанут работать. Поэтому типичная ошибка выглядит так: администратор меняет параметры на сервере, а клиент продолжает использовать старый профиль.
С чего начать безопасно
- Если параметры менялись вручную, верните значения по умолчанию или переустановите AmneziaWG на сервере.
- Проверьте соединение без самодельных значений H1-H4 и I1-I5.
- Если не помогло, тестируйте сначала порт, затем сигнатуру, а не все сразу.
- После серверных изменений обязательно экспортируйте новый конфиг клиента.
Когда задача не в эксперименте с ручной настройкой, а в рабочем и понятном подключении, вариант из блока в начале страницы обычно предсказуемее, чем поиск случайных ключей и конфигов из сомнительных источников.
Оптимальный порядок проверки без хаоса
Чтобы не перебирать причины вслепую, идите в таком порядке:
- Проверьте, работает ли интернет без VPN и открываются ли обычные зарубежные ресурсы.
- Проверьте доступность сервера по SSH из той же сети.
- Сравните работу того же профиля через другой интернет.
- Проверьте порт и при необходимости смените его на значение ниже 9999.
- Убедитесь, что время на сервере и устройстве синхронизировано.
- Пересоздайте конфиг и ключи, если были изменения на сервере.
- Верните штатные параметры AmneziaWG, если ранее меняли сигнатуры и заголовки вручную.
Такой порядок обычно быстрее приводит к результату, чем одновременная правка порта, ключей, DNS и параметров маскировки.
FAQ
Handshake не проходит, но сервер пингуется. Это значит, что порт открыт?
Нет. Ping и UDP-порт — разные вещи. Сервер может отвечать на ICMP или быть доступным по SSH, но нужный UDP-порт при этом может фильтроваться или не слушаться сервисом.
Нужно ли сразу менять ключи?
Не всегда. Сначала проверьте доступность сервера, сеть и порт. Но если вы меняли серверные настройки протокола или импортировали старый профиль, перевыпуск конфига часто действительно нужен.
Может ли проблема быть только в одной сети?
Да. Если в мобильной сети handshake не проходит, а в домашнем интернете проходит, это сильный признак фильтрации IP, UDP или конкретного порта со стороны оператора.
Стоит ли вручную менять H1-H4 и I1-I5?
Только если вы понимаете, зачем это делаете, и готовы проверять совместимость клиента и сервера. Для первичной диагностики лучше вернуться к штатным значениям.
Вывод
Ошибка AmneziaWG handshake почти никогда не бывает «загадочной». Обычно она упирается в один из четырех узлов: недоступный порт, сетевую фильтрацию, сбитое время или неправильные ключи и параметры. Начинайте с самого приземленного — доступен ли сервер, проходит ли UDP, не менялись ли серверные настройки, актуален ли клиентский конфиг. Если сервер self-hosted, не правьте сразу все подряд: один шаг, одна проверка, один результат. Такой подход экономит время и заметно повышает шансы быстро вернуть рабочее подключение.
Нет комментариев.