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

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

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

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

WireGuard VPN не подключается (Нет Handshake): проверка блокировки UDP

Обновлено: 27.08.2026 · Официальная документация ↗

Симптомы зависания туннеля WireGuard

Вы нажимаете кнопку «Активировать» в клиенте WireGuard. Программа радостно загорается зеленым щитом, но ни один сайт не открывается, а интернет полностью пропадает. В окне статуса клиента вы видите странную картину:

Transfer: 15.4 KiB sent, 0 B received
Latest handshake: (пусто или более 2 минут назад)

Диагноз:

Клиент отправляет зашифрованные пакеты в пустоту, но не получает ни одного байта ответа от сервера. Процедура первичного рукопожатия (Handshake) не состоялась.

Главные причины отсутствия Handshake в WireGuard

Причина 1. Блокировка UDP-протокола или порта провайдером / TSPPU

WireGuard работает строго по протоколу UDP. Многие сотовые операторы, публичные Wi-Fi сети в отелях или магистральные провайдеры фильтруют нестандартный UDP-трафик или блокируют стандартный порт 51820.

Решение: смените порт на сервере на популярный

Переведите сервер и клиент WireGuard на разрешенные порты, которые провайдеры никогда не блокируют:

  • Порт 53 UDP (протокол DNS)
  • Порт 123 UDP (служба времени NTP)
  • Порт 443 UDP (протокол QUIC / HTTP3)
# В файле конфигурации клиента [Peer]:
Endpoint = 203.0.113.10:53

Причина 2. Ошибка в ключах Public Key / Private Key

В WireGuard нет логинов и паролей. Проверьте строгое соответствие ключей:

  • В конфиге Клиента в поле [Peer] PublicKey должен быть прописан Публичный ключ СЕРВЕРА.
  • На Сервере в секции клиента должен быть указан Публичный ключ КЛИЕНТА.

Причина 3. Неправильный размер пакета MTU

Если провайдер использует инкапсуляцию PPPoE или мобильную связь, стандартный пакет размером 1500 байт не пролезает в туннель. Уменьшите значение MTU в клиентском конфиге:

[Interface]
PrivateKey = aAAA...
Address = 10.0.0.2/24
DNS = 1.1.1.1
MTU = 1280

(Значение MTU = 1280 является безопасным минимальным стандартом для протокола IPv6/IPv4 и проходит через любые типы сетей).

💡 Практика специалистов: Если туннель WireGuard поднимается, Handshake проходит успешно, но крупные сайты зависают на загрузке — причина в 99% случаев кроется в завышенном MTU. Установка параметра MTU = 1280 в секции [Interface] решает проблему фрагментации пакетов раз и навсегда.

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

Почему WireGuard всегда показывает зеленый значок, даже если сервер выключен?

WireGuard — это протокол без сохранения состояния (Stateless). Клиент не поддерживает постоянное соединение и становится «зеленым» сразу при применении локального конфига. Реальным показателем связи является только наличие строки «Latest Handshake: X seconds ago».

Что такое PersistentKeepalive = 25?

Эта опция заставляет клиент отправлять пустой проверочный пакет каждые 25 секунд. Это критически важно, если клиент находится за домашним роутером (NAT), чтобы роутер не закрывал открытый UDP-порт в таблице трансляций.

Можно ли заставить WireGuard работать по TCP?

Нативно WireGuard не поддерживает протокол TCP. Для маскировки и оборачивания в TCP используются специальные обертки вроде <code>wstunnel</code> или <code>udp2raw</code>.

Как проверить, слушает ли сервер порт WireGuard?

На сервере Linux выполните команду с правами root: <code>sudo wg show</code>. Вы должны увидеть статус интерфейса и количество переданных байт.

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