VPN установка · 13 min read · Oct 05, 2025
Как установить Wireguard VPN на Debian 11

Wireguard — это бесплатный и открытый протокол VPN, альтернативный IPSec, IKEv2 и OpenVPN. Wireguard разработан для операционных систем Linux и Unix. Он работает в пространстве ядра Linux, что делает Wireguard быстрее и надежнее. Wireguard используется для создания защищенных туннельных соединений между двумя и более компьютерами.
Wireguard нацелен на замену протоколов VPN, таких как IPSec, IKEv2 и OpenVPN. Wireguard легче, быстрее, проще в настройке и более эффективен. И в то же время Wireguard не жертвует аспектом безопасности протокола VPN. Wireguard поддерживает современную передовую криптографию, такую как Noise protocol framework, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF и безопасные, надежные конструкции.
По сравнению с другими протоколами VPN, такими как OpenVPN, IPSec и IKEv2, Wireguard является новым протоколом VPN. Wireguard был выпущен в 2015 году Джейсоном А. Доненфельдом как альтернативный протокол VPN, он был объединен с ядром Linux v5.6 Линусом Торвальдсом в 2020 году, и в том же году также был портирован на FreeBSD 13.
В этом руководстве вы установите и настроите VPN-сервер через Wireguard на серверах Debian 11. Вы настроите сервер Wireguard с сервером Debian 11, а затем настроите клиентскую машину для подключения к серверу Wireguard.
Что касается клиентской машины, вы можете использовать любую дистрибуцию Linux, но в этом примере используется машина Debian.
Предварительные требования
Для начала этого руководства у вас должны быть следующие требования:
- Сервер Debian 11 — в этом примере используется сервер Debian с именем хоста ‘ wireguard-server ‘ и внешним статическим IP-адресом ‘ SERVER-IP ‘.
- Машина Linux, которая будет использоваться в качестве клиента — вы можете использовать любую дистрибуцию Linux, но в этом примере используется машина Debian с именем хоста ‘client1’.
- Непользователь с правами администратора sudo/root.
Если все эти требования готовы, давайте начнем.
Установка Wireguard
Перед установкой Wireguard выполните следующую команду apt, чтобы обновить и обновить индекс пакетов Debian.
sudo apt updateПосле обновления репозиториев Debian выполните следующую команду apt, чтобы установить пакет Wireguard на ваш сервер Debian. Это также установит пакет wireguard-tools, который будет использоваться для управления установкой вашего сервера Wireguard.
sudo apt install wireguardКогда будет предложено подтвердить, введите y для подтверждения и нажмите ENTER, чтобы продолжить. Теперь установка должна начаться.

С установленным Wireguard на вашем сервере вы готовы сгенерировать пару публичных и приватных ключей для сервера и клиента Wireguard.
Генерация пары публичных/приватных ключей
На этом этапе вы сгенерируете пару публичных и приватных ключей для сервера Wireguard и клиентской машины. Это можно сделать с помощью командной строки ‘wg’, предоставленной пакетом wireguard-tools.
Пара ключей для сервера будет использоваться сервером Wireguard, а клиентская машина будет использовать пару ключей для клиента. Если у вас несколько клиентских машин, вы можете сгенерировать несколько пар ключей для ваших клиентов.
Генерация пары ключей для сервера Wireguard
Выполните следующую команду ‘ wg genkey ‘, чтобы сгенерировать приватный ключ для сервера Wireguard. Затем измените разрешение приватного ключа на ‘ 0400 ‘, что отключит доступ на чтение и запись для группы и других.
В этом примере вы сгенерируете приватный ключ ‘/etc/wireguard/server.key’.
wg genkey | sudo tee /etc/wireguard/server.key
sudo chmod 0400 /etc/wireguard/server.keyВы получите вывод случайного ключа base64 на экране терминала.
Затем выполните следующую команду ‘ wg pubkey ‘, чтобы сгенерировать новый публичный ключ сервера в ‘ /etc/wireguard/server.pub ‘. Публичный ключ сервера выводится из приватного ключа сервера ‘ /etc/wireguard/server.key ‘.
sudo cat /etc/wireguard/server.key | wg pubkey | sudo tee /etc/wireguard/server.pubВы получите вывод случайного публичного ключа base64 на вашем терминале.

