Устранение неполадок WireGuard в Windows: сбой рукопожатия и застрявшая блокировка.
Эти руководства описывают сбои, о которых сообщают на деле: рукопожатие повторяется через 5 секунд, Block untunneled traffic (блокировать трафик вне туннеля) оставляет ПК без маршрута, и wireguard.exe попадает в карантин после обновления. Шаги рассчитаны на клиент 1.1.1, если отчёт не называет старую сборку.
Обновлено .
Импортировать туннель и включить его
Установите клиент Windows 1.1.1 со страницы загрузки. Сверьте размер MSI, прежде чем продолжить.
Откройте WireGuard. Служба менеджера запускает значок в трее, если он ещё не запущен.
Выберите Import tunnel(s) from file (импорт туннелей из файла).
Выберите один файл .conf или .zip с несколькими конфигами.
Выберите туннель и нажмите Activate (включить).
Убедитесь, что состояние читается как Active (активен) и что у узла есть время последнего рукопожатия и счётчик передачи.
Версия 1.1.1 отклоняет повторяющееся имя туннеля в этом импорте. Переименуйте и попробуйте снова. Почему имя отклоняется
Рукопожатие не завершилось за 5 секунд
Отчёт в списке рассылки за апрель 2021, по клиенту 0.3.11, показывал эту строку, хотя ping на публичный адрес узла всё ещё проходил. Перезапуск туннеля снимал это почти всегда, примерно на десятке машин Windows.
Откройте вкладку Log (журнал) или выполните wireguard /dumplog.
Найдите строку узла, где сказано, что рукопожатие не завершилось за 5 секунд.
Разрешите UDP на хост и порт из Endpoint. 51820 является только обычным примером.
Если этот узел за NAT, установите PersistentKeepalive в 25 для этого узла. Оставьте 0, если это не нужно.
Нажмите Deactivate (выключить) туннель, затем снова нажмите Activate.
Если установлен сторонний межсетевой экран, приостановите его только на время проверки, завершается ли рукопожатие, затем включите его снова.
Интернет пропал, когда туннель оборвался
Block untunneled traffic включается, когда у туннеля один узел и AllowedIPs этого узла включают 0.0.0.0/0 или ::/0. Блокировка нужна, чтобы пакеты не утекали в обычное подключение. Из-за неё упавший туннель ощущается как отсутствие сети.
Откройте WireGuard и проверьте, использует ли туннель 0.0.0.0/0 или ::/0.
Нажмите Deactivate. Блокировка привязана к этому туннелю.
Если нужен маршрут по умолчанию без этих правил межсетевого экрана, замените 0.0.0.0/0 на 0.0.0.0/1 и 128.0.0.0/1.
Замените ::/0 на ::/1 и 8000::/1. Флажок редактора переключает в эту форму.
Снова нажмите Activate. Проверьте один адрес, который должен остаться локальным, и один, который должен идти через туннель.
Добавляйте PersistentKeepalive = 25, только если этот узел должен принимать новые сессии после того, как путь затих, и он находится за NAT или межсетевым экраном с состоянием.
Во всех остальных случаях оставьте значение 0. Так задано в проекте по умолчанию.
Сохраните, нажмите Deactivate и затем Activate, чтобы запущенная служба приняла правку.
Антивирус поместил wireguard.exe в карантин
Не считайте каждую пометку безобидной и не считайте каждую пометку доказательством вредоносности. Сначала сравните файл с опубликованной сборкой.
Прочитайте версию и размер в таблице файлов. Клиент 1.1.1 весит 3.3 MB для amd64 и x86 и 2.9 MB для arm64.
Если размер или версия не совпадают, не восстанавливайте файл. Удалите его.
Если совпадает, вы в том классе отчётов, что и май 2021: McAfee поместил wireguard.exe в карантин после обновления, и исключение пропало при следующей смене хеша.
Восстановите или разрешите этот совпавший файл, затем снова проверьте исключение после следующего обновления.
Если служба всё ещё не запускается, прочитайте вкладку Log или выполните wireguard /dumplog.
Отчёт за декабрь 2023 о клиенте 0.5.3 и Windows 10 передавал, что поддержка G Data назвала сочетание принципиальной несовместимостью. Ping и иногда SMB проходили. HTTP нет. Их обходной путь: выключить межсетевой экран, подключиться, затем включить его снова. Изменения продукта они не обещали.
Запишите версию клиента. Тот отчёт был о 0.5.3, не о 1.1.1.
Выполните ping узла внутри туннеля. Если ping проходит, а браузер нет, межсетевой экран может обрабатывать туннель иначе, чем ICMP.
Проверку «выключить, затем включить» для межсетевого экрана используйте только как короткую пробу. Когда проба закончена, оставьте межсетевой экран включённым.
Если 1.1.1 всё ещё показывает этот разрыв, сохраните wireguard /dumplog, прежде чем менять другие параметры.
Практики, которые обходят частые ловушки
Закрытые ключи
Не отправляйте их почтой и не показывайте на снимках экрана. Менеджер хранит импорт как .conf.dpapi для Local System.
Раздельный туннель
Укажите в AllowedIPs только локальную сеть, если остальной интернет должен остаться на обычном маршруте.
Полный маршрут без блокировки
Используйте пары /1 вместо /0. Флажок в редакторе делает это.
Перед переустановкой
Экспортируйте туннели в zip. Открытый файл удаляется после шифрования DPAPI.
Предварительный общий ключ
Добавляйте его, только если сервер выдал секрет из 32 байт. Иначе оставьте поле пустым.
Скрипты
PreUp, PostUp, PreDown и PostDown выполняются, только если задан ключ реестра администратора, который их разрешает.