VPN установка · 9 min read · Sep 09, 2025

Установка WireGuard VPN на Debian 12

Wireguard — это альтернатива протоколам VPN с открытым исходным кодом, таким как IPSec, IKEv2 и OpenVPN. Wireguard разработан для операционных систем Linux и Unix, он работает в пространстве ядра Linux, что делает его быстрее и надежнее. Wireguard используется для создания защищенных туннельных соединений между двумя или более компьютерами.

Wireguard нацелен на замену VPN-протоколов, таких как IPSec, IKEv2 и OpenVPN. Wireguard легче, быстрее, его легко настроить и он более эффективен. В то же время Wireguard не жертвует аспектом безопасности VPN-протокола. Wireguard поддерживает современную криптографию, такую как Noise protocol framework, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF и безопасные доверенные конструкции.

Этот гид покажет вам, как установить Wireguard VPN на сервер Debian 12 и настроить клиент Wireguard на машине с Linux.

Предварительные требования

Перед тем как начать, убедитесь, что у вас есть следующие требования:

  • Сервер Linux с установленным Debian 12.
  • Пользователь без прав root с привилегиями sudo.
  • Клиентская машина — в данном случае используется дистрибутив на основе Debian.

Подготовка системы

Перед установкой Wireguard вам необходимо подготовить ваш сервер Debian, внеся следующие изменения:

  • Включить пересылку пакетов через /etc/sysctl.conf
  • Установить и настроить UFW

Теперь давайте начнем.

Включение пересылки пакетов

Чтобы включить пересылку пакетов, вам необходимо активировать модуль ядра net.ipv4.ip_forward для IPv4 или net.ipv6.conf.all.forwarding для IPv6. Эти модули ядра можно включить через файл /etc/sysctl.conf.

Откройте файл /etc/sysctl.conf с помощью следующей команды редактора nano.

sudo nano /etc/sysctl.conf

Вставьте следующую конфигурацию, чтобы включить пересылку пакетов как для IPv4, так и для IPv6 (если необходимо).

# Пересылка пакетов для IPv4  
net.ipv4.ip_forward=1  
  
# Пересылка пакетов для IPv6  
net.ipv6.conf.all.forwarding=1

Сохраните файл и выйдите из редактора, когда закончите.

Теперь примените изменения с помощью команды sysctl ниже.

sudo sysctl -p

Установка UFW

Брандмауэр по умолчанию в Debian — это iptables, и теперь вы установите UFW. Вы будете использовать как UFW, так и iptables для сервера Wireguard.

Выполните команду apt ниже, чтобы обновить ваш репозиторий и установить UFW на вашу систему Debian.

sudo apt update && sudo apt install ufw -y

установка ufw

Затем выполните команду ufw ниже, чтобы добавить профиль приложения OpenSSH и включить UFW. Наберите y и нажмите ENTER для подтверждения, и вы должны получить сообщение “ Брандмауэр активен и включен при запуске системы “.

sudo ufw allow OpenSSH  
sudo ufw enable

включение ufw

Наконец, проверьте статус UFW, используя команду ниже.

sudo ufw status

Если он работает, вы должны получить вывод “ Статус: активен. Вы также увидите, что профиль приложения OpenSSH добавлен в UFW.

проверка ufw

Установка сервера Wireguard

После настройки сервера Debian вы готовы создать сервер Wireguard VPN на вашей машине Debian. Выполните следующие задачи, чтобы достичь этого:

  • Установка Wireguard
  • Генерация ключа сервера Wireguard
  • Генерация ключа клиента Wireguard
  • Настройка интерфейса Wireguard
  • Настройка NAT для интерфейса Wireguard

Давайте сделаем это.

Установка Wireguard

Сначала установите пакет wireguard на ваш сервер Debian, выполнив следующую команду.

sudo apt install wireguard

Наберите y, чтобы продолжить установку.

установка wireguard

