Muhomor VPNМухомор VPN
  1. Главная
  2. Справочник VPN
  3. Инструкции по настройке
  4. Как настроить WireGuard на Linux через wg-quick

Как настроить WireGuard на Linux через wg-quick

Настройка WireGuard в Linux — это три команды: поставить пакет wireguard-tools, положить конфиг в /etc/wireguard/wg0.conf с правами 600 и поднять туннель командой wg-quick up wg0. Ниже — команды для Ubuntu, Debian, Fedora и Arch, автозапуск через systemd, импорт в NetworkManager и разбор ошибок.

Обновлено 11 сентября 2026 · 9 мин чтения · Инструкции по настройке

Как WireGuard устроен в Linux

В Linux WireGuard живёт не отдельным приложением, а внутри самого ядра: начиная с версии 5.6 модуль входит в состав mainline-ядра, поэтому в Ubuntu 20.04 и новее, Debian 11 и новее, Fedora, Arch и openSUSE ставить драйвер отдельно не нужно. Из пространства пользователя с ним работают две утилиты из пакета wireguard-tools: низкоуровневая wg и обёртка wg-quick, которая одной командой поднимает интерфейс, назначает адреса, прописывает маршруты и DNS.

Клиентская настройка WireGuard на Linux поэтому выглядит проще, чем на любой другой системе: графический интерфейс не нужен, весь профиль — это один текстовый файл. Проверить версию ядра можно командой uname -r; если она ниже 5.6 (старые LTS-сборки, некоторые NAS и одноплатники), понадобится пакет wireguard-dkms, который соберёт модуль под ваше ядро, либо пользовательская реализация wireguard-go.

Нужен и сам конфиг — файл с расширением .conf, где записаны ключи, адрес сервера, DNS и маршруты. Оформить доступ и получить его можно на главной странице Muhomor VPN: 3 дня бесплатно, без карты, нужен только e-mail, файл приходит письмом. Из чего состоит такой файл и за что отвечает каждая строка, подробно разобрано в статье разбор конфига WireGuard. Ручной правки параметров не требуется — конфиг готов к работе как есть.

Шаг 1. Установка wireguard-tools в Ubuntu, Debian и Fedora

Пакет есть в штатных репозиториях всех массовых дистрибутивов, подключать сторонние источники не нужно.

ДистрибутивКоманда установки
Ubuntu, Debian, Linux Mint, Pop!_OSsudo apt update && sudo apt install wireguard
Fedora, RHEL, CentOS Stream, Rockysudo dnf install wireguard-tools
Arch, Manjaro, EndeavourOSsudo pacman -S wireguard-tools
openSUSEsudo zypper install wireguard-tools
Alpinesudo apk add wireguard-tools

В Debian и Ubuntu метапакет wireguard подтягивает wireguard-tools, а при необходимости и модуль. Убедитесь, что всё встало: команда wg --version должна вывести номер версии утилит. Наличие модуля ядра проверяется командой modinfo wireguard — если она сообщает, что модуль не найден, поставьте wireguard-dkms (Debian, Ubuntu) или обновите ядро.

Сборки для других платформ и исходники лежат на официальном сайте проекта; копии установщиков для Windows, macOS и Android — на странице загрузок Muhomor VPN. Если вы планируете пустить через туннель весь домашний трафик, вместо настройки на каждом компьютере имеет смысл настроить роутер — например по инструкции для WireGuard на OpenWrt.

Шаг 2. Конфиг в /etc/wireguard/wg0.conf и права 600

Утилита wg-quick ищет конфиги в каталоге /etc/wireguard/, а имя интерфейса берёт из имени файла. Файл wg0.conf поднимет интерфейс wg0, файл home.conf — интерфейс home. Имя должно быть короче 16 символов и состоять из букв, цифр, дефиса или подчёркивания.

  1. Создайте каталог, если его нет: sudo mkdir -p /etc/wireguard.
  2. Скопируйте полученный файл под нужным именем: sudo cp ~/Загрузки/muhomor.conf /etc/wireguard/wg0.conf.
  3. Закройте файл от посторонних: sudo chown root:root /etc/wireguard/wg0.conf и sudo chmod 600 /etc/wireguard/wg0.conf.
  4. Проверьте результат: ls -l /etc/wireguard/ — в строке должно быть -rw-------.

Права 600 обязательны не для красоты. В конфиге лежит приватный ключ: тот, кто его прочитает, сможет подключиться к серверу от вашего имени. Если файл доступен на чтение всем, wg-quick честно предупредит об этом при запуске. Полезная привычка — выполнять копирование под umask 077, тогда права выставятся сами.

Несколько профилей на одной машине

