Flex-VPN

Flex-VPN Journal

VPN на Linux: Amnezia VPN и AmneziaWG в Ubuntu

Настройка VPN на Linux обычно сводится к выбору между графическим приложением и консольными утилитами. Для профилей AmneziaWG, которые выдаёт Flex-VPN, подходят оба пути: приложение Amnezia VPN — для тех, кому нужна кнопка подключения, и утилиты AmneziaWG с командой awg-quick — для тех, кто привык к терминалу и systemd. Ниже — установка в Ubuntu, Debian и Fedora, импорт ключа, DNS без утечек, автозапуск и диагностика.

Материал посвящён законным сценариям сетевой защиты и настройки. Соблюдайте правила, действующие в вашей юрисдикции.

Какой клиент выбрать для VPN на Linux

Ключи Flex-VPN для Linux — это профили AmneziaWG. Протокол основан на WireGuard, работает поверх UDP и добавляет маскировку служебных пакетов. Обычный WireGuard-клиент — wg-quick или поддержка WireGuard в NetworkManager — как правило, не подходит: он не знает параметров AmneziaWG, и рукопожатие с сервером не состоится. Подробнее о различиях — в статье WireGuard VPN и AmneziaWG.

Из приложений, с которыми работает Flex-VPN, Linux поддерживает Amnezia VPN, поэтому на компьютере с Linux подключаются по ключу AmneziaWG. Совместимых вариантов два:

КритерийПриложение Amnezia VPNУтилиты AmneziaWG (awg-quick)
ИнтерфейсГрафическое окноТерминал и systemd
Что импортируетсяКлюч AmneziaWG из бота или файл конфигурацииФайл конфигурации .conf
УстановкаУстановщик .run, только x86_64Пакеты из репозиториев Amnezia (PPA, COPR)
DNSПриложение настраивает самоСтрока DNS в конфигурации и resolvconf
АвтозапускЧерез настройки приложенияСлужба systemd
Кому подходитНоутбуки и рабочие станции с графической средойСистемы без графики, ARM-устройства, автоматизация

Если сомневаетесь, начните с приложения: оно ставится за несколько минут и не требует правки системных файлов. Консольный путь нужен там, где туннель должен подниматься при загрузке, ещё до входа пользователя.

Установка Amnezia VPN в Ubuntu, Debian и Fedora

Amnezia VPN для Linux распространяется как установщик .run для архитектуры x86_64. Сборки для ARM нет, поэтому на одноплатных компьютерах используйте консольный вариант из следующих разделов. Для установки нужны права администратора.

  1. Установите зависимости. Для Ubuntu и Debian документация Amnezia рекомендует библиотеки Qt и xcb: sudo apt install libxcb-cursor0 libxcb-xinerama0 libxcb-icccm4 libxcb-keysyms1 libopengl0 libxkbcommon-x11-0. В актуальных версиях Fedora, по той же документации, дополнительные пакеты не нужны.
  2. Скачайте файл вида AmneziaVPN_<версия>_linux_x64.run только из официального источника — с сайта Amnezia или из релизов проекта на GitHub.
  3. Откройте терминал в каталоге, куда сохранился файл, и сделайте его исполняемым: chmod +x AmneziaVPN_*_linux_x64.run.
  4. Запустите установщик командой ./AmneziaVPN_*_linux_x64.run и пройдите шаги мастера. Он устанавливает фоновую службу, через которую приложение управляет туннелем.
  5. Перезагрузите компьютер — так советует документация — и откройте Amnezia VPN из меню приложений.

Ошибка загрузки плагина платформы «xcb» при запуске означает, что не хватает библиотек: доустановите пакеты из первого шага, в Arch Linux — xcb-util-cursor. И не отключайте IPv6 в системе: по документации Amnezia, из-за этого в приложении перестаёт работать подключение.

Импорт ключа AmneziaWG и первое подключение

Ключ для компьютера берётся там же, где и для остальных устройств, — в Telegram-боте @vpn_flex_bot. Заведите для Linux отдельный ключ: так проще понять, какое устройство подключено, и заменить доступ, не затрагивая другие. Базовый тариф рассчитан на три устройства, подробности — на странице тарифов.

  1. Получите в боте ключ AmneziaWG и скопируйте его целиком — без пробелов и переносов строк по краям.
  2. В Amnezia VPN выберите добавление нового подключения и вставьте ключ. Если вам выдали файл конфигурации, импортируйте его вместо текста.
  3. Убедитесь, что подключение появилось в списке, и включите его.
  4. Сравните внешний IP-адрес до и после подключения: после включения должен отображаться адрес сервера в выбранной локации.

Интерфейс приложения на Linux такой же, как на Windows и macOS, поэтому пригодится и общая инструкция по Amnezia VPN. Продление подписки обычно не требует нового ключа: действующий профиль продолжает работать.

Настройка VPN на Linux через терминал: awg-quick

Консольный вариант — это модуль ядра AmneziaWG и утилиты awg и awg-quick, аналоги wg и wg-quick из WireGuard. Команды ниже — из README официальных репозиториев Amnezia; перед установкой сверьтесь с их актуальной версией.