Теперь, когда вы сгенерировали публичные и приватные пары ключей для сервера Wireguard. Приватный ключ находится по адресу ‘/etc/wireguard/server.key’, а публичный ключ находится по адресу ‘/etc/wireguard/server.pub ‘.
Выполните следующую команду cat, чтобы показать и проверить сгенерированную пару ключей для сервера Wireguard.
cat /etc/wireguard/server.key
cat /etc/wireguard/server.pubГенерация пары ключей для клиента
Для пары ключей клиента вы можете сгенерировать ее на любой машине (сервере Wireguard или клиенте) с установленными wireguard-tools. На этом этапе вы сгенерируете пару ключей клиента с сервера Wireguard.
Процесс генерации пары ключей для сервера и клиента одинаковый, используя команду ‘ wg genkey ‘ для генерации приватного ключа и используя ‘ wg pubkey ‘ для генерации публичного ключа, который выводится из приватного ключа.
Теперь выполните следующую команду, чтобы создать новый каталог ‘ /etc/wireguard/clients ‘. Этот каталог будет использоваться для хранения пары ключей клиента.
mkdir -p /etc/wireguard/clientsВыполните следующую команду ‘wg genkey’, чтобы сгенерировать приватный ключ клиента в ‘ /etc/wireguard/clients/client1.key ‘. Затем сгенерируйте публичный ключ клиента с помощью команды ‘ wg pubkey ‘ в ‘/etc/wireguard/clients/client1.pub ‘.
wg genkey | tee /etc/wireguard/clients/client1.key
cat /etc/wireguard/clients/client1.key | wg pubkey | tee /etc/wireguard/clients/client1.pub
Теперь, когда пара ключей клиента сгенерирована, публичный ключ находится по адресу ‘/etc/wireguard/clients/client1.pub’, а приватный ключ — ‘ /etc/wireguard/clients/client1.key ‘. Выполните следующую команду, чтобы показать и проверить сгенерированную пару ключей.
cat /etc/wireguard/clients/client1.key
cat /etc/wireguard/clients/client1.pub
Настройка сервера Wireguard
На этом этапе вы создадите новый файл конфигурации для сервера Wireguard. Но прежде чем это сделать, вы должны решить, какие подсети вы будете использовать для сервера Wireguard VPN. Вы также можете решить, включать или отключать IPv6 для вашего сервера Wireguard VPN.
В этом примере сервер Wireguard VPN будет иметь IP-адреса с подсетью ‘10.8.0.2/24’ и отключить IPv6 для Wireguard VPN.
Создайте новый файл конфигурации Wireguard ‘/etc/wireguard/wg0.conf ‘ с помощью следующей команды редактора nano.
sudo nano /etc/wireguard/wg0.confСначала добавьте следующие строки в файл, чтобы определить детали сервера Wireguard. И обязательно замените ‘ PrivateKey ‘ на приватный ключ сервера Wireguard ‘ server.key ‘. С этим интерфейс Wireguard будет работать на IP-адресе ‘ 10.8.0.1 ‘, откроет UDP-порт 51820, который будет доступен для подключения клиентов, а параметр SaveConfig обеспечит сохранение любых изменений в конфигурационном файле, даже когда интерфейс Wireguard выключен.
[Interface]
# Приватный ключ сервера Wireguard - server.key
PrivateKey = SIybp8GHtKIPtHPBOQFP1kbQg4UCLCMyNIfCLBQR2EA=
# Интерфейс Wireguard будет работать на 10.8.0.1
Address = 10.8.0.1/24
# Клиенты будут подключаться к UDP-порту 51820
ListenPort = 51820
# Убедитесь, что любые изменения будут сохранены в конфигурационном файле Wireguard
SaveConfig = trueЗатем добавьте следующие строки, чтобы определить соединение с клиентом-пиром. Замените параметр ‘ PublicKey ‘ на публичный ключ клиента ‘ client1.pub ‘. А параметр ‘ AllowedIPs ‘ будет указывать, каким клиентам Wireguard разрешен доступ к этому пир-соединению. В этом примере только клиенты с IP ‘ 10.8.0.2 ‘ будут допущены к этому пир-соединению. Но вы также можете разрешить диапазон подсетей, таких как ‘ 10.8.0.0/24 ‘.
[Peer]
# Публичный ключ клиента Wireguard - client1.pub
PublicKey = ENokvIsS2euXrmM4OVFHPmTdCZ4wfEIR/UHuGCW64lw=
# IP-адреса VPN клиентов, которым вы разрешаете подключение
# возможно указать подсеть ⇒ [10.8.0.0/24]
AllowedIPs = 10.8.0.2/24Сохраните файл и выйдите из редактора, когда закончите.
С созданным файлом конфигурации сервера Wireguard и добавленным соединением с клиентом-пиром вы далее настроите переадресацию портов на сервере Wireguard и настроите брандмауэр для маршрутизации трафика.
Включение переадресации портов через /etc/sysctl.conf
На этом этапе вы включите переадресацию портов на сервере Wireguard через файл /etc/sysctl.conf’. Вы можете включить переадресацию портов как для IPv4, так и для IPv6 на сервере Wireguard.
Для начала откройте файл конфигурации ‘/etc/sysctl.conf ‘ с помощью следующей команды редактора nano.
sudo nano /etc/sysctl.confДобавьте следующие строки в файл. Это включит переадресацию портов на вашем сервере Wireguard. Вы можете использовать оба для IPv4 и IPv6, или вы можете использовать IPv4, если у вас отключен IPv6 на вашем сервере Wireguard.
# Переадресация портов для IPv4
net.ipv4.ip_forward=1
# Переадресация портов для IPv6
net.ipv6.conf.all.forwarding=1Сохраните файл и выйдите из редактора, когда закончите.
Затем выполните следующую команду утилиты sysctl, чтобы применить изменения.
sudo sysctl -pВы получите вывод, подобный этому — переадресация портов должна быть включена немедленно.

