Как лучше заставить клиент Wireguard Windows переподключаться после обрыва?
Суть проблемы
Сейчас ситуация такая: клиент Wireguard Windows при кратковременном обрыве Интернет не переподключается к серверу
По вводным: приходится ручками нажимать отключить-подключить
По вводным: в настройках есть строка PersistentKeepalive = 20
Сейчас ситуация такая: при этом может показывать статус Последнее руковожатие 1д например (если день не трогать)
В логах примерно такое:
По вводным: 2025-11-25 10:17:29.946: [TUN] [WG2] Sending keepalive packet to peer 1 (128.10.17.124:13232)
По вводным: 2025-11-25 10:19:30.441: [TUN] [WG2] Sending handshake initiation to peer 1 (128.10.17.124:13232)
По вводным: 2025-11-25 10:19:30.455: [TUN] [WG2] Receiving handshake response from peer 1 (128.10.17.124:13232)
По вводным: 2025-11-25 10:19:30.455: [TUN] [WG2] Keypair 3 destroyed for peer 1
По вводным: 2025-11-25 10:19:30.455: [TUN] [WG2] Keypair 5 created for peer 1
По вводным: 2025-11-25 10:19:30.455: [TUN] [WG2] Sending keepalive packet to peer 1 (128.10.17.124:13232)
По вводным: 2025-11-25 10:21:30.476: [TUN] [WG2] Sending handshake initiation to peer 1 (128.10.17.124:13232)
По вводным: 2025-11-25 10:21:30.490: [TUN] [WG2] Receiving handshake response from peer 1 (128.10.17.124:13232)
По вводным: 2025-11-25 10:21:30.490: [TUN] [WG2] Keypair 4 destroyed for peer 1
По вводным: 2025-11-25 10:21:30.490: [TUN] [WG2] Keypair 6 created for peer 1
По вводным: 2025-11-25 10:21:30.490: [TUN] [WG2] Sending keepalive packet to peer 1 (128.10.17.124:13232)
По вводным: 2025-11-25 10:23:30.510: [TUN] [WG2] Sending handshake initiation to peer 1 (128.10.17.124:13232)
По вводным: 2025-11-25 10:23:30.524: [TUN] [WG2] Receiving handshake response from peer 1 (128.10.17.124:13232)
По вводным: 2025-11-25 10:23:30.524: [TUN] [WG2] Keypair 5 destroyed for peer 1
По вводным: 2025-11-25 10:23:30.524: [TUN] [WG2] Keypair 7 created for peer 1
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Клиент WireGuard на Windows обычно сам восстанавливает туннель, когда появляется сеть, но это зависит от DNS, endpoint, keepalive и состояния службы. Если после обрыва соединение не поднимается, начните с
PersistentKeepaliveи запуска туннеля как службы.В конфигурации peer на клиенте добавьте keepalive:
[Peer] PublicKey = SERVER_PUBLIC_KEY Endpoint = vpn.example.ru:51820 AllowedIPs = 0.0.0.0/0 PersistentKeepalive = 25
Для клиентов за NAT это почти всегда полезно. Значение 25 секунд поддерживает NAT-сессию живой и помогает быстрее восстановиться после кратких обрывов.
Проверьте, установлен ли туннель как Windows service. В WireGuard GUI можно включить tunnel, а для автозапуска лучше использовать встроенную установку tunnel service. Тогда он поднимается без ручного открытия приложения.
Если endpoint указан доменом, после смены сети может быть проблема с DNS. Для проверки временно укажите IP сервера. Если с IP переподключается, а с доменом нет — смотрите DNS-кэш, split DNS, корпоративные сети и доступность resolver.
Также проверьте firewall и AllowedIPs. Если весь трафик уходит в туннель, а DNS тоже через туннель, при падении может получиться замкнутый сценарий: клиенту нужно разрешить домен VPN, но DNS недоступен.
Итог: добавьте
PersistentKeepalive = 25, запустите туннель как службу, проверьте endpoint по IP/домену и DNS. Если нужно совсем жёсткое восстановление, можно добавить Task Scheduler, который проверяет handshake и перезапускает службу, но чаще хватает keepalive и корректного service mode.