Установка пакетов в Ubuntu

  1. Обновите систему: sudo apt update && sudo apt full-upgrade. Если обновилось ядро, перезагрузитесь — модуль собирается под работающее ядро.
  2. Включите репозитории исходного кода (deb-src) — этого требует README проекта. В Ubuntu 24.04 и новее в файле /etc/apt/sources.list.d/ubuntu.sources нужна строка Types: deb deb-src, в старых версиях — раскомментированные строки deb-src в /etc/apt/sources.list.
  3. Установите зависимости и заголовки ядра: sudo apt install -y software-properties-common python3-launchpadlib gnupg2 linux-headers-$(uname -r).
  4. Подключите репозиторий проекта: sudo add-apt-repository ppa:amnezia/ppa.
  5. Установите пакет: sudo apt install -y amneziawg. Он собирает модуль ядра через DKMS и ставит утилиты awg и awg-quick.

В Fedora пакеты ставятся из COPR: sudo dnf copr enable amneziavpn/amneziawg, затем sudo dnf install amneziawg-dkms amneziawg-tools; перед этим README советует обновить ядро и перезагрузиться. В Debian тот же PPA подключают вручную по README репозитория amneziawg-linux-kernel-module — ориентируйтесь на него, а не на пересказы. Если модуля ядра нет, awg-quick сам переключается на userspace-реализацию amneziawg-go — при условии, что она установлена отдельно; работает она медленнее.

Конфигурация и запуск

awg-quick работает с файлом в формате .conf. В секции [Interface] находятся приватный ключ устройства, адрес в туннеле, DNS и параметры AmneziaWG (например, Jc, Jmin, Jmax, S1, S2, H1–H4): не меняйте их, они должны совпадать с настройками сервера. В секции [Peer] — публичный ключ сервера, Endpoint и список AllowedIPs. Если в боте вы получили ключ в другом формате, уточните в поддержке, как получить конфигурацию .conf для вашего устройства.

  1. Сохраните файл как /etc/amnezia/amneziawg/awg0.conf: awg-quick ищет конфигурации в этом каталоге, а имя файла становится именем интерфейса.
  2. Ограничьте доступ к файлу: sudo chmod 600 /etc/amnezia/amneziawg/awg0.conf.
  3. Поднимите туннель: sudo awg-quick up awg0.
  4. Проверьте состояние командой sudo awg show. Отключение — sudo awg-quick down awg0.

Файл конфигурации содержит приватный ключ устройства. Не пересылайте его в открытых чатах и не храните в общих папках. Если файл попал к посторонним, сообщите об этом в поддержку.

Обычно в AllowedIPs указано 0.0.0.0/0, то есть через туннель идёт весь IPv4-трафик, а при наличии ::/0 — и IPv6. Чтобы пускать через VPN только отдельные сети, перечислите их вместо 0.0.0.0/0 — это консольный аналог раздельного туннелирования. Проверьте при этом DNS: если адрес DNS-сервера из конфигурации не входит в список, запросы к нему пойдут мимо туннеля или перестанут проходить.

DNS и systemd-resolved: как избежать утечек

Приложение Amnezia VPN настраивает DNS само. В awg-quick за это отвечает строка DNS в конфигурации: утилита передаёт адреса системе через команду resolvconf.

Ошибка «resolvconf: command not found»

В Ubuntu и ряде других дистрибутивов DNS управляет systemd-resolved, а отдельной команды resolvconf может не быть. Тогда awg-quick прерывает запуск с этой ошибкой и снимает интерфейс. Роль resolvconf умеет выполнять resolvectl: если вызвать его под этим именем, он работает в режиме совместимости. Создайте ссылку sudo ln -s /usr/bin/resolvectl /usr/local/bin/resolvconf и снова поднимите туннель. Способ рассчитан на системы, где запущен systemd-resolved, — проверьте это командой systemctl is-active systemd-resolved.

Как проверить, что DNS идёт через туннель

  • resolvectl status awg0 — у интерфейса туннеля должны быть DNS-серверы из конфигурации и домен маршрутизации «~.»: это значит, что запросы по умолчанию идут через него.
  • resolvectl query example.com — в ответе указан интерфейс, через который получен результат.
  • ip -6 addr show scope global — если у компьютера есть глобальный IPv6-адрес, а в AllowedIPs нет ::/0, IPv6-трафик пойдёт мимо туннеля. Уточните в поддержке, поддерживает ли профиль IPv6; до тех пор IPv6 можно отключить для этого сетевого подключения. Для приложения Amnezia VPN так не делайте: его документация просит IPv6 не отключать.

Kill switch

Kill switch защищает от утечки при обрыве: если туннель пропал, трафик не уходит в обычную сеть. Туннели на базе WireGuard отчасти защищают сами: пока интерфейс поднят и маршрут по умолчанию ведёт в него, трафик не идёт мимо, даже если сервер не отвечает. Уязвимый момент — когда интерфейс снят: приложение отключилось или служба остановилась.

