Как поднять WireGuard VPN вручную(без скриптов)

ГлавнаяКак поднять WireGuard VPN вручную(без скриптов)

Содержание

Когда я только начинала экспериментировать с VPS, идея сделать свой VPN-сервер казалась чем-то сложным. Сначала я пользовалась готовыми скриптами — удобно, быстро, но вообще не понимала, что именно происходит. А потом был момент, когда скрипт не работал, а заказчик ждал подключение через WireGuard VPN. И вот тогда я впервые вручную собрала туннель, прочувствовала всю магию

.conf
файлов и поняла, насколько всё на самом деле просто.

Хочу рассказать, как настроить WireGuard VPN вручную — от установки до работающего туннеля. Никаких скриптов, только ручной контроль.


Что такое WireGuard?

Если вкратце — это современный, лёгкий и очень быстрый VPN-протокол. Он работает на уровне ядра Linux, использует криптографию нового поколения, и… просто летает. Я раньше пробовала OpenVPN и IPSec, но WireGuard оказался не только быстрее, но и проще в настройке — особенно если делать всё руками.


1. Установка WireGuard на сервер

Я покажу на примере Ubuntu 22.04. Для других дистрибутивов вроде Debian или CentOS команды немного отличаются, но суть та же.

sudo apt update sudo apt install wireguard

Устанавливаются два компонента — сам

wg
и модуль ядра. Если вы в виртуальной машине VPS, убедитесь, что у неё ядро поддерживает WireGuard. Большинство хостеров, как Timeweb, уже включают поддержку по умолчанию.


2. Генерация ключей

В WireGuard нет привычных логина и пароля. Всё строится на публичных и приватных ключах. Генерируем их:

umask 077 wg genkey | tee privatekey | wg pubkey > publickey

Это создаст два файла:

privatekey
и
publickey
. Первый — только для вас. Второй — отсылается клиенту.


3. Настройка конфигурационного файла сервера

Создаём файл

/etc/wireguard/wg0.conf
. Вот его структура:

[Interface] PrivateKey = <сюда вставьте содержимое файла privatekey> Address = 10.0.0.1/24 ListenPort = 51820 [Peer] PublicKey = <публичный ключ клиента> AllowedIPs = 10.0.0.2/32

Тут важный момент:

Address
— это IP внутри VPN-сети. Вы можете задать другую подсеть, но я люблю 10.0.0.0/24 — просто и понятно.


4. Открываем порт и включаем IP forwarding

sudo ufw allow 51820/udp echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf sudo sysctl -p

WireGuard туннель не будет работать, если система не разрешает пересылку IP-пакетов.


5. Запуск VPN

sudo wg-quick up wg0

И проверяем:

sudo wg

Если всё нормально, вы увидите статус подключения.

Чтобы VPN поднимался при старте сервера:

sudo systemctl enable wg-quick@wg0

6. Настройка клиента (например, Ubuntu или даже Windows)

На клиенте тоже нужен

wireguard
и конфиг:

[Interface] PrivateKey = <приватный ключ клиента> Address = 10.0.0.2/24 DNS = 1.1.1.1 [Peer] PublicKey = <публичный ключ сервера> Endpoint = <IP VPS>:51820 AllowedIPs = 0.0.0.0/0 PersistentKeepalive = 25

Файл можно импортировать в WireGuard GUI — он есть для Windows, macOS, Android и iOS. Кнопка «Activate», и вы в туннеле.


Полезные советы из практики

  • WireGuard конфиг легко копировать, архивировать и разворачивать. Один раз собрали — и можно раздавать доступ с нужными правками.
  • Не забывайте про
    PersistentKeepalive
    , особенно если клиент за NAT’ом.
  • У меня VPN работает без перебоев на VPS уже второй год. В деньгах — дешевле подписки на платный сервис, в управлении — на 100% под моим контролем.
  • На одном сервере можно запускать несколько туннелей, просто используйте разные порты или интерфейсы (
    wg1
    ,
    wg2
    и т.д.).

Резюмируем

Да, скрипты — это удобно. Но когда вы понимаете, как настроить WireGuard VPN вручную, появляется настоящая свобода. Вы больше не зависите от сторонних решений, не боитесь нестандартных ситуаций и точно знаете, что происходит на каждом этапе. Для меня это был важный шаг от “юзера” к настоящему девопсу.


За стабильность — с бонусом

Долгосрочные клиенты получают больше: +1 месяц в подарок по промокоду

Месяц в подарок
COPIED
NEWCOMM COPIED