Как развернуть WireGuard VPN на VPS: пошаговая инструкция

Свой VPN на собственном сервере — это личный шифрованный канал, которым не пользуется больше никто. Он не ведёт логов, не режет скорость и стоит примерно как чашка кофе в месяц. WireGuard хорош тем, что его конфигурация умещается в десяток строк, а по скорости он заметно обгоняет OpenVPN.
Ниже — полный путь: от покупки сервера до QR-кода, который вы отсканируете телефоном. Никаких предварительных знаний, кроме умения копировать команды, не нужно — весь путь занимает минут пятнадцать.
Шаг 1. Взять сервер
VPN нужно где-то разместить, поэтому начинаем с аренды VPS. В панели NodexGo это делается так:
1. Нажмите кнопку «Создать сервер».
2. Выберите локацию. Рядом с каждой показан ваш реальный пинг до неё — для VPN это главный параметр: чем ниже пинг, тем незаметнее туннель. Обычно берут страну, через которую хотят выходить в интернет.
3. Выберите тариф и образ системы. Для WireGuard хватает самого младшего тарифа: 1 vCPU и 2 ГБ памяти держат несколько десятков устройств. Образ — Ubuntu 24.04, все команды ниже написаны под неё.
4. Задайте имя сервера — например vpn — и выберите период оплаты: 1, 3, 6 или 12 месяцев.
5. Подтвердите заказ. Примерно через минуту сервер готов: IP-адрес и пароль root придут в панель и на почту.
1 vCPU, 2 ГБ и NVMe — этого достаточно для личного VPN на всю семью.
Создать серверШаг 2. Подключиться к серверу
Откройте терминал (в Windows — PowerShell) и подключитесь по SSH, подставив выданный IP. Пароль спросят при подключении — скопируйте его из панели.
ssh root@IP-адрес-сервераЕсли SSH по какой-то причине не отвечает, в карточке сервера в панели есть web-консоль VNC: она работает в обход сети и SSH, и через неё всегда можно попасть в систему.
Шаг 3. Обновить систему и поставить WireGuard
Первым делом обновляем пакеты — на свежем образе это занимает полминуты.
apt update && apt upgrade -yСтавим сам WireGuard и утилиту qrencode: она понадобится в конце, чтобы подключить телефон одним сканированием.
apt install -y wireguard qrencodeШаг 4. Создать ключи
WireGuard не использует логины и пароли — вместо них пара ключей у сервера и у каждого устройства. Команда umask 077 нужна, чтобы файлы ключей были доступны только root.
umask 077
wg genkey | tee /etc/wireguard/server.key | wg pubkey > /etc/wireguard/server.pub
wg genkey | tee /etc/wireguard/client1.key | wg pubkey > /etc/wireguard/client1.pubПосмотреть содержимое ключей можно так — они пригодятся при заполнении конфигов:
cat /etc/wireguard/server.key /etc/wireguard/server.pub /etc/wireguard/client1.key /etc/wireguard/client1.pubШаг 5. Узнать имя сетевого интерфейса
В правилах NAT нужно указать интерфейс, через который сервер выходит в интернет. Чаще всего это eth0, но лучше проверить:
ip -o -4 route show to default | awk '{print $5}'Шаг 6. Конфигурация сервера
Создайте файл /etc/wireguard/wg0.conf. Подставьте в PrivateKey содержимое server.key, в PublicKey раздела Peer — содержимое client1.pub, а eth0 замените именем интерфейса из предыдущего шага.
nano /etc/wireguard/wg0.conf[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = ПРИВАТНЫЙ_КЛЮЧ_СЕРВЕРА
PostUp = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer]
PublicKey = ПУБЛИЧНЫЙ_КЛЮЧ_КЛИЕНТА
AllowedIPs = 10.8.0.2/32Сохраните файл: Ctrl+O, Enter, затем Ctrl+X.
Шаг 7. Разрешить пересылку пакетов
Без этого сервер примет ваше подключение, но не пустит трафик дальше в интернет — типичная причина «VPN подключился, а сайты не открываются».
echo 'net.ipv4.ip_forward=1' > /etc/sysctl.d/99-wireguard.conf
sysctl --systemШаг 8. Открыть порт и запустить
Настраиваем файрвол. Важно разрешить SSH до включения ufw, иначе вы отрежете себе доступ (и придётся заходить через VNC-консоль в панели).
ufw allow OpenSSH
ufw allow 51820/udp
ufw enableЗапускаем туннель и ставим его в автозагрузку, чтобы он поднимался после перезагрузки сервера:
systemctl enable --now wg-quick@wg0Проверяем, что интерфейс поднялся:
wg showШаг 9. Конфигурация клиента
Теперь создадим файл настроек для вашего устройства. В PrivateKey идёт client1.key, в PublicKey — server.pub, в Endpoint — IP вашего сервера.
nano /etc/wireguard/client1.conf[Interface]
PrivateKey = ПРИВАТНЫЙ_КЛЮЧ_КЛИЕНТА
Address = 10.8.0.2/24
DNS = 1.1.1.1
[Peer]
PublicKey = ПУБЛИЧНЫЙ_КЛЮЧ_СЕРВЕРА
Endpoint = IP-адрес-сервера:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25Строка AllowedIPs = 0.0.0.0/0 означает «весь трафик через VPN». Если нужен доступ только к самому серверу, оставьте 10.8.0.0/24.
Шаг 10. Подключить телефон и компьютер
Для телефона установите приложение WireGuard из App Store или Google Play и покажите ему QR-код прямо из терминала:
qrencode -t ansiutf8 < /etc/wireguard/client1.confНаведите камеру приложения на код — профиль добавится сам. Для компьютера скачайте файл client1.conf на свою машину (команда выполняется в терминале вашего компьютера, не на сервере) и импортируйте его в клиент WireGuard для Windows или macOS:
scp root@IP-адрес-сервера:/etc/wireguard/client1.conf .Проверьте результат: включите VPN и откройте любой сервис проверки IP — он должен показать адрес вашего сервера, а не домашний.
Как добавить ещё одно устройство
Каждому устройству нужен свой ключ и свой адрес: 10.8.0.3, затем 10.8.0.4 и так далее. Создаём ключи так же, как в шаге 4, и добавляем в конец /etc/wireguard/wg0.conf ещё один блок:
[Peer]
PublicKey = ПУБЛИЧНЫЙ_КЛЮЧ_ВТОРОГО_УСТРОЙСТВА
AllowedIPs = 10.8.0.3/32После правки конфига перезапустите туннель:
systemctl restart wg-quick@wg0Если что-то не работает
Подключение не устанавливается — проверьте, что порт 51820/udp открыт и что в Endpoint указан правильный IP. Помните: WireGuard работает по UDP, а не TCP.
VPN подключился, но интернета нет — почти всегда это забытый ip_forward из шага 7 или неверное имя интерфейса в правилах NAT из шага 5.
Работает медленно или обрываются большие страницы — попробуйте добавить в раздел Interface клиента строку MTU = 1420.
Совсем потеряли доступ к серверу — откройте web-консоль VNC в карточке сервера в панели. Там же есть кнопки «Сменить пароль root» и «Переустановить ОС», если проще начать заново: переустановка занимает пару минут, а эта инструкция повторяется за пятнадцать.
Какой сервер нужен под VPN
WireGuard почти не нагружает процессор: младшего тарифа с 1 vCPU и 2 ГБ памяти хватает для семьи или небольшой команды. Упереться можно разве что в трафик, поэтому смотрите на его лимит в тарифе, а не на количество ядер.
Если устройств станет больше или захочется гонять через туннель тяжёлый трафик, в карточке сервера есть кнопка «Увеличить мощности»: тариф меняется на старший, диск и IP-адрес при этом сохраняются, настраивать WireGuard заново не нужно.
Локации в Европе, оплата за 1, 3, 6 или 12 месяцев, сервер готов через минуту.
Посмотреть тарифы