В приложении проверьте, есть ли kill switch в настройках вашей версии. Для awg-quick в справке wg-quick (man wg-quick) есть пример правил межсетевого экрана в PostUp и PreDown — замените в нём wg на awg. Но эти правила действуют, только пока интерфейс поднят, и снимаются вместе с ним. Чтобы защита работала и после остановки туннеля, нужны постоянные правила, пропускающие только трафик к VPN-серверу и через интерфейс туннеля, — тогда без туннеля компьютер останется без сети.

Автозапуск и работа после сна

В настройках Amnezia VPN можно включить запуск вместе с системой и автоматическое подключение. Для awg-quick используется служба systemd, которая входит в пакет утилит.

  • sudo systemctl enable --now awg-quick@awg0 — туннель будет подниматься при загрузке. Если до этого вы запускали его вручную, сначала выполните sudo awg-quick down awg0, иначе служба не стартует: интерфейс уже существует.
  • systemctl status awg-quick@awg0 — состояние службы. Юнит ждёт сети и повторяет попытки разрешить имя сервера, так что ранний старт обычно не мешает.
  • Не запускайте одновременно приложение и awg-quick с одним профилем: два туннеля с маршрутом по умолчанию мешают друг другу, а один ключ на двух интерфейсах конфликтует на стороне сервера.

У AmneziaWG, как и у WireGuard, нет постоянного соединения, которое нужно восстанавливать после сна: рукопожатие обновляется на первых же пакетах после пробуждения, обычно за несколько секунд. Если связь не вернулась, частые причины — смена сети и устаревшая запись NAT на роутере; строка PersistentKeepalive = 25 в секции [Peer] заставляет клиент периодически отправлять пакеты и поддерживает такую запись. Быстрое решение — переподключиться в приложении или выполнить sudo systemctl restart awg-quick@awg0.

Диагностика: awg show, ip route и журналы

Проверяйте по порядку — от интерфейса к маршрутам и DNS.

  • ip a — есть ли интерфейс туннеля; у awg-quick он называется так же, как файл конфигурации.
  • sudo awg show — строка latest handshake показывает время последнего рукопожатия. Если её нет, сервер ни разу не ответил: проверьте конфигурацию и то, разрешён ли в сети исходящий UDP. Если растёт только счётчик отправленных данных, ответы до вас не доходят.
  • ip route get 1.1.1.1 — в выводе должен быть интерфейс туннеля (dev awg0). Команда ip rule покажет правила, которыми awg-quick направляет трафик в туннель.
  • journalctl -u awg-quick@awg0 -b — журнал службы за текущую загрузку. Службу приложения найдёт команда systemctl list-units | grep -i amnezia; сохранение логов самого клиента включается в его настройках.
  • lsmod | grep amneziawg и dkms status — загружен ли модуль и собран ли он для текущего ядра.
СимптомВероятная причинаЧто сделать
awg-quick сообщает об отсутствии модуля ядра (Unknown device type)Модуль не собран или не загружен для текущего ядраУстановите метапакет заголовков (в Ubuntu — linux-headers-generic), переустановите amneziawg и проверьте dkms status
Line unrecognized при запускеУтилиты старше формата конфигурацииОбновите amneziawg-tools из репозитория Amnezia
Рукопожатие есть, лёгкие страницы загружаются, тяжёлые зависаютНе проходят крупные пакеты (MTU)Уменьшите MTU: например, MTU = 1280 в секции [Interface], затем перезапустите туннель
Приложение установлено, но подключение не включаетсяВ системе отключён IPv6Включите IPv6 обратно, как советует документация Amnezia

Если ничего не помогло, пройдите общую пошаговую диагностику VPN или напишите в поддержку @vpn_flex_support, приложив вывод awg show и журнал службы. Сам файл конфигурации с приватным ключом отправлять не нужно.

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

Есть ли Amnezia VPN для Linux?

Да. Разработчики публикуют установщик .run для x86_64 на официальном сайте и на GitHub. Для ARM сборки приложения нет — там используют консольные утилиты AmneziaWG.

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

Само приложение рассчитано на графическую среду. Без неё ставят модуль и утилиты AmneziaWG (в Ubuntu — пакет amneziawg из ppa:amnezia/ppa, в Fedora — amneziawg-dkms и amneziawg-tools из COPR), кладут конфигурацию в /etc/amnezia/amneziawg/ и запускают sudo awg-quick up awg0.

Можно ли подключить ключ AmneziaWG через обычный WireGuard?

Как правило, нет: стандартный wg-quick и NetworkManager не понимают дополнительных параметров AmneziaWG, и рукопожатие с сервером не проходит. Используйте Amnezia VPN или awg-quick.

Почему после обновления ядра awg-quick перестал запускаться?

Скорее всего, модуль AmneziaWG не собрался для нового ядра. Проверьте dkms status, установите заголовки для текущего ядра и переустановите пакет amneziawg.

Как проверить, что трафик на Linux идёт через VPN?

Выполните ip route get 1.1.1.1: в выводе должен быть интерфейс туннеля. Для DNS используйте resolvectl query, а внешний IP сравните до и после подключения.

Flex-VPN

Готовы настроить подключение?

Выберите тариф на три устройства и получите профили подключения в Telegram.

Открыть бота