WireGuard на Ubuntu 24.04: пошаговая установка
WireGuard — самый простой и быстрый способ поднять личный VPN на своём сервере. Он живёт в ядре Linux, шифрует трафик современной криптографией и настраивается за десять минут даже без опыта. Никаких громоздких конфигов, как у старых решений: пара ключей, короткий файл настроек — и весь ваш трафик идёт через сервер с чистым IP. Разберём установку на Ubuntu 24.04 по шагам, с командами и объяснением каждой строки.
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Почему WireGuard, а не OpenVPN
Главное отличие WireGuard — простота и скорость. Кодовая база в десятки раз меньше, чем у OpenVPN, а значит, меньше поверхность для ошибок и уязвимостей. Протокол встроен прямо в ядро Linux начиная с версии 5.6, поэтому работает быстро и с минимальными задержками.
На практике это выглядит так: там, где OpenVPN требует сертификатов, центра сертификации и многострочного конфига, WireGuard обходится парой ключей и десятком строк. Скорость выше, пинг ниже, переподключение при смене сети — мгновенное, что особенно ценно на мобильных устройствах. Расход батареи на телефоне тоже заметно меньше.
Честный минус один: WireGuard узнаваем для систем глубокого анализа трафика. В сетях с агрессивной фильтрацией его сигнатуру могут распознать и заблокировать. Если задача — именно обход жёстких блокировок, к WireGuard добавляют маскировку (например, через AmneziaWG) или берут протоколы вроде VLESS Reality. Но для личного VPN, доступа к рабочим ресурсам и стабильного зарубежного IP WireGuard — оптимальный выбор.
Подготовка сервера и выбор локации
Ресурсов WireGuard почти не требует: 1 ядро, 512 МБ–1 ГБ RAM и минимальный диск закрывают личное использование и небольшую команду. Вся работа — это шифрование пакетов, которое ядро выполняет очень эффективно.
Локацию выбирайте под задачу. Нужен доступ к зарубежным сервисам, AI и стримингу — берите VPS в США с чистым выделенным IP. Работаете с европейскими ресурсами и хотите низкий пинг до ЕС — UK. Для доступа к российским ресурсам с минимальной задержкой подойдёт RU-локация. Оплата зарубежного сервера из России решается просто: MAATRIX принимает карты российских банков, СБП, криптовалюту и токен MAAT, поэтому иностранная карта не нужна.
Начните с обновления системы, чтобы работать на актуальных пакетах:
apt update && apt upgrade -y
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS под WireGuardУстановка WireGuard и генерация ключей
В Ubuntu 24.04 WireGuard ставится одной командой из штатного репозитория:
apt install -y wireguard
Пакет wireguard тянет инструменты wg и wg-quick. Теперь сгенерируйте ключевую пару сервера. WireGuard использует асимметричные ключи: приватный хранится на сервере, публичный отдаётся клиентам.
cd /etc/wireguard
umask 077
wg genkey | tee server_private.key | wg pubkey > server_public.key
Команда umask 077 заранее закрывает файлы ключей от чужих глаз — это важно, приватный ключ не должен читаться никем, кроме root. Если приватный ключ утечёт, любой сможет выдать себя за ваш сервер, поэтому обращайтесь с ним как с паролем от почты. Публичный ключ, наоборот, не секретен — его можно спокойно передавать клиентам. В этом суть асимметричной схемы: то, что зашифровано одним ключом пары, расшифровывается только вторым, и знание публичной части не помогает восстановить приватную. Посмотрите содержимое:
cat server_private.key
cat server_public.key
Аналогично сгенерируйте пару для клиента:
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 — внутренний адрес сервера в VPN-сети. ListenPort 51820 — стандартный порт WireGuard. Строки PostUp и PostDown включают NAT: они заставляют сервер выпускать клиентский трафик в интернет через свой внешний интерфейс. Проверьте имя внешнего интерфейса командой ip route | grep default — обычно это eth0, но иногда ens3 или другое; подставьте своё. Блок [Peer] описывает клиента: его публичный ключ и внутренний адрес.
Включение форвардинга и запуск
Чтобы сервер пересылал трафик между интерфейсами, включите IP-форвардинг в ядре:
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p
Откройте порт WireGuard в firewall и разрешите SSH, чтобы не потерять доступ:
ufw allow 22/tcp
ufw allow 51820/udp
ufw enable
Теперь поднимите интерфейс и добавьте его в автозагрузку, чтобы туннель поднимался после каждой перезагрузки:
wg-quick up wg0
systemctl enable wg-quick@wg0
Проверьте статус — команда wg покажет активный интерфейс и подключённых пиров:
wg show
Разберём, что важно в этой последовательности. Форвардинг в ядре — обязательное условие: без него сервер получает клиентские пакеты, но не пересылает их в интернет, и туннель поднимается, а сайты не открываются. Правило MASQUERADE в строках PostUp подменяет внутренний адрес клиента на внешний адрес сервера, чтобы ответы возвращались правильно — это и есть механизм, благодаря которому весь ваш трафик выходит в сеть с чистого IP сервера. Команда systemctl enable wg-quick@wg0 критична для повседневного использования: без неё туннель не поднимется после перезагрузки VPS, и вы обнаружите пропажу доступа в самый неподходящий момент.
Настройка клиента и проверка
Создайте конфиг на клиенте (файл client.conf или через приложение WireGuard):
[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 заворачивает весь трафик через сервер — это полный туннель. Endpoint — публичный IP вашего VPS и порт. PersistentKeepalive = 25 держит соединение живым за NAT, что важно на мобильных сетях. Для телефона удобнее сгенерировать QR-код:
apt install -y qrencode
qrencode -t ansiutf8 < client.conf
Отсканируйте код приложением WireGuard — конфиг импортируется мгновенно. После подключения проверьте внешний IP: curl https://api.ipify.org должен вернуть адрес сервера, а не ваш домашний. Всё готово — весь трафик идёт через VPS с чистым зарубежным IP.
Если вы хотите не полный туннель, а маршрутизацию только части трафика, поменяйте AllowedIPs на клиенте: вместо 0.0.0.0/0 перечислите конкретные подсети, которые должны идти через VPN, а остальное пойдёт напрямую. Это удобно, когда нужен доступ к паре зарубежных сервисов без замедления локального интернета. Ещё один частый вопрос — несколько устройств: для каждого генерируется своя пара ключей и свой блок [Peer] на сервере с уникальным внутренним адресом (10.0.0.3, 10.0.0.4 и так далее). Не используйте один конфиг на двух устройствах одновременно — это ломает работу туннеля, потому что сервер видит конфликт адресов.
Чтобы поднять личный WireGuard за десять минут, нужен VPS с чистым IP в нужной локации. У MAATRIX сервер в США или UK разворачивается за пару минут, с оплатой картой РФ, СБП или криптой — без иностранной карты и лишней возни.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS под WireGuardОбсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Частые вопросы
WireGuard на Ubuntu 24.04 нужно собирать из исходников?
Нет, в Ubuntu 24.04 он ставится одной командой apt install wireguard из штатного репозитория, а модуль ядра уже встроен. Никакой ручной сборки не требуется.
Почему после подключения нет интернета?
Чаще всего не включён IP-форвардинг или неверно указан внешний интерфейс в правилах NAT. Проверьте sysctl net.ipv4.ip_forward (должно быть 1) и имя интерфейса в строках PostUp.
Заблокируют ли WireGuard?
В обычных сетях он работает стабильно, но узнаваем для глубокого анализа трафика. Если нужен обход жёсткой фильтрации, добавьте маскировку (AmneziaWG) или используйте VLESS Reality.
Как оплатить сервер под WireGuard из России?
Картой российского банка, по СБП, криптовалютой или токеном MAAT. Иностранная карта не нужна, сервер поднимается за пару минут.
Нужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.