С включенной переадресацией портов на сервере Wireguard вы далее настроите брандмауэр, который будет маршрутизировать трафик клиентов Wireguard к конкретному сетевому интерфейсу.
Настройка брандмауэра для сервера Wireguard
На этом этапе вы настроите брандмауэр, который будет использоваться для сервера Wireguard для маршрутизации клиентских подключений к правильному сетевому интерфейсу, который будет использоваться для доступа в интернет. Это также позволит клиентам Wireguard получить доступ в интернет через конкретный интерфейс на сервере Wireguard.
Сначала выполните следующую команду apt, чтобы установить пакет брандмауэра ufw на вашем сервере Debian.
sudo apt install ufwВведите y, когда будет предложено, и нажмите ENTER, чтобы продолжить.

После установки ufw выполните следующую команду, чтобы открыть службу SSH и включить брандмауэр ufw.
sudo ufw allow OpenSSH
sudo ufw enableКогда будет предложено подтвердить включение брандмауэра ufw, введите y и нажмите ENTER. Брандмауэр ufw теперь должен работать на вашей системе и также включен.

Теперь проверьте статус брандмауэра ufw с помощью следующей команды. Вы должны получить вывод, такой как ‘ Статус: активен ‘, что означает, что статус брандмауэра ufw работает.
sudo ufw statusС работающим брандмауэром ufw вы далее настроите его для маршрутизации подключений клиентов Wireguard к конкретному сетевому интерфейсу.
Теперь выполните следующую команду, чтобы проверить интерфейс таблицы маршрутизации по умолчанию на сервере Wireguard. В большинстве случаев это будет обнаружен интерфейс, который используется для доступа в интернет или где доступен публичный IP-адрес.
ip route list defaultВы получите вывод, подобный этому — в этом примере интерфейс eth0 является интерфейсом по умолчанию для маршрутизации на сервере Wireguard. И это интерфейс, который используется для доступа в интернет. У вас может быть другое имя интерфейса.
Затем откройте файл конфигурации сервера Wireguard ‘ /etc/wireguard/wg0.conf ‘ с помощью следующей команды редактора nano.
sudo nano /etc/wireguard/wg0.confДобавьте следующие строки в раздел ‘ [Interface] ‘.
[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Сохраните файл и выйдите из редактора, когда закончите.
- Параметр ‘ PostUp ‘ будет выполняться каждый раз, когда сервер Wireguard запускает VPN-туннель.
- Параметр ‘ PreDown ‘ будет выполняться каждый раз, когда сервер Wireguard останавливает VPN-туннель.
- Команда ‘ ufw route allow in on wg0 out on eth0 ‘ позволяет перенаправлять трафик, поступающий на интерфейс wg0, на интернет-интерфейс eth0.
- Команда ‘iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE’ включит маскировку и перепишет IPv4-трафик с интерфейса wg0, чтобы он выглядел как прямое соединение с сервером Wireguard.
- Команда ‘ ip6tables -t nat -I POSTROUTING -o eth0 -j MASQUERADE ‘ включит маскировку и перепишет IPv6-трафик с интерфейса wg0, чтобы он выглядел как прямое соединение с сервером Wireguard.
Теперь выполните следующую команду ufw, чтобы открыть UDP-порт 51820, к которому будут подключаться клиенты.
sudo ufw allow 51820/udpНаконец, выполните следующую команду, чтобы перезагрузить брандмауэр ufw и применить изменения. Затем проверьте список правил ufw с помощью следующей команды.
sudo ufw reload
sudo ufw statusВы получите вывод, подобный этому скриншоту — UDP-порт 51820, который сервер Wireguard будет использовать для подключений клиентов, добавлен в брандмауэр ufw.

Теперь вы включили переадресацию портов и настроили брандмауэр на сервере Wireguard. Вы теперь готовы запустить сервер Wireguard.
Запуск сервера Wireguard
На этом этапе вы запустите и включите сервер Wireguard. Вы также проверите сервер Wireguard и интерфейс wg0, который будет создан службой Wireguard.
Выполните следующую команду утилиты systemctl, чтобы запустить и включить службу Wireguard. Служба ‘ [email protected] ‘ создаст и включит интерфейс Wireguard ‘ wg0 ‘ на вашем сервере Wireguard.
sudo systemctl start [email protected]
sudo systemctl enable [email protected]Теперь проверьте службу Wireguard с помощью следующей команды.
sudo systemctl status [email protected]Вы получите вывод, подобный следующему скриншоту — служба Wireguard ‘ [email protected] ‘ работает и включена. Это также означает, что интерфейс ‘ wg0 ‘ создан и работает.

Выполните следующую команду, чтобы проверить интерфейс ‘wg0’ на вашем сервере Wireguard.
ip a show wg0Вы должны получить вывод, подобный этому — интерфейс Wireguard wg0 получает IP-адрес ‘ 10.8.0.1 ‘, как описано в файле конфигурации Wireguard ‘ /etc/wireguard/wg0.conf ‘.

Кроме того, вы также можете запускать и останавливать Wireguard с помощью команды ‘ wg-quick ‘ следующим образом. Команда ‘ wg-quick up ‘ запустит сервер Wireguard, а ‘wg-quick down ‘ остановит сервер Wireguard.
sudo wg-quick up /etc/wireguard/wg0.conf
sudo wg-quick down /etc/wireguard/wg0.confС работающим сервером Wireguard вы далее настроите клиентскую машину и подключите ее к серверу Wireguard.
Настройка клиентской машины и подключение к серверу Wireguard
На этом этапе вы настроите клиентскую машину, установив wireguard-tools, создав новую конфигурацию Wireguard для клиента, подключившись к серверу Wireguard VPN и, наконец, проверив соединение и убедившись, что клиентская машина может получить доступ к интернету и локальной VPN-сети.
Установите пакет ‘ wireguard-tools ‘ на клиентской машине. Это использует Debian в качестве клиента, поэтому будет использоваться команда APT.
sudo apt install wireguard-toolsУстановка должна начаться автоматически.

После установки wireguard-tools создайте новый файл конфигурации ‘ /etc/wireguard/wg-client1.conf ‘ с помощью следующей команды редактора nano.
sudo nano /etc/wireguard/wg-client1.confДобавьте следующие строки в файл.
[Interface]
# Определите IP-адрес для клиента - должен совпадать с wg0 на сервере Wireguard
Address = 10.8.0.2/24
# конкретный DNS-сервер
DNS = 1.1.1.1
# Приватный ключ для клиента - client1.key
PrivateKey = KPI59QH0jwc9wkUsW5Byci9ojXhz1322QXK52fQCE3E=
[Peer]
# Публичный ключ сервера Wireguard - server.pub
PublicKey = Qt6oRLtlfAR490lTNb2K8TlbpwADV1j8NX7D5HY38EM=
# Разрешить весь трафик, чтобы маршрутизироваться через VPN Wireguard
AllowedIPs = 0.0.0.0/0
# Публичный IP-адрес сервера Wireguard
Endpoint = SERVER-IP:51820
# Отправка Keepalive каждые 25 секунд
PersistentKeepalive = 25Сохраните и закройте файл, когда закончите.
В разделе ‘ [Interface] ‘ вы должны определить следующее:
- IP-адрес клиента должен совпадать с подсетью сервера Wireguard. Клиент Wireguard получит IP-адрес ‘10.8.0.2’ в этом примере.
- Укажите DNS-сервер для клиента.
- Измените параметр ‘ PrivateKey ‘ на приватный ключ клиента, который вы сгенерировали, ‘ client1.key ‘.
В разделе ‘ [Peer]’ вы должны добавить следующее:
- Публичный ключ сервера Wireguard ‘ server.pub ‘ в параметр PublicKey.
- Укажите ‘ AllowedIPs ‘, чтобы ограничить доступ к пир-у на VPN, вы можете указать подсети сетей или просто указать 0.0.0.0/0, чтобы туннелировать весь трафик через VPN.
- Укажите параметр Endpoint с публичным IP-адресом сервера Wireguard или используйте доменное имя.
После создания конфигурации клиента выполните следующую команду, чтобы запустить Wireguard на клиентской машине.
wg-quick up wg-client1Вы должны получить вывод, подобный этому скриншоту — новый интерфейс Wireguard ‘ wg-client1 ‘ будет создан, и клиентская машина должна быть подключена к серверу Wireguard, работающему на ‘ SERVER-IP:51820 ‘.

Выполните следующую команду, чтобы проверить интерфейс Wireguard ‘ wg-client1 ‘.
ip a show wg-client1Вы должны получить вывод, подобный этому — интерфейс wg-client1 активен с IP-адресом ‘ 10.8.0.2 ‘, который является частью подсети сервера Wireguard ‘ 10.8.0.0/24’.

Вы также можете проверить соединение Wireguard с помощью команды ‘ wg show ‘.
Выполните следующую команду ‘ wg show ‘ на клиентской машине, и вы должны получить вывод, подобный этому.
wg showЕсли вы подключены к правильному серверу Wireguard, вы должны увидеть IP-адрес сервера Wireguard в разделе ‘ endpoint ‘ и увидеть публичный ключ сервера Wireguard ‘ server.pub ‘.

Теперь перейдите на сервер Wireguard и выполните команду ‘ wg show ‘.
wg showВы должны получить вывод, подобный этому — в разделе endpoint вы увидите публичный IP-адрес клиента, а в разделе пир вы увидите публичный ключ клиента ‘client1.pub ‘.

Наконец, выполните следующую команду, чтобы убедиться, что клиентская машина может получить доступ в интернет или получить доступ к внутренней подсети Wireguard VPN.
ping -c5 10.8.0.1
ping -c5 1.1.1.1
ping -c5 duckduckgo.comНиже приведен вывод, который вы должны получить:
Клиентская машина может подключиться к серверу Wireguard с IP-адресом ‘10.8.0.1 ‘.

Клиентская машина может получить доступ в интернет. Весь трафик маршрутизируется через публичный IP-адрес сервера Wireguard.

Теперь, если вы хотите остановить Wireguard на клиентской машине, вы можете выполнить команду ‘ wg-quick down ‘ ниже
wg-quick down wg-client1Вы получите вывод, подобный этому. Также интерфейс wg-client1 исчезнет с клиентской машины.

Теперь вы настроили Wireguard VPN на клиентской машине. Вы также проверили соединение между клиентской машиной и сервером Wireguard.
Заключение
В этом руководстве вы установили и настроили Wireguard VPN на сервере Debian 11. Вы также настроили машину Debian и успешно подключились к серверу Wireguard VPN.
В деталях вы установили пакет Wireguard VPN, сгенерировали пару публичных и приватных ключей как для сервера, так и для клиента, настроили брандмауэр UFW для маршрутизации VPN-трафика к конкретному сетевому интерфейсу и включили переадресацию портов через файл /etc/sysctl.conf.
С учетом этого, вы теперь можете добавить больше клиентов к вашему серверу Wireguard VPN, сгенерировав другую пару ключей для клиента, определив соединение пир-пир на сервере Wireguard, а затем создав новый файл конфигурации Wireguard, который будет использовать клиентская машина. Чтобы узнать больше о Wireguard, посетите официальную документацию Wireguard.
Get new posts in your inbox
No spam. Unsubscribe anytime.