WireGuard: добавление нового клиента (Peer) и генерация QR-кода
Задача: подключить телефон или ноутбук к серверу WireGuard
WireGuard — это сверхбыстрый и современный протокол VPN. В отличие от старых систем с логинами и паролями, безопасность WireGuard построена на криптографических парах ключей (Public / Private Key). Чтобы подключить новое устройство (Peer), необходимо сгенерировать ключи и добавить запись в конфигурацию сервера.
Пошаговый процесс добавления клиента
Шаг 1. Устанавливаем утилиту для генерации QR-кодов на сервере
Подключитесь к вашему Linux-серверу WireGuard по SSH и установите генератор QR-кодов:
sudo apt update && sudo apt install qrencode -yШаг 2. Генерируем ключи для нового клиента (например, smartphone_alex)
# Переходим в рабочую папку:
cd /etc/wireguard/
# Генерируем приватный и публичный ключ для клиента:
wg genkey | tee alex_private.key | wg pubkey > alex_public.key
# Смотрим сгенерированные ключи:
cat alex_private.key
cat alex_public.keyШаг 3. Добавляем клиента в конфигурацию сервера wg0.conf
Откройте главный конфигурационный файл сервера sudo nano /etc/wireguard/wg0.conf и допишите в самый конец новый блок [Peer]:
[Peer]
# Имя: Смартфон Alex
PublicKey = ВСТАВЬТЕ_СОДЕРЖИМОЕ_ФАЙЛА_alex_public.key
AllowedIPs = 10.0.0.5/32Сохраните файл (Ctrl+O, Enter, Ctrl+X) и примените настройки без разрыва связи:
sudo wg syncconf wg0 <(wg-quick strip wg0)Шаг 4. Создаем клиентский конфигурационный файл
Создайте файл alex.conf:
sudo nano /etc/wireguard/alex.confВставьте следующую структуру:
[Interface]
PrivateKey = ВСТАВЬТЕ_СОДЕРЖИМОЕ_ФАЙЛА_alex_private.key
Address = 10.0.0.5/24
DNS = 1.1.1.1
[Peer]
PublicKey = ПУБЛИЧНЫЙ_КЛЮЧ_СЕРВЕРА_ИЗ_wg0.conf
Endpoint = IP_ВАШЕГО_СЕРВЕРА:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25Шаг 5. Выводим QR-код прямо в терминал для смартфона!
Выполните команду:
qrencode -t ansiutf8 < /etc/wireguard/alex.confПрямо в окне консоли появится большой красивый QR-код. Откройте приложение WireGuard на iPhone или Android, нажмите + -> Сканировать QR-код, наведите камеру — и VPN мгновенно настроен и готов к работе!
Частые вопросы (FAQ)
Зачем нужен параметр PersistentKeepalive = 25?
Он заставляет устройство отправлять контрольный пинг каждые 25 секунд. Это предотвращает закрытие NAT-соединения мобильными операторами и гарантирует, что на телефон продолжат приходить push-уведомления.
Что означает AllowedIPs = 0.0.0.0/0 в настройках клиента?
Значение 0.0.0.0/0 означает, что абсолютно весь интернет-трафик телефона будет идти через зашифрованный VPN-сервер. Если вам нужен доступ только к офисной подсети, укажите, например, 192.168.1.0/24.
Могут ли два разных клиента использовать один и тот же IP-адрес?
Категорически нет! В WireGuard маршрутизация построена по принципу Cryptokey Routing: каждому клиенту должен быть выделен строго уникальный IP-адрес (например, 10.0.0.2, 10.0.0.3, 10.0.0.4 и т.д.).
Как временно отключить доступ клиенту?
Откройте wg0.conf на сервере, удалите или закомментируйте знак решетки # блок [Peer] этого пользователя и выполните wg syncconf wg0 <(wg-quick strip wg0).