Ничто не мешает держать рядом wg0.conf и wg1.conf — например профиль с полным туннелем и профиль, где через VPN идёт только часть подсетей. Какие адреса попадают в туннель, определяет параметр AllowedIPs: 0.0.0.0/0, ::/0 означает весь трафик, перечень конкретных подсетей — только их. Одновременно поднимать два интерфейса с одним и тем же приватным ключом нельзя: сервер увидит два источника с одинаковым ключом и начнёт рвать соединение. На одном доступе Muhomor VPN выпускается до пяти отдельных конфигов — по одному на устройство.

Шаг 3. Поднимаем туннель: wg-quick up и down

Всё готово, поднимаем интерфейс:

  1. Включить туннель: sudo wg-quick up wg0.
  2. Выключить: sudo wg-quick down wg0.

В ответ на запуск утилита выведет список выполненных действий: ip link add wg0 type wireguard, назначение адреса, wg setconf, добавление маршрутов и правил. Это не ошибки, а протокол работы — так и должно быть. Обратите внимание: аргумент здесь именно wg0, а не путь к файлу; путь нужен, только если конфиг лежит вне /etc/wireguard.

Когда в конфиге прописан полный туннель (AllowedIPs = 0.0.0.0/0), wg-quick не переписывает маршрут по умолчанию грубо, а использует метку пакетов (fwmark) и отдельную таблицу маршрутизации. Благодаря этому трафик до самого VPN-сервера продолжает идти через обычный шлюз, а всё остальное уходит в туннель — и при падении интерфейса запросы не утекают мимо него открытым текстом.

Если нужно временно поднять соединение без прав root на каждый запуск, сделайте это через systemd (следующий раздел) или через NetworkManager — там подключение включается из графической оболочки обычным пользователем.

Шаг 4. Проверка: wg show, маршруты и DNS

Первая и главная команда диагностики — sudo wg show. Она выводит состояние интерфейса и каждого пира:

  • latest handshake — время последнего рукопожатия. Свежее значение (секунды или пара минут назад) означает, что связь с сервером есть. Строки нет совсем — пакеты до сервера не доходят.
  • transfer — счётчики принятого и отправленного трафика; оба должны расти при работе в сети.
  • endpoint — адрес и порт сервера, к которому вы подключены.

Дальше проверьте сетевой уровень: ip a show wg0 покажет назначенный адрес, ip route — маршруты. Внешний адрес удобно смотреть командой curl ifconfig.me — он должен отличаться от адреса вашего провайдера.

DNS: resolvconf и systemd-resolved

Строку DNS = из конфига wg-quick применяет через внешнюю утилиту resolvconf. Если её нет, запуск завершится сообщением resolvconf: command not found — при этом туннель может подняться, но имена продолжат резолвиться через DNS-сервер провайдера, то есть запросы пойдут мимо туннеля.

  • Debian, Ubuntu и производные: поставьте sudo apt install openresolv либо sudo apt install resolvconf.
  • Системы с systemd-resolved (Ubuntu 18.04+, Fedora, Arch с включённым сервисом): достаточно пакета systemd-resolvconf, который предоставляет совместимую команду.
  • Проверка результата: resolvectl status wg0 — в разделе интерфейса должен быть указан DNS-сервер из конфига.

Полностью убедиться, что ни IP, ни DNS не утекают мимо туннеля, помогают онлайн-проверки: методика описана в статье как проверить утечку DNS и IP.

Автозапуск: systemctl enable wg-quick@wg0

Пакет wireguard-tools приносит с собой шаблонный systemd-юнит wg-quick@.service. Имя конфига подставляется после символа «собака», поэтому для файла wg0.conf юнит называется wg-quick@wg0.

  1. Включить и сразу запустить: sudo systemctl enable --now wg-quick@wg0.
  2. Посмотреть состояние: systemctl status wg-quick@wg0.
  3. Перезапустить после правки конфига: sudo systemctl restart wg-quick@wg0.
  4. Отключить автозапуск: sudo systemctl disable --now wg-quick@wg0.

После enable туннель поднимается на этапе загрузки системы, до входа пользователя, и работает на сервере без графической сессии — это основной способ держать постоянное соединение на рабочей станции, домашнем сервере или одноплатнике. Журнал ошибок смотрите командой journalctl -u wg-quick@wg0 -b: там будет видно, почему интерфейс не поднялся.

Важно не смешивать способы управления. Если туннелем занимается systemd-юнит, не запускайте параллельно wg-quick up руками и не импортируйте тот же профиль в NetworkManager: два менеджера начнут спорить за один интерфейс, и соединение будет то появляться, то исчезать.

Импорт в NetworkManager: nmcli и графические оболочки

На десктопе удобнее, когда VPN включается тумблером в меню сети, а не командой в терминале. NetworkManager умеет читать конфиги WireGuard напрямую:

  1. Импортируйте профиль: nmcli connection import type wireguard file /etc/wireguard/wg0.conf. Соединение получит имя по имени файла — wg0.
  2. Включите его: nmcli connection up wg0, выключите — nmcli connection down wg0.
  3. Разрешите или запретите автоподключение: nmcli connection modify wg0 connection.autoconnect yes.
  4. Проверьте список: nmcli connection show.

После импорта соединение появляется в системных настройках сети в разделе VPN — в GNOME, KDE Plasma, Cinnamon и XFCE его можно включать мышью, без пароля root. Профиль NetworkManager хранится отдельно от исходного файла, поэтому после импорта правки в /etc/wireguard/wg0.conf на него уже не влияют: меняйте параметры через nmcli connection modify или переимпортируйте профиль заново.

Если вы импортировали конфиг в NetworkManager, отключите systemd-юнит: sudo systemctl disable --now wg-quick@wg0. И наоборот — на сервере без графики NetworkManager не нужен, там достаточно юнита. Выбирать стоит один инструмент, а не оба сразу.

Типичные ошибки и как их разбирать

wg-quick: command not found

Не установлен пакет wireguard-tools либо команда запущена без sudo и каталог /usr/bin не в пути. Проверьте wg --version и повторите установку из таблицы выше.

Предупреждение о том, что конфиг доступен на чтение всем

Забыли выставить права. Выполните sudo chmod 600 /etc/wireguard/wg0.conf. Туннель поднимется и без этого, но приватный ключ будет виден любому пользователю системы.

RTNETLINK answers: Operation not supported

Ядро не умеет работать с WireGuard: модуль не загружен или его нет вовсе. Проверьте uname -r и modinfo wireguard. Решения — обновить ядро до 5.6 и новее, поставить wireguard-dkms или использовать пользовательскую реализацию wireguard-go. Такое встречается на старых LTS-системах, в контейнерах и на некоторых VPS с урезанным ядром.

Интерфейс wg0 уже существует

Предыдущий запуск не завершился корректно. Выполните sudo wg-quick down wg0, а если не помогает — sudo ip link delete wg0, после чего поднимите туннель заново.

Туннель поднялся, но сайты не открываются

Смотрите sudo wg show. Нет рукопожатия — пакеты не доходят до сервера: в сети закрыт исходящий UDP или мешает корпоративный фильтр; проверьте гипотезу, раздав интернет с телефона. Рукопожатие есть, а сайты молчат — почти всегда проблема с DNS (см. раздел про resolvconf) или с MTU: попробуйте добавить в секцию [Interface] строку MTU = 1380. Остальные причины разобраны в статье WireGuard не подключается.

Соединение рвётся каждые несколько минут

Чаще всего один и тот же конфиг используется одновременно на двух машинах. Выпустите отдельный профиль для каждого устройства в разделе «Устройства» на главной. Вторая причина — сеть с агрессивным NAT, где помогает параметр PersistentKeepalive = 25; в конфигах Muhomor VPN он уже прописан.

После перезагрузки туннель не поднимается

Автозапуск не включён. Выполните sudo systemctl enable wg-quick@wg0 и проверьте systemctl is-enabled wg-quick@wg0. Если юнит включён, но падает, читайте journalctl -u wg-quick@wg0 -b: обычно там видно, что сеть ещё не была готова или отсутствует resolvconf.

Общий принцип диагностики простой: сверху вниз. Сначала интерфейс (ip a show wg0), затем рукопожатие (wg show), затем маршруты (ip route), затем DNS (resolvectl status). Как устроен протокол и почему он так экономно себя ведёт, объясняет статья что такое WireGuard.

Попробуйте Muhomor VPN — 3 дня бесплатно

WireGuard-конфиг придёт на e-mail за минуту. Без карты и автосписаний, до 5 устройств на одном доступе.

30 дней — 320 ₽60 дней — 610 ₽90 дней — 899 ₽оплата через Robokassa
Получить пробный доступ

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

Нужно ли ставить отдельный драйвер WireGuard в Linux?

Нет, если ядро версии 5.6 или новее — модуль уже в его составе. На старых ядрах понадобится пакет wireguard-dkms или пользовательская реализация wireguard-go.

Чем wg-quick отличается от wg?

Утилита wg управляет только параметрами интерфейса, а wg-quick дополнительно назначает адреса, маршруты, DNS и правила. Для клиентской настройки удобнее wg-quick.

Почему wg-quick ругается на права доступа к конфигу?

Файл доступен на чтение всем пользователям, а в нём лежит приватный ключ. Выполните sudo chmod 600 /etc/wireguard/wg0.conf.

Что делать при ошибке resolvconf: command not found?

Установите openresolv или systemd-resolvconf. Без этой утилиты wg-quick не применяет DNS из конфига, и запросы имён идут мимо туннеля.

Как включать VPN мышью, а не командой?

Импортируйте конфиг командой nmcli connection import type wireguard file /etc/wireguard/wg0.conf — соединение появится в настройках сети вашей графической оболочки.

Можно ли использовать один конфиг на сервере и ноутбуке?

Нет, соединение будет рваться у обоих. На одном доступе Muhomor VPN выпускается до пяти отдельных конфигов — по одному на устройство.