21.1 Создание ключей клиента на локальном ПК (VPS и локальный ПК)

(правильный безопасный метод)

1. Генерация

wg genkey | tee client_private.key | wg pubkey > client_public.key

2. Конфиг клиента client.conf

[Interface]
PrivateKey = <client_private_key>
Address = 10.8.0.5/32
DNS = 1.1.1.1

[Peer]
PublicKey = <server_public_key>
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = <IP_сервера>:51820
PersistentKeepalive = 25

Или:
[Interface]
# Приватный ключ клиента
PrivateKey = uA...IC.....9kpXc=

# IP-адрес клиента в VPN-сети
Address = 10.8.0.12/32

# DNS (можно задать несколько — для России оптимальны ниже)
DNS = 77.88.8.8, 77.88.8.1, 1.1.1.1

# Сервер
[Peer]
# Публичный ключ сервера
PublicKey = 1....zz.....TBUh8=

# IP или домен сервера и порт
Endpoint = 79.170.146.77:51820

# Разрешённые сети (0.0.0.0/0 — весь трафик через VPN)
AllowedIPs = 0.0.0.0/0, ::/0 

# Поддерживает активное соединение
PersistentKeepalive = 25

3. Добавление клиента на сервер

sudo wg set wg0 peer <client_public_key> allowed-ips 10.8.0.5/32   (вставлять без <....>)
Сохраняем конфигурацю : sudo wg-quick save wg0
sudo systemctl restart wg-quick@wg0

( Из личного опыта, хотя там намудрил , надо разбираться : после "restart " выдаёт ошибку. Тогда можно сделать так: 
Чтобы сохранить то, что вы настроили командой wg set:

Способ А: Сохранить текущее состояние 
Раз вы уже всё настроили и оно работает, заставьте WireGuard перезаписать конфиг текущими рабочими данными:



sudo wg showconf wg0 | sudo tee /etc/wireguard/wg0.conf  

проверим файл на наличие «мусора»:


sudo grep -v '^#' /etc/wireguard/wg0.conf | grep '[a-zA-Z0-9]'
Должны появиться сделанные .conf клиентов : 

"[Peer]
PublicKey = <КЛЮЧ_КЛИЕНТА>
AllowedIPs = 10.8.0.5/32"

Процесс настройки клиентского подключения в WireGuard строится на принципе обмена публичными ключами и четкой маршрутизации трафика. На первом этапе генерируется уникальная пара ключей: приватный, который остается секретным и используется для дешифрования данных на стороне клиента, и публичный, служащий идентификатором для сервера. В конфигурационном файле client.conf задаются параметры виртуального интерфейса (IP-адрес клиента и DNS) и параметры «пира» (сервера), где AllowedIPs = 0.0.0.0/0 указывает системе направлять весь интернет-трафик через защищенный туннель. Завершающим шагом является регистрация публичного ключа клиента в базе данных сервера и перезапуск интерфейса, что устанавливает доверенное соединение между узлами и активирует безопасный обмен данными.

Разбор параметров конфигурации:

Чтобы лучше понимать логику работы туннеля, разберем ключевые блоки и переменные, используемые в настройке:

PrivateKey: Секретный ключ клиента. Он никогда не должен передаваться третьим лицам или на сервер; это «цифровая подпись» вашего устройства.

Address: Внутренний IP-адрес клиента внутри VPN-сети. В данном случае 10.8.0.5/32 означает, что узлу присвоен конкретный адрес в подсети сервера.

DNS: Указывает, какие серверы имен использовать. Использование 1.1.1.1 (Cloudflare) помогает избежать утечек DNS-запросов через провайдера.

PublicKey (в секции [Peer]): Это публичный ключ сервера. Он необходим клиенту для шифрования исходящих пакетов, которые сможет прочитать только целевой сервер.

AllowedIPs: Список IP-диапазонов, которые будут направляться в туннель. Значение 0.0.0.0/0, ::/0 — это «маршрут по умолчанию», означающий, что весь трафик (IPv4 и IPv6) пойдет через WireGuard.

Endpoint: Публичный IP-адрес и порт сервера, к которому инициируется подключение.

PersistentKeepalive: Параметр поддержания активности соединения. Каждые 25 секунд клиент будет отправлять пустой пакет, чтобы поддерживать сессию открытой, даже если фактического трафика нет (особенно важно при нахождении клиента за NAT или роутером).

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

Оставьте комментарий