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

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

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

Ошибка WireGuard: Keypair mismatch – Peer public key does not match

Обновлено: 24.08.2026  ·  Официальная база знаний
  • Интерфейс WireGuard успешно поднимается (interface: wg0 UP), но сетевой трафик не передается.
  • Рукопожатие не выполняется, в выводе wg show отсутствует строка latest handshake.
  • Приватный ключ на одной из сторон был перегенерирован, но публичный ключ не был обновлен на удаленном пире.

1. Проверка соответствия ключевой пары на клиенте

Вычислите открытый ключ непосредственно из текущего приватного ключа в конфигурационном файле клиента:

# Извлечение PrivateKey и генерация соответствующего PublicKey
CLI_PRIV=$(grep -i '^PrivateKey' /etc/wireguard/wg0.conf | awk '{print $3}')
echo "$CLI_PRIV" | wg pubkey

2. Сверка с конфигурацией сервера

Откройте конфигурацию сервера /etc/wireguard/wg0.conf и найдите блок [Peer] этого клиента:

# Значение PublicKey на сервере ДОЛЖНО СТРОГО совпадать с выводом команды выше
[Peer]
PublicKey = <ВЫЧИСЛЕННЫЙ_PUBLIC_KEY_КЛИЕНТА>
AllowedIPs = 10.0.0.2/32

3. Проверка публичного ключа сервера на клиенте

Выполните аналогичную проверку на стороне сервера:

SRV_PRIV=$(grep -i '^PrivateKey' /etc/wireguard/wg0.conf | awk '{print $3}')
echo "$SRV_PRIV" | wg pubkey

Убедитесь, что в файле клиента в секции [Peer] параметр PublicKey равен вычисленному ключу сервера.

4. Применение обновленных ключей без разрыва интерфейса

# Синхронизация конфигурации на лету
wg syncconf wg0 <(wg-quick strip wg0)
Практический опыт инженера: Для предотвращения человеческих ошибок при настройке сотен пиров используйте инструменты автоматизации (Ansible, Terraform) или веб-интерфейсы управления (WGDashboard, Firezone, Wireguard-UI).

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

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

Сервер никак не отвечает и не логирует ошибки по умолчанию (для защиты от сканирования). Он просто игнорирует пакеты, не прошедшие проверку Noise IK рукопожатия.

Можно ли восстановить PrivateKey из PublicKey?

Нет, Curve25519 является односторонней криптографической функцией. Восстановить приватный ключ из публичного математически невозможно.

Нужно ли перезапускать весь сервер при добавлении нового пира?

Нет, достаточно выполнить wg set wg0 peer <PUBLIC_KEY> allowed-ips <IP/32> или использовать wg syncconf для применения файла без сброса существующих сессий.

Что произойдет, если два клиента используют одинаковый PrivateKey?

Они будут иметь одинаковый PublicKey, и сервер сможет маршрутизировать пакеты только на тот Endpoint, от которого пришел последний пакет, постоянно перехватывая сессию друг у друга.