Руководства · 4 мин чтения

Как настроить 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® — зарегистрированный товарный знак Джейсона А. Доненфельда.

Назад к разделу «Руководства»