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 ниже, чтобы добавить профиль приложения OpenSSH и включить UFW. Наберите y и нажмите ENTER для подтверждения, и вы должны получить сообщение “ Брандмауэр активен и включен при запуске системы “.
sudo ufw allow OpenSSH
sudo ufw enable
Наконец, проверьте статус UFW, используя команду ниже.
sudo ufw statusЕсли он работает, вы должны получить вывод “ Статус: активен. Вы также увидите, что профиль приложения OpenSSH добавлен в UFW.

Установка сервера Wireguard
После настройки сервера Debian вы готовы создать сервер Wireguard VPN на вашей машине Debian. Выполните следующие задачи, чтобы достичь этого:
- Установка Wireguard
- Генерация ключа сервера Wireguard
- Генерация ключа клиента Wireguard
- Настройка интерфейса Wireguard
- Настройка NAT для интерфейса Wireguard
Давайте сделаем это.
Установка Wireguard
Сначала установите пакет wireguard на ваш сервер Debian, выполнив следующую команду.
sudo apt install wireguardНаберите y, чтобы продолжить установку.

Генерация ключа сервера 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]Если служба работает, будет отображен следующий вывод.

Затем выполните команду ip ниже, чтобы показать детали интерфейса Wireguard wg0. И вы должны увидеть, что интерфейс Wireguard wg0 имеет IP-адрес 10.10.0.1.
sudo ip a show 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-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Если все пройдет хорошо, будет показан аналогичный вывод ниже.

После этого выполните команду ip ниже, чтобы проверить детали интерфейса wg-alice. И вы должны увидеть интерфейс wg-alice с локальным IP-адресом 10.10.0.2.
sudo ip a show wg-alice
Затем проверьте интернет-соединение клиентской машины, выполнив следующую команду.
ping -c3 10.10.0.1
ping -c3 1.1.1.1
ping -c3 duckduckgo.comЕсли установка сервера Wireguard прошла успешно, вы получите ответ от каждого целевого сервера, как показано ниже:

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

Наконец, чтобы остановить соединение Wireguard на клиентской машине, выполните команду wg-quick ниже.
sudo wg-quick down wg-alice
Заключение
В заключение, вы теперь завершили установку Wireguard VPN на сервере Debian 12 шаг за шагом. Вы также настроили машину-клиент на основе Debian с Wireguard и подключились к серверу Wireguard. Учитывая это, вы теперь можете добавлять больше клиентов, добавляя больше ключей Wireguard и конфигураций Peer.
Get new posts in your inbox
No spam. Unsubscribe anytime.