Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

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

WireGuard не передает трафик (Handshake failed): решение проблемы

Обновлено: 27.08.2026  ·  Официальная база знаний

Симптомы сбоя: Send растет, а Receive равен нулю

В официальном клиенте WireGuard туннель переходит в активный статус (горит зеленый значок), счетчик отправленных пакетов (Data sent / Передано) непрерывно увеличивается, но счетчик принятых данных (Data received / Получено) остается равным 0 B или замирает на нескольких сотнях байт. Строка Latest handshake (Последнее рукопожатие) отсутствует вовсе.

Диагностика счетчиков трафика WireGuard

Показатель клиентаСостояние туннеляВ чем неисправность
Sent: 1.2 MB | Received: 0 BРукопожатие не состоялосьНеверный Public Key, закрыт UDP-порт на сервере или блокировка провайдером
Sent: 50 KB | Received: 48 KB (потом 0)Рукопожатие прошло, пакеты застрялиНе настроен IP Forwarding/NAT на сервере или завышен размер MTU
Latest Handshake: 5 seconds agoТуннель полностью исправенЕсли сайты не грузятся — дело исключительно в DNS

Пошаговый чеклист устранения сбоя Handshake

  1. Проверяем путаницу в публичных ключах (Главная ошибка новичков):

    В WireGuard используется строгая перекрестная схема ключей:

    • В конфиге Клиента в блоке [Peer] должен быть прописан Public Key СЕРВЕРА.
    • В конфиге Сервера в блоке [Peer] должен быть прописан Public Key КЛИЕНТА.
    • Ни в коем случае не копируйте Private Key в чужие блоки!
  2. Проверяем параметр Endpoint и порт:

    Убедитесь, что в файле клиента в строке Endpoint = IP_СЕРВЕРА:51820 указан правильный белый адрес сервера и открытый UDP-порт.

  3. Открываем UDP-порт в фаерволе сервера:

    WireGuard работает исключительно по протоколу UDP. Проверьте фаервол на Linux VPS:

    sudo ufw allow 51820/udp
    sudo iptables -A INPUT -p udp --dport 51820 -j ACCEPT
  4. Проверяем параметр AllowedIPs:

    На стороне сервера в блоке пира клиента строка AllowedIPs должна содержать точный внутренний IP клиента с маской /32 (например, AllowedIPs = 10.0.0.2/32).

  5. Уменьшаем размер пакета (MTU):

    При работе через мобильные сети или PPPoE стандартный размер пакета 1500 может фрагментироваться и блокироваться. Добавьте в блок [Interface] клиента строчку с пониженным MTU:

    MTU = 1280

Важно для РФ: Во многих регионах стандартный порт WireGuard (51820 UDP) и сигнатура протокола блокируются провайдерами через ТСПУ. Попробуйте сменить порт на нестандартный (например, 45678 UDP) или использовать обфускаторы AmneziaWG / ShadowRay.

Практический опыт инженера: Если handshake успешен, но сайты открываются медленно или «зависают на 99%», проблема на 100% в параметре MTU. Установите MTU = 1280 или MTU = 1360 в свойствах интерфейса клиента.

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

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

WireGuard — это протокол без сохранения состояния (Stateless). У него нет постоянной сессии, как у TCP. Клиент просто отправляет UDP-пакеты в пустоту и считает соединение включенным.

Что делает параметр PersistentKeepalive = 25?

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

Как посмотреть статус подключенных клиентов на сервере?

Выполните в терминале команду sudo wg show. Вы увидите список пиров, время последнего рукопожатия (latest handshake) и объем переданных данных.

Могут ли два разных клиента использовать один и тот же IP внутри AllowedIPs?

Категорически нет. Сервер WireGuard использует AllowedIPs для внутренней маршрутизации. Если у двух пиров совпадет IP, трафик пойдет только последнему ответившему.