Генерация ключа сервера Wireguard

После установки пакета wireguard следующей задачей является генерация сертификатов сервера, что можно сделать с помощью инструмента командной строки wg.

Выполните следующую команду, чтобы сгенерировать приватный ключ сервера Wireguard в /etc/wireguard/server.key. Затем измените разрешения приватного ключа сервера на 0400, что означает, что вы отключите запись в файл.

wg genkey | sudo tee /etc/wireguard/server.key  
sudo chmod 0400 /etc/wireguard/server.key

Затем выполните следующую команду, чтобы сгенерировать публичный ключ сервера Wireguard в /etc/wireguard/server.pub.

sudo cat /etc/wireguard/server.key | wg pubkey | sudo tee /etc/wireguard/server.pub

генерация ключа сервера

Теперь, когда вы сгенерировали приватный ключ в /etc/wireguard/server.key и публичный ключ в /etc/wireguard/server.pub для вашего сервера Wireguard, вы можете выполнить команду cat ниже, чтобы показать содержимое как приватного, так и публичного ключей.

cat /etc/wireguard/server.key  
cat /etc/wireguard/server.pub

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

Генерация ключа клиента Wireguard

Сгенерировав ключ сервера Wireguard, следующей задачей является генерация ключей для клиентов. Вы можете генерировать ключи клиента для каждого пользователя, но также можете использовать один ключ для нескольких пользователей.

В этом примере вы сгенерируете ключ клиента для конкретного пользователя alice.

Для начала выполните следующую команду, чтобы создать новый каталог для хранения ключей клиента. В этом случае публичные и приватные ключи для пользователя alice будут сгенерированы в каталоге /etc/wireguard/clients/alice.

mkdir -p /etc/wireguard/clients/alice

Теперь выполните следующую команду, чтобы сгенерировать приватный ключ /etc/wireguard/clients/alice/alice.key и публичный ключ /etc/wireguard/clients/alice/alice.pub для пользователя alice.

wg genkey | tee /etc/wireguard/clients/alice/alice.key  
cat /etc/wireguard/clients/alice/alice.key | wg pubkey | tee /etc/wireguard/clients/alice/alice.pub

Наконец, выполните команду ниже, чтобы показать содержимое приватного и публичного ключей для пользователя alice.

cat /etc/wireguard/clients/alice/alice.key  
cat /etc/wireguard/clients/alice/alice.pub

Вывод будет похож на следующий:

Настройка интерфейса Wireguard

Теперь, когда вы сгенерировали приватные и публичные ключи как для сервера, так и для клиента, следующей задачей является настройка интерфейса Wireguard и пира. Вы настроите интерфейс для сети VPN Wireguard и пира, который будет установлен между клиентом и сервером.

Создайте новую конфигурацию Wireguard /etc/wireguard/wg0.conf с помощью следующей команды редактора nano.

sudo nano /etc/wireguard/wg0.conf

Вставьте следующую конфигурацию в файл.

[Interface]  
# Приватный ключ сервера Wireguard - server.key  
PrivateKey = cNBb6MGaKhmgllFxSq/h9BdYfZOdyKvo8mjzb2STbW8=  
  
# Интерфейс Wireguard будет работать на 10.10.0.1  
Address = 10.10.0.1/24  
  
# Клиенты будут подключаться к UDP порту 51820  
ListenPort = 51820  
  
# Убедитесь, что любые изменения будут сохранены в конфигурационном файле Wireguard  
SaveConfig = true

Ниже приведены параметры, которые будут использоваться в разделе [Interface]:

  • PrivateKey: Введите содержимое приватного ключа сервера Wireguard server.key.
  • Address: IP-адрес, который будет назначен интерфейсу Wireguard. В данном случае интерфейс Wireguard будет иметь IP-адрес 10.10.0.1.
  • ListenPort: Это порт, который будет использоваться клиентом для подключения к серверу Wireguard. В данном случае будет использоваться порт 51820.
  • SaveConfig: значение true означает, что любые изменения будут сохранены из текущего состояния интерфейса при его отключении.

Теперь добавьте следующий раздел [Peer] для клиентов Wireguard.

[Peer]  
# Публичный ключ клиента Wireguard - alice.pub  
PublicKey = 3ZoaoVgHOioZnKzCrF/XALAv70V4vyJXpl/UO7AKYzA=  
  
# VPN IP-адреса клиентов, которым разрешено подключаться  
# возможно указать подсеть ⇒ [10.10.0.0/24]  
AllowedIPs = 10.10.0.2/24

Ниже приведены параметры, которые используются в разделе [Peer]:

PublicKey: Введите публичный ключ клиента Wireguard в этот параметр. В данном случае содержимое публичного ключа alice.pub.
AllowedIPs: Определите IP-адрес для клиента и маршрутизируйте трафик на интерфейс Wireguard.

Сохраните и закройте файл, когда закончите.

Наконец, выполните следующую команду, чтобы открыть порт 51820/udp для подключений клиентов.

sudo ufw allow 51820/udp

Настройка NAT для интерфейса Wireguard

Сначала выполните следующую команду, чтобы показать интерфейс шлюза по умолчанию, который используется для подключения к интернету.

sudo ip route list default

В данном случае шлюз интернет-сети по умолчанию — интерфейс eth0.

Теперь откройте конфигурацию Wireguard /etc/wireguard/wg0.conf с помощью следующей команды редактора nano.

sudo nano /etc/wireguard/wg0.conf

Добавьте следующую конфигурацию в раздел [Interface], и обязательно замените интерфейс eth0 на интерфейс шлюза интернет-сети по умолчанию.

[Interface]  
...  
  
PostUp = ufw route allow in on wg0 out on eth0  
PostUp = iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE  
PostUp = ip6tables -t nat -I POSTROUTING -o eth0 -j MASQUERADE  
  
PreDown = ufw route delete allow in on wg0 out on eth0  
PreDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE  
PreDown = ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

Сохраните и закройте файл, когда закончите.

На данный момент вы настроили свой сервер Wireguard.

Управление службой Wireguard

Теперь, когда установка и настройка сервера Wireguard завершены, вы готовы запустить службу Wireguard на вашей системе Debian. Это можно сделать с помощью команды systemctl или с помощью утилиты wg-quick.

Чтобы запустить и включить сервер Wireguard, выполните следующую команду systemctl. С именем службы wg-quick@wg0 вы запустите Wireguard в интерфейсе wg0, который основан на конфигурации /etc/wireguard/wg0.conf.

sudo systemctl start [email protected]  
sudo systemctl enable [email protected]

Теперь проверьте службу wirguard@wg0, используя следующую команду.

sudo systemctl status [email protected]

Если служба работает, будет отображен следующий вывод.

проверка службы wireguard

Затем выполните команду ip ниже, чтобы показать детали интерфейса Wireguard wg0. И вы должны увидеть, что интерфейс Wireguard wg0 имеет IP-адрес 10.10.0.1.

sudo ip a show wg0

проверка интерфейса wg0

Вы также можете запустить или остановить Wireguard вручную с помощью команды wg-quick ниже.

sudo wg-quick up /etc/wireguard/wg0.conf  
sudo wg-quick down /etc/wireguard/wg0.conf

С этим вы настроили сервер Wireguard и запустили его в фоновом режиме с помощью команды systemctl. Ваш клиент теперь готов подключиться к серверу Wireguard.

Настройка клиента Wireguard на дистрибутиве на основе Debian

В следующем разделе вы настроите клиента Wireguard для дистрибутива на основе Debian. Вы установите инструменты Wireguard, создадите конфигурацию клиента Wireguard, подключитесь к серверу Wireguard, проверите соединение с помощью утилиты wg и получите доступ к интернету.

Установите пакет wireguard-tools на клиентскую машину через APT. Клиентская машина — это дистрибутив на основе Debian, поэтому будет использоваться менеджер пакетов APT.

sudo apt install wireguard-tools resolvconf

установка инструментов wireguard

После установки wireguard-tools создайте новую конфигурацию клиента Wireguard /etc/wireguard/wg-alice.conf с помощью следующего редактора nano.

sudo nano /etc/wireguard/wg-alice.conf

Вставьте следующую конфигурацию в файл.

[Interface]  
# Определите IP-адрес для клиента - должен совпадать с wg0 на сервере Wireguard  
Address = 10.10.0.2/24  
  
# конкретный DNS-сервер  
DNS = 1.1.1.1  
  
# Приватный ключ для клиента - alice.key  
PrivateKey = cPDg6SQHz/3l2R83lMWPzmR6/mMKnKp9PNImbtB6nGI=  
  
[Peer]  
# Публичный ключ сервера Wireguard - server.pub  
PublicKey = APyBQvTkYVm0oakzcQUQViarwx1aIYz5wb/g2v2xdUE=  
  
# Разрешить весь трафик, чтобы маршрутизироваться через Wireguard VPN  
AllowedIPs = 0.0.0.0/0  
  
# Публичный IP-адрес сервера Wireguard  
Endpoint = 192.168.128.15:51820  
  
# Отправка Keepalive каждые 25 секунд  
PersistentKeepalive = 25

Сохраните и закройте файл, когда закончите.

Ниже приведены некоторые параметры в разделе [Interface] для клиентов Wireguard:

  • Address: укажите внутренний IP-адрес интерфейса Wireguard на клиентской машине.
  • DNS: настройте сервер DNS по умолчанию для клиента.
  • PrivateKey: приватный ключ клиента Wireguard, в данном случае — alice.key.

А в разделе [Peer] в конфигурации клиента Wireguard:

  • PublicKey: это публичный ключ сервера Wireguard, который является server.pub.
  • AllowedIPs: Разрешить любой доступ, чтобы маршрутизироваться через интерфейс Wireguard.
  • Endpoint: IP-адрес и порт сервера Wireguard.
  • PersistentKeepalive: отправлять keepalive каждые x секунд, чтобы поддерживать соединение.

Затем выполните команду wg-quick ниже, чтобы запустить Wireguard на интерфейсе wg-alice.

sudo wg-quick up wg-alice

Если все пройдет хорошо, будет показан аналогичный вывод ниже.

запуск wireguard на клиенте

После этого выполните команду ip ниже, чтобы проверить детали интерфейса wg-alice. И вы должны увидеть интерфейс wg-alice с локальным IP-адресом 10.10.0.2.

sudo ip a show wg-alice

проверка интерфейса wireguard на клиенте

Затем проверьте интернет-соединение клиентской машины, выполнив следующую команду.

ping -c3 10.10.0.1  
ping -c3 1.1.1.1  
ping -c3 duckduckgo.com

Если установка сервера Wireguard прошла успешно, вы получите ответ от каждого целевого сервера, как показано ниже:

проверка ping

Кроме того, вы также можете детализировать соединения между сервером Wireguard и клиентом, выполнив следующую команду на сервере Wireguard или клиентской машине.

wg show

Будет показан аналогичный вывод ниже.

показать соединения wireguard

Наконец, чтобы остановить соединение Wireguard на клиентской машине, выполните команду wg-quick ниже.

sudo wg-quick down wg-alice

остановка wireguard на клиенте

Заключение

В заключение, вы теперь завершили установку Wireguard VPN на сервере Debian 12 шаг за шагом. Вы также настроили машину-клиент на основе Debian с Wireguard и подключились к серверу Wireguard. Учитывая это, вы теперь можете добавлять больше клиентов, добавляя больше ключей Wireguard и конфигураций Peer.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.