Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

WG_HANDSHAKE_TIMEOUT Сетевое оборудование и VPN

MikroTik WireGuard Error: handshake did not complete after 5 seconds

Обновлено: 24.08.2026 · Официальная документация ↗
  • В логах RouterOS появляется wireguard,error handshake did not complete after 5 seconds / giving up.
  • Счетчик Latest Handshake в меню /interface wireguard peers пустой или не обновляется.
  • Переданные байты (Tx) растут, принятые байты (Rx) равны 0.
  • Сетевой трафик внутри WireGuard туннеля полностью отсутствует.

1. Проверка разрешения входящего UDP порта в Firewall

Убедитесь, что порт прослушивания WireGuard открыт в цепочке Input:

/interface wireguard print
! Добавление правила в Firewall Filter (например, порт 51820)
/ip firewall filter
add chain=input action=accept protocol=udp port=51820 comment="Allow WireGuard" place-before=0

2. Сверка пары Public Key и Private Key

Публичный ключ пира на стороне MikroTik должен строго соответствовать публичному ключу интерфейса удаленного клиента (а не его приватному ключу):

/interface wireguard peers print detail
/interface wireguard print

3. Проверка Endpoint Address и Endpoint Port

Если удаленный узел имеет белый IP, убедитесь в правильности настроек endpoint:

/interface wireguard peers
set [find] endpoint-address="203.0.113.10" endpoint-port=51820 persistent-keepalive=25s

4. Настройка правильного MTU

Стандартный MTU для WireGuard — 1420 (или 1280 для мобильных/PPPoE сетей):

/interface wireguard set [find] mtu=1420

5. Проверка блокировки провайдером (DPI)

Если провайдер блокирует трафик WireGuard по сигнатурам протокола, смените порт прослушивания на нестандартный (например, UDP 443, 53 или диапазон 40000–50000).

💡 Практика специалистов: В RouterOS v7 при генерации ключей интерфейса публичный ключ вычисляется автоматически. Никогда не вставляйте чужой Private Key в поле Public Key пира — это самая частая ошибка конфигурирования.

Частые вопросы (FAQ)

Что означает ошибка 'handshake did not complete after 5 seconds'?

Маршрутизатор отправил пакет инициализации рукопожатия WireGuard, но не получил ответного пакета аутентификации от пира. Соединение не установлено.

Почему параметр persistent-keepalive важен для клиентов за NAT?

WireGuard работает по протоколу UDP без сохранения состояния. Опция 'persistent-keepalive=25s' заставляет узел отправлять пустые пакеты каждые 25 секунд для поддержания открытой трансляции в таблице NAT роутера.

Может ли опечатка в Allowed-IPs вызывать таймаут хэндшейка?

Нет, сам хэндшейк выполняется на уровне открытых ключей и UDP портов. Неверный Allowed-IPs заблокирует передачу данных уже после успешного хэндшейка.

Как проверить, отправляет ли клиент ответы?

Запустите сниффер пакетов: '/tool sniffer quick interface=ether1 ip-protocol=udp port=51820' и проверьте наличие двунаправленного потока пакетов.

Полезные материалы
Рекомендуем