(правильный безопасный метод)
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 или роутером).