Как настроить WireGuard на Debian 13
Введение
WireGuard — быстрый, современный и криптографически стойкий VPN-протокол, встроенный прямо в ядро Linux. В отличие от более тяжёлых решений вроде OpenVPN или IPSec, WireGuard нетребователен к ресурсам, прост в настройке и даёт отличную производительность — поэтому он идеально подходит для защиты трафика через ваш VPS в AVS ISP.
Debian 13 «Trixie» (вышел 9 августа 2025 года) включает поддержку WireGuard в штатных репозиториях, так что ни backports, ни сторонние источники не нужны.
Что понадобится
Прежде чем начинать, убедитесь, что у вас есть:
- VPS с Debian 13 (Trixie) от AVS ISP
- Доступ с правами root или через
sudoна сервере - Локальная машина в роли клиента WireGuard (Linux, Windows, macOS, Android, iOS)
- Открытый UDP-порт 51820 в фаерволе или группе безопасности вашего VPS в AVS ISP
Шаг 1 — Обновление системы
Подключитесь к VPS по SSH и обновите все пакеты:
apt update && apt upgrade -y
Шаг 2 — Установка WireGuard
WireGuard есть в штатных репозиториях Debian 13:
apt install -y wireguard wireguard-tools iptables
Проверьте установку:
wg --version
Шаг 3 — Генерация ключей сервера
Задайте строгий umask, чтобы защитить файлы приватных ключей, и сгенерируйте пару ключей сервера:
umask 077
wg genkey | tee /etc/wireguard/server.key | wg pubkey > /etc/wireguard/server.pub
Посмотрите и сохраните ключи:
cat /etc/wireguard/server.key # Приватный ключ сервера (держите в секрете!)
cat /etc/wireguard/server.pub # Публичный ключ сервера (передаётся клиентам)
Шаг 4 — Генерация ключей клиента
Сгенерируйте пару ключей для первого клиента прямо на сервере:
wg genkey | tee /etc/wireguard/client.key | wg pubkey > /etc/wireguard/client.pub
cat /etc/wireguard/client.key # Приватный ключ клиента
cat /etc/wireguard/client.pub # Публичный ключ клиента
Шаг 5 — Определение сетевого интерфейса
Узнайте имя основного сетевого интерфейса вашего VPS (обычно eth0 или enp1s0):
ip address show
Запомните имя интерфейса — оно понадобится на следующем шаге.
Шаг 6 — Настройка сервера WireGuard
Создайте файл конфигурации сервера:
nano /etc/wireguard/wg0.conf
Вставьте следующее, заменив значения-заглушки:
[Interface]
# VPN-адрес сервера
Address = 10.8.0.1/24
# UDP-порт, на котором слушает WireGuard
ListenPort = 51820
# Вставьте сюда ПРИВАТНЫЙ ключ сервера
PrivateKey = <SERVER_PRIVATE_KEY>
# Включить форвардинг IP и NAT при поднятии туннеля
# Замените eth0 на ваш реальный сетевой интерфейс (например, enp1s0)
PostUp = echo 1 > /proc/sys/net/ipv4/ip_forward; \
iptables -A FORWARD -i wg0 -j ACCEPT; \
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = echo 0 > /proc/sys/net/ipv4/ip_forward; \
iptables -D FORWARD -i wg0 -j ACCEPT; \
iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
# ── Пир (клиент) ───────────────────────────────────────────
[Peer]
# Вставьте сюда ПУБЛИЧНЫЙ ключ клиента
PublicKey = <CLIENT_PUBLIC_KEY>
# VPN-адрес, выданный этому клиенту
AllowedIPs = 10.8.0.2/32
Сохраните и закройте файл (Ctrl+O, Enter, Ctrl+X).
Шаг 7 — Постоянное включение форвардинга IP
Отредактируйте /etc/sysctl.conf, чтобы форвардинг IP сохранялся после перезагрузок:
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p
Шаг 8 — Запуск и автозагрузка WireGuard
Запустите службу WireGuard и добавьте её в автозагрузку:
systemctl start wg-quick@wg0
systemctl enable wg-quick@wg0
Убедитесь, что интерфейс поднялся:
wg show
ip address show wg0
Вы должны увидеть интерфейс wg0 с адресом 10.8.0.1.
Шаг 9 — Настройка клиента
На клиентской машине создайте файл конфигурации WireGuard
(например, wg0.conf, либо импортируйте его в приложение WireGuard):
[Interface]
# VPN-адрес клиента
Address = 10.8.0.2/32
# ПРИВАТНЫЙ ключ клиента (сгенерирован на шаге 4)
PrivateKey = <CLIENT_PRIVATE_KEY>
# Необязательно: использовать VPS как DNS-резолвер
# DNS = 10.8.0.1
[Peer]
# ПУБЛИЧНЫЙ ключ сервера (с шага 3)
PublicKey = <SERVER_PUBLIC_KEY>
# Публичный IP вашего VPS в AVS ISP и порт WireGuard
Endpoint = <YOUR_VPS_PUBLIC_IP>:51820
# Направлять ВЕСЬ трафик через VPN
# Для раздельного туннеля (только подсеть VPN) укажите: 10.8.0.0/24
AllowedIPs = 0.0.0.0/0, ::/0
# Поддерживать соединение живым через NAT-фаерволы
PersistentKeepalive = 25
Поднимите туннель на клиенте:
# Клиент на Linux
wg-quick up wg0
Для Windows / macOS / Android / iOS импортируйте файл конфигурации или QR-код в официальное приложение WireGuard.
Шаг 10 — Открытие порта в фаерволе
Если на вашем VPS в AVS ISP работает локальный фаервол ufw или iptables, разрешите UDP-порт 51820:
# Через ufw
ufw allow 51820/udp
ufw reload
# Напрямую через iptables
iptables -A INPUT -p udp --dport 51820 -j ACCEPT
Также проверьте, что порт открыт в панели управления AVS ISP — в настройках фаервола или группы безопасности вашего VPS.
Шаг 11 — Проверка соединения
На клиенте поднимите туннель и проверьте связь:
wg-quick up wg0
ping 10.8.0.1 # Пинг шлюза VPN-сервера
curl https://ifconfig.me # Должен вернуть публичный IP вашего VPS в AVS ISP
На сервере проверьте активные сессии пиров:
wg show
Вы должны увидеть пира со свежей отметкой latest handshake.
Добавление новых клиентов
Для каждого следующего клиента повторите шаги 4 и 9, затем добавьте новый блок
[Peer] в файл /etc/wireguard/wg0.conf на сервере:
[Peer]
PublicKey = <NEW_CLIENT_PUBLIC_KEY>
AllowedIPs = 10.8.0.3/32
Перезагрузите конфигурацию WireGuard, не разрывая существующие соединения:
wg addconf wg0 <(wg-quick strip wg0)
# либо перезапустите службу
systemctl restart wg-quick@wg0
Полезные команды
| Действие | Команда |
|---|---|
| Показать статус туннеля | wg show |
| Запустить туннель | systemctl start wg-quick@wg0 |
| Остановить туннель | systemctl stop wg-quick@wg0 |
| Перезапустить туннель | systemctl restart wg-quick@wg0 |
| Посмотреть логи WireGuard | journalctl -u wg-quick@wg0 -f |
| Проверить модуль ядра | lsmod | grep wireguard |
Советы по безопасности
- Никогда не передавайте свои приватные ключи. Между пирами обмениваются только публичными.
- Ограничьте доступ по SSH конкретным IP-адресом или разрешите вход только по ключу.
- Подумайте о том, чтобы сменить стандартный порт WireGuard (51820) на нестандартный UDP-порт — так будет меньше шума от сканеров портов.
- Периодически меняйте пары ключей, если развёртывание работает долго.
- Указывайте
PersistentKeepalive = 25на клиентах за NAT, чтобы сессия не обрывалась.
Руководство написано для клиентов AVS ISP с VPS на Debian 13 «Trixie». WireGuard® — зарегистрированный товарный знак Джейсона А. Доненфельда.