Свой VPN на VPS — это защищённый трафик в кафе и аэропортах, доступ к домашним и рабочим ресурсам из любой точки мира и никаких «бесплатных» сервисов, которые торгуют вашими данными. Настройка WireGuard занимает действительно около десяти минут: это самый лёгкий и быстрый VPN-протокол на сегодня, он встроен прямо в ядро Linux. В этой инструкции разберём установку WireGuard на Ubuntu 24.04 LTS с нуля: генерация ключей через wg genkey, конфиг /etc/wireguard/wg0.conf, подключение телефона и ноутбука, а также нюансы запуска на дешёвом NAT VPS с нестандартным портом.
Почему именно WireGuard
WireGuard появился позже классических протоколов и избавился от их исторического багажа. Весь код — около 4 тысяч строк против сотен тысяч у OpenVPN, поэтому его проще аудировать и сложнее сломать. Что это даёт на практике:
- Скорость. Работа в ядре Linux и современная криптография ChaCha20-Poly1305 дают в 2–4 раза большую пропускную способность, чем у OpenVPN на том же сервере.
- Мгновенное подключение. Рукопожатие занимает миллисекунды; при смене сети (Wi-Fi → LTE) туннель переживает переключение незаметно.
- Экономия батареи. Протокол «молчит», когда нет трафика, — телефон не разряжается.
- Простая модель. Никаких сертификатов и центров сертификации: у каждой стороны пара ключей, как в SSH.
Если вам ближе классика с сертификатами или нужен TCP-режим, посмотрите инструкцию по OpenVPN на VPS. А о том, почему собственный сервер честнее любого бесплатного VPN-сервиса, мы подробно писали в статье «Свой VPN против бесплатного».
Что понадобится
Требования у WireGuard минимальные — он спокойно живёт на самом дешёвом сервере:
- VPS с Ubuntu 24.04 LTS и root-доступом;
- 1 vCPU и 1 ГБ RAM — с запасом хватит для 1–5 устройств;
- безлимитный трафик, чтобы не считать гигабайты.
Для личного VPN разумно не переплачивать: у Cheap-Host есть NAT VPS в Германии — тариф NAT Base за 99 ₽/мес (1 vCPU, 2 ГБ RAM, 15 ГБ NVMe, безлимитный трафик на канале 100 Мбит/с). IP-адрес там общий, но WireGuard это не мешает — ниже покажем, как задать нестандартный порт. Если нужен выделенный IPv4 и локация в Москве, подойдёт обычный VPS Start за 450 ₽/мес. Сервер выдаётся автоматически за 45–60 секунд — IP и SSH-доступ приходят сразу после оплаты. Как подключиться к серверу, разобрано в статье про SSH с Windows, macOS и Linux.
Настройка WireGuard на Ubuntu 24.04: сервер
Шаг 1. Установка
sudo apt update
sudo apt install -y wireguard
Пакет ставит утилиты wg и wg-quick; модуль ядра уже входит в Ubuntu 24.04.
Шаг 2. Генерация ключей сервера
wg genkey | sudo tee /etc/wireguard/server_private.key | wg pubkey | sudo tee /etc/wireguard/server_public.key
sudo chmod 600 /etc/wireguard/server_private.key
Команда wg genkey создаёт приватный ключ, а wg pubkey выводит из него публичный. Приватный ключ сервера никуда не передаётся.
Шаг 3. Ключи для клиента
Для каждого устройства — своя пара:
wg genkey | tee client1_private.key | wg pubkey > client1_public.key
Шаг 4. Конфиг /etc/wireguard/wg0.conf
Создайте файл sudo 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 = ПУБЛИЧНЫЙ_КЛЮЧ_КЛИЕНТА_1
AllowedIPs = 10.8.0.2/32
Подставьте содержимое своих файлов ключей. Имя внешнего интерфейса проверьте командой ip route | grep default — если это не eth0, а, например, ens3, поправьте строки PostUp/PostDown. Для каждого нового устройства добавляйте секцию [Peer] со своим ключом и следующим адресом: 10.8.0.3/32, 10.8.0.4/32 и т. д.
Шаг 5. Форвардинг и файрвол
echo "net.ipv4.ip_forward=1" | sudo tee /etc/sysctl.d/99-wireguard.conf
sudo sysctl --system
sudo ufw allow 51820/udp
Шаг 6. Запуск
sudo systemctl enable --now wg-quick@wg0
sudo wg
Команда sudo wg покажет интерфейс, порт и список пиров. Сервер готов — на всё ушло меньше десяти минут.
Подключение клиентов: телефон и компьютер
Создайте на сервере файл client1.conf:
[Interface]
PrivateKey = ПРИВАТНЫЙ_КЛЮЧ_КЛИЕНТА_1
Address = 10.8.0.2/24
DNS = 1.1.1.1
[Peer]
PublicKey = ПУБЛИЧНЫЙ_КЛЮЧ_СЕРВЕРА
Endpoint = IP_СЕРВЕРА:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
AllowedIPs = 0.0.0.0/0 означает «весь трафик в туннель» — то, что нужно для защиты в публичном Wi-Fi. Если хотите ходить через VPN только к своим ресурсам, укажите вместо этого их подсеть, например 10.8.0.0/24. PersistentKeepalive = 25 держит соединение живым за NAT домашнего роутера.
Дальше два пути:
- Компьютер. Установите приложение WireGuard для Windows/macOS/Linux и импортируйте файл
client1.conf. - Телефон. Удобнее QR-код:
sudo apt install -y qrencode, затемqrencode -t ansiutf8 < client1.conf— и отсканируйте код камерой из приложения WireGuard.
Проверка: включите туннель и откройте любой сервис определения IP — должен показаться адрес вашего VPS.
WireGuard на NAT VPS: нестандартный порт
На NAT VPS IPv4-адрес общий, а вам выделяется диапазон из 999 TCP/UDP-портов плюс отдельный порт для SSH. Стандартный порт WireGuard 51820, скорее всего, не входит в ваш диапазон — но протоколу совершенно всё равно, на каком порту работать. Достаточно двух правок:
- в серверном
wg0.conf:ListenPort = ВАШ_ПОРТ(любой UDP-порт из выделенного диапазона, его список виден в панели управления); - в клиентском конфиге:
Endpoint = ОБЩИЙ_IP:ВАШ_ПОРТ.
После правки — sudo systemctl restart wg-quick@wg0. Больше ничего менять не нужно: исходящий NAT на стороне хостера уже настроен. Подробно о том, как устроен проброс и чем NAT VPS отличается от обычного, — в статье про проброс портов на NAT VPS. Именно поэтому NAT Base за 99 ₽/мес — самый дешёвый способ получить личный VPN: WireGuard использует ровно один UDP-порт из 999 доступных.
Типичные проблемы и решения
| Симптом | Причина | Решение |
|---|---|---|
| Туннель поднялся, но интернета нет | Не включён форвардинг или неверный интерфейс в MASQUERADE | Проверьте sysctl net.ipv4.ip_forward и имя интерфейса в PostUp |
| Рукопожатие не проходит | Закрыт UDP-порт или порт вне диапазона NAT VPS | Откройте порт в UFW; на NAT VPS возьмите порт из своего диапазона |
| Соединение отваливается за домашним роутером | NAT-таймаут | Добавьте PersistentKeepalive = 25 у клиента |
| Ошибка при старте wg-quick | Опечатка или лишние пробелы в ключах | Сравните ключи с файлами, проверьте синтаксис конфига |
| Не открываются сайты, но пинг по IP идёт | Проблема с DNS | Укажите DNS = 1.1.1.1 в секции [Interface] клиента |
FAQ
Сколько ресурсов нужно VPS для WireGuard?
Совсем немного: WireGuard работает в ядре Linux и почти не нагружает процессор. Для личного VPN на 1–5 устройств достаточно 1 vCPU и 1–2 ГБ RAM — например, NAT Base у Cheap-Host за 99 ₽/мес с безлимитным трафиком.
Заработает ли WireGuard на NAT VPS с общим IP?
Да. WireGuard использует один UDP-порт, и его номер можно свободно менять. Укажите в ListenPort любой из выделенных вам портов, а в клиентском Endpoint — общий IP сервера и этот же порт.
Насколько WireGuard быстрее OpenVPN?
На одинаковом железе WireGuard обычно даёт в 2–4 раза большую пропускную способность и меньший пинг: он работает в ядре и использует лёгкую криптографию ChaCha20-Poly1305. Канал 100 Мбит/с он загружает практически без потерь.
Можно ли подключить несколько устройств?
Да. Каждому устройству — своя пара ключей и своя секция [Peer] в wg0.conf с уникальным адресом: 10.8.0.2/32, 10.8.0.3/32 и так далее. После правки перезапустите wg-quick@wg0.
Законно ли поднимать свой VPN на VPS?
Личный VPN для защиты собственного трафика в публичных сетях и доступа к своим ресурсам — обычный инструмент безопасности, как SSH или HTTPS. Ответственность за использование туннеля лежит на вас: соблюдайте законодательство своей страны и правила хостинга.
Вывод
WireGuard — самый короткий путь к личному VPN: шесть шагов, один конфиг wg0.conf, десять минут времени. Вы получаете шифрование трафика в любом публичном Wi-Fi, стабильный доступ к своим ресурсам и полный контроль над сервером — без подписок и чужих логов. Если для этой задачи вам нужен сервер — у Cheap-Host есть NAT Base от 99 ₽/мес: NVMe, KVM, безлимитный трафик, автодеплой за 45–60 секунд. Оплатить можно СБП, картой «Мир» или криптовалютой, а если что-то не заведётся — поддержка 24/7 отвечает без шаблонных отписок.