Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

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

Сетевое оборудование и VPN

WireGuard: генерация Private/Public Key для сервера и клиентов

Обновлено: 27.08.2026 · Официальная документация ↗

Принцип криптографии WireGuard

В отличие от классических VPN-серверов с логинами и паролями, безопасность WireGuard базируется на современной криптографии Curve25519. Каждое устройство (и сервер, и каждый подключаемый телефон или ноутбук) обязано иметь собственную уникальную пару ключей: Приватный ключ (Private Key) и соответствующий ему Публичный ключ (Public Key).

Назначение и секретность ключей

Тип ключаКому виденГде прописывается
Private Key (Закрытый)Строго секретен, знаете только выВ блоке [Interface] на самом устройстве
Public Key (Открытый)Передается открыто по любым каналамВ блоке [Peer] на противоположной стороне соединения
PresharedKey (Опционально)Секретен для двоихДополнительный симметричный ключ постквантовой защиты

Способ 1. Генерация ключей в консоли Linux (Терминал)

  1. Генерация связки ключей сервера:

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

    wg genkey | tee server_private.key | wg pubkey > server_public.key
  2. Генерация ключей для клиента (например, смартфона):
    wg genkey | tee client_private.key | wg pubkey > client_public.key
  3. Просмотр полученных ключей:
    cat server_private.key
    cat server_public.key

Способ 2. Автоматическая генерация в клиенте Windows / Android

В официальном приложении WireGuard для Windows/macOS/смартфонов ключи генерируются автоматически в один клик:

  1. Откройте WireGuard, нажмите «Добавить туннель» > «Добавить пустой туннель».
  2. Программа автоматически сгенерирует строку PrivateKey = ... и вверху покажет соответствующий PublicKey = ....
  3. Скопируйте сгенерированный Public Key и вставьте его в настройки пира на сервере.

Схема сборки конфигурационных файлов

# Конфигурация СЕРВЕРА (/etc/wireguard/wg0.conf):
[Interface]
Address = 10.0.0.1/24
PrivateKey = <ВСТАВИТЬ_SERVER_PRIVATE_KEY>
ListenPort = 51820

[Peer]
PublicKey = <ВСТАВИТЬ_CLIENT_PUBLIC_KEY>
AllowedIPs = 10.0.0.2/32

# Конфигурация КЛИЕНТА (client.conf):
[Interface]
Address = 10.0.0.2/24
PrivateKey = <ВСТАВИТЬ_CLIENT_PRIVATE_KEY>
DNS = 1.1.1.1

[Peer]
PublicKey = <ВСТАВИТЬ_SERVER_PUBLIC_KEY>
Endpoint = IP_СЕРВЕРА:51820
AllowedIPs = 0.0.0.0/0
💡 Практика специалистов: Никогда не пересылайте файлы .conf с готовым PrivateKey через открытые каналы связи (электронную почту без пароля). Если приватный ключ утек — сгенерируйте клиенту новую пару за 30 секунд.

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

Можно ли вычислить Private Key из Public Key?

Нет. Математика эллиптических кривых Curve25519 делает обратное вычисление приватного ключа невозможным современными суперкомпьютерами.

Что будет, если скопировать один и тот же Private Key на два телефона?

Они будут конфликтовать за сессию на сервере. Трафик будет хаотично переключаться между ними, вызывая постоянные обрывы связи у обоих устройств.

Как сгенерировать QR-код для быстрого подключения смартфона?

Установите утилиту qrencode на сервере: sudo apt install qrencode -y и выполните qrencode -t ansiutf8 < client.conf.

Как создать дополнительный ключ PresharedKey?

Выполните команду: wg genpsk > preshared.key и добавьте строку PresharedKey = ... в блок [Peer] на клиенте и сервере.

Полезные материалы
Рекомендуем