MAATRIX / Блог / WireGuard на Ubuntu 22.04: пошаговая установка

WireGuard на Ubuntu 22.04: пошаговая установка

MAATRIX

Ubuntu 22.04 LTS вышла в апреле 2022 года и до сих пор остаётся рабочей лошадкой на многих серверах — стандартная поддержка длится до апреля 2027 года, а через Ubuntu Pro можно дотянуть и до 2032-го. Если у вас уже развёрнута инфраструктура на 22.04 или хостинг-провайдер предлагает именно этот образ, WireGuard встаёт на неё так же быстро, как на 24.04, но с рядом нюансов по ядру и пакетам, которые стоит знать заранее. Разберём установку по шагам и покажем, чем 22.04 в этом смысле отличается от более новой LTS.

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →

Почему именно Ubuntu 22.04, а не 24.04

22.04 (кодовое имя Jammy Jellyfish) — не устаревший, а просто более консервативный выбор. У неё за плечами четыре года эксплуатации и патчей, поэтому большинство редких багов в базовых пакетах уже выловлено сообществом. Часть корпоративного и legacy-софта — старые агенты мониторинга, проприетарные бэкап-клиенты, некоторые панели управления — до сих пор официально сертифицирована только под 22.04 и на 24.04 либо не тестировалась, либо требует дополнительных костылей.

Есть и практическая причина: часть хостинг-провайдеров и Terraform/Ansible-шаблонов ещё не обновили образы по умолчанию, и 22.04 остаётся дефолтом в готовых плейбуках. Если у вас уже есть парк серверов на этой версии, разумнее держать VPN-узел на том же образе, чем плодить зоопарк из двух LTS ради одной функции.

Минус тоже есть: 22.04 будет получать security-патчи ещё несколько лет, но новые версии пакетов (systemd, netplan, openssl) приходят в неё с задержкой или не приходят вовсе — часть свежих фич из 24.04 сюда не бэкпортируют. Для WireGuard это не критично: протокол зрелый, а функциональность wg/wg-quick не менялась годами. Если вы разворачиваете сервер с нуля и версия не принципиальна, у версии для Ubuntu 24.04 чуть свежее ядро и более длинный горизонт поддержки — но 22.04 всё ещё абсолютно рабочий и поддерживаемый вариант.

Ядро и пакеты: чем 22.04 отличается от 24.04

Главное отличие — версия ядра «из коробки». Ubuntu 22.04 на релизе поставлялась с ядром линейки 5.15, тогда как 24.04 стартовала сразу с 6.8. Проверить, что у вас на сервере прямо сейчас, можно одной командой:

uname -r

Здесь важно не пугаться: WireGuard был включён в основное дерево ядра Linux ещё с версии 5.6 (март 2020 года), поэтому и на GA-ядре 5.15, и на любом более свежем HWE-ядре модуль уже встроен нативно — отдельно собирать его через DKMS, как когда-то приходилось на Ubuntu 18.04, не нужно ни на 22.04, ни на 24.04.

Второй момент — HWE-стек (Hardware Enablement). Ubuntu периодически обновляет ядро внутри LTS-релиза для новых версий железа: если вы ставили сервер недавно или явно переходили на HWE-ядро, к 2026 году на 22.04 вполне может стоять ядро из линейки заметно новее 5.15 — вплоть до близкого к тому, что идёт в 24.04 «из коробки». Проверить канал обновлений ядра:

apt list --installed | grep linux-image

Пакет самого WireGuard ставится на 22.04 той же командой, что и на 24.04 — принципиальной разницы в имени пакета нет, репозиторий universe содержит актуальную сборку wireguard-tools для обеих версий. Разница в основном в версии пакета в момент установки: 22.04 может подтягивать чуть более старую сборку wireguard-tools, чем свежая 24.04, но на функциональности wg genkey/wg-quick это не сказывается — синтаксис конфигов идентичен.

ПараметрUbuntu 22.04 (Jammy)Ubuntu 24.04 (Noble)
Релизапрель 2022апрель 2024
Конец стандартной поддержкиапрель 2027апрель 2029
GA-ядро на релизе5.156.8
Поддержка WireGuard в ядренативная (с 5.6+)нативная (с 5.6+)
Установка пакетаapt install wireguardapt install wireguard
netplan / сетевой стекболее старая веткаболее новая ветка

Арендуйте сервер под свои задачи!

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.

Арендовать сервер

Подготовка сервера и установка WireGuard

Перед установкой обновите систему — на LTS-релизе с долгим циклом поддержки это особенно важно, поскольку часть пакетов может ждать обновления давно:

apt update && apt upgrade -y

Ресурсов WireGuard требует немного: одного ядра CPU и 512 МБ–1 ГБ RAM достаточно для личного использования и небольшой команды — всю тяжёлую работу (шифрование ChaCha20) берёт на себя ядро. Если сервер арендован под конкретную задачу — обход блокировок, доступ к зарубежным сервисам, стабильный внешний IP, — локацию стоит выбирать под неё: США для доступа к зарубежным AI-сервисам и стримингу, Великобритания для низкого пинга до Европы, Россия — если важна близость к рунету. Оплата из России в любом случае не проблема: MAATRIX принимает карты российских банков, СБП и криптовалюту, включая токен MAAT, так что иностранная карта не нужна.

Ставим сам WireGuard:

apt install -y wireguard

Пакет подтягивает wg (утилиту управления ключами и интерфейсом) и wg-quick (обёртку для быстрого поднятия туннеля из конфига). Убедитесь, что модуль ядра действительно доступен:

modprobe wireguard
lsmod | grep wireguard

Если команда lsmod показывает строку wireguard, модуль загружен и всё готово к настройке. На большинстве серверов 22.04 этот шаг проходит без единой ошибки — модуль встроен в ядро, а не собирается на лету.

Генерация ключей и конфиг сервера

WireGuard использует асимметричную схему: приватный ключ остаётся на устройстве и никогда никуда не передаётся, публичный — раздаётся собеседникам. Создайте пару для сервера:

mkdir -p /etc/wireguard
cd /etc/wireguard
umask 077
wg genkey | tee server_private.key | wg pubkey > server_public.key

umask 077 выставляется до генерации не случайно — она гарантирует, что файлы ключей создадутся с правами 600, недоступными никому, кроме root. Если приватный ключ сервера утечёт, атакующий сможет представиться вашим сервером для всех клиентов — относитесь к нему как к паролю root. Так же сгенерируйте пару для первого клиента:

wg genkey | tee client_private.key | wg pubkey > client_public.key

Теперь создайте конфиг интерфейса /etc/wireguard/wg0.conf:

[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = ПРИВАТНЫЙ_КЛЮЧ_СЕРВЕРА
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
PublicKey = ПУБЛИЧНЫЙ_КЛЮЧ_КЛИЕНТА
AllowedIPs = 10.0.0.2/32

Address — внутренний IP сервера в VPN-подсети, ListenPort — стандартный UDP-порт WireGuard (можно сменить на нестандартный, если по этому порту фильтруют трафик). Строки PostUp/PostDown включают NAT: они выпускают трафик клиентов в интернет через внешний интерфейс сервера. Уточните его имя заранее:

ip route | grep default

На виртуалках Ubuntu 22.04 это чаще всего eth0 или ens3 в зависимости от гипервизора провайдера — подставьте реальное значение вместо eth0 в конфиге. Блок [Peer] описывает конкретного клиента: его публичный ключ и разрешённый внутренний адрес.

Форвардинг, firewall и автозапуск

Без включённого IP-форвардинга ядро принимает пакеты от клиентов, но не пересылает их дальше — туннель поднимается, а интернет за ним не работает. Включите форвардинг постоянно:

echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p

Откройте нужные порты в firewall. Правило для SSH добавляйте первым, чтобы не потерять доступ к серверу при включении ufw:

ufw allow 22/tcp
ufw allow 51820/udp
ufw enable

Поднимите интерфейс и включите автозапуск, чтобы туннель поднимался сам после каждой перезагрузки VPS:

wg-quick up wg0
systemctl enable wg-quick@wg0

Проверьте статус:

wg show

Команда должна показать интерфейс wg0, публичный ключ сервера и (после первого подключения клиента) строку с последним handshake. Если systemctl enable пропустить, туннель будет работать до первой перезагрузки, а потом молча исчезнет — это самая частая причина внезапной «потери VPN» через несколько дней после настройки. Подробный разбор типовых сбоев — в статье про частые ошибки WireGuard на сервере, а базовые принципы работы ufw — в отдельном гайде по настройке firewall на Ubuntu 24.04 (логика правил не меняется от версии Ubuntu).

Настройка клиента и проверка подключения

На стороне клиента (ноутбук, телефон, второй сервер) создайте конфиг:

[Interface]
PrivateKey = ПРИВАТНЫЙ_КЛЮЧ_КЛИЕНТА
Address = 10.0.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 заворачивает весь трафик клиента через сервер (полный туннель). Если нужен доступ только к части ресурсов без замедления остального интернета, замените на конкретные подсети. PersistentKeepalive = 25 держит NAT-маппинг открытым — без него на мобильной сети или за роутером туннель может «засыпать» и не просыпаться сам.

Для телефона удобнее не набирать конфиг вручную, а сгенерировать QR-код:

apt install -y qrencode
qrencode -t ansiutf8 < client.conf

Отсканируйте его приложением WireGuard — конфигурация импортируется мгновенно. После подключения проверьте, что трафик действительно идёт через сервер:

curl https://api.ipify.org

Ответ должен показать внешний IP вашего VPS, а не домашний адрес. Если хотите такую же схему, но без ручной правки конфигов при каждом новом устройстве, посмотрите на веб-панель wg-easy для WireGuard — она генерирует клиентов и QR-коды через браузер поверх того же самого wg0.

На минимальных установках Ubuntu 22.04 Server иногда не хватает пакета resolvconf — если wg-quick ругается на DNS при поднятии интерфейса с полем DNS= в конфиге, поставьте его отдельно: apt install -y resolvconf. На десктопных сборках и там, где уже настроен systemd-resolved с совместимым враппером, эта проблема не возникает вовсе.

Арендуйте сервер под свои задачи!

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.

Арендовать сервер

Нужны сами нейросети для контента?

Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.

Частые вопросы

Нужно ли на Ubuntu 22.04 собирать модуль WireGuard из исходников?

Нет. WireGuard в ядре Linux с версии 5.6, а GA-ядро 22.04 (5.15) и тем более более новые HWE-ядра уже содержат его нативно. Собирать через DKMS, как на старых релизах, не требуется.

В чём практическая разница между установкой на 22.04 и на 24.04?

Команды и синтаксис конфигов идентичны. Отличается версия ядра «из коробки» (5.15 против 6.8 на старте LTS) и горизонт поддержки — 22.04 поддерживается до апреля 2027 года, 24.04 — до апреля 2029-го.

Стоит ли переходить с 22.04 на 24.04 только ради WireGuard?

Нет смысла. Функциональность wg/wg-quick не менялась годами, и на 22.04 туннель работает так же стабильно. Переходите, если вам нужны более новые версии других пакетов или больший запас поддержки, а не из-за самого VPN.

После установки нет интернета через туннель — с чего начать?

Проверьте sysctl net.ipv4.ip_forward (должно быть 1) и правильность имени внешнего интерфейса в строках PostUp/PostDown — это причина девяти случаев из десяти.

Как оплатить сервер под WireGuard из России?

Картой российского банка, через СБП, криптовалютой или токеном MAAT — иностранная карта не понадобится.

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →