wg show на стороне сервера показывает latest handshake а в журнале приложения handshake did not complete

Ситуация, когда 

wg show на сервере показывает свежий latest handshake, а клиент жалуется на незавершенное рукопожатие, обычно означает асимметричную связь: сервер принимает пакеты клиента, но ответы сервера не доходят обратно. Основные причины — блокировка UDP-трафика (файрвол), неправильная маршрутизация (NAT) или конфликт IP-адресов. 

Основные причины и способы решения:

Блокировка трафика (Firewall/NAT/Провайдер):Проблема: Сервер видит пакеты (handshake прошел), но ваш клиент не получает ответ от сервера.Решение: Проверьте iptables/ufw/nftables на сервере (должен быть открыт UDP-порт WireGuard). Также убедитесь, что ISP или облачный провайдер (AWS, GCP, Oracle) не блокируют входящий/исходящий UDP-трафик Server Fault.Проблемы с NAT/«Серый» IP (CGNAT):Проблема: Если клиент за NAT, со временем запись в таблице NAT провайдера устаревает, и сервер не может отправить ответ.Решение: Настройте PersistentKeepalive в конфиге клиента. Добавьте PersistentKeepalive = 25 в секцию [Peer]. Это заставит клиента держать NAT-запись активной Keenetic Community.Неправильный Endpoint или IP-адрес:Проблема: В AllowedIPs клиента или сервера указаны неверные IP-адреса, либоEndpoint на клиенте указывает на неверный порт/IP Reddit.Решение: Перепроверьте PublicKey клиента на сервере и PublicKey сервера на клиенте. Убедитесь, что IP-адреса в туннеле не конфликтуют с локальной сетью.MTU (Maximum Transmission Unit):Проблема: Пакеты рукопожатия слишком велики и блокируются промежуточным оборудованием.Решение: Попробуйте уменьшить MTU в конфиге клиента (например, MTU = 1280 или MTU = 1360).Время (System Time):Проблема: Разница во времени между сервером и клиентом.Решение: Синхронизируйте время с помощью NTP на обоих устройствах. 

Диагностика: Используйте tcpdump -ni any udp port <порт_wg> на сервере, чтобы увидеть, уходят ли пакеты (send) в ответ на входящие received
