n1ro°
RU

Текст и данные · Инструкция

WireGuard handshake не обновляется

WireGuard handshake не обновляется. Если latest handshake не обновляется во время реальной попытки передать трафик, проверяйте endpoint, public keys, UDP-доступность и AllowedIPs; старый handshake в полном простое не.

Редакция N1RO · Проверено

Короткий ответ

Если latest handshake не обновляется во время реальной попытки передать трафик, проверяйте endpoint, public keys, UDP-доступность и AllowedIPs; старый handshake в полном простое не всегда означает поломку.

Как читать handshake вместе с RX/TX

WireGuard не обязан постоянно поддерживать свежий timestamp handshake, когда нет данных для передачи. `wg show` позволяет сопоставить latest handshake с endpoint и накопительными счётчиками RX/TX. TX растёт без RX — признак того, что локальная сторона отправляет данные, но ответа не получает; конкретная причина ещё не определена.

Совет: Зафиксируйте исходную точку: создайте тестовый трафик к внутреннему IP, который точно должен идти через проблемный peer.

Практическая проверка в воспроизводимых условиях

  1. 1. Создайте тестовый трафик к внутреннему IP, который точно должен идти через проблемный peer.
  2. 2. Проверьте `wg show` и сравните latest handshake, RX, TX и endpoint до и после теста.
  3. 3. Сверьте public key пира с ключом второй стороны и убедитесь, что вы смотрите именно нужный peer.
  4. 4. Проверьте UDP-порт сервера на локальном firewall и пограничном устройстве, а также актуальность DNS имени endpoint.
  5. 5. Сверьте AllowedIPs и маршруты; только затем тестируйте PersistentKeepalive для пира за NAT.

Важно: Не публикуйте private keys и preshared keys в логах.

Как не перепутать причину

Если TX не меняется при запросе к внутреннему адресу, нужный трафик может вообще не попадать к этому peer из-за AllowedIPs или маршрута. PersistentKeepalive полезен для некоторых NAT-сценариев, но не исправляет несовпадающие ключи или закрытый серверный порт. Разделяйте четыре ситуации. Если TX не растёт, пакет не выбирает этот peer — смотрите AllowedIPs и локальный маршрут. Если TX растёт, а RX остаётся на месте, проверяйте endpoint, UDP/firewall, NAT и ключи. Если оба счётчика растут, но приложение не работает, WireGuard как транспорт уже не главный подозреваемый: проверяйте адреса сервиса, DNS и ACL. Наконец, старый handshake без активного трафика допустим: WireGuard специально не поддерживает постоянную болтовню ради свежего таймстампа. Если доступна вторая сторона туннеля, снимите `wg show` одновременно там: это быстро показывает, на каком направлении прекращается обмен.

Предупреждение: Не перезапускайте интерфейс после каждого теста: это стирает полезный контекст и мешает увидеть динамику счётчиков.

Что нельзя считать исправлением

Не публикуйте private keys и preshared keys в логах. Не перезапускайте интерфейс после каждого теста: это стирает полезный контекст и мешает увидеть динамику счётчиков. Не перезапускайте интерфейс после каждого действия: так вы стираете накопленные счётчики и усложняете сравнение.

Что учитывать

Не публикуйте private keys и preshared keys в логах. Не перезапускайте интерфейс после каждого теста: это стирает полезный контекст и мешает увидеть динамику счётчиков. Не перезапускайте интерфейс после каждого действия: так вы стираете накопленные счётчики и усложняете сравнение.

Источники и проверка

Фактическая часть сверена по первичным источникам (в т.ч. WireGuard Quick Start). Пример и формулировки — редакция N1RO на 2026-09-23.