Материал посвящён законным сценариям сетевой защиты и настройки. Соблюдайте правила, действующие в вашей юрисдикции.
Какой клиент выбрать для 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 нет, поэтому на одноплатных компьютерах используйте консольный вариант из следующих разделов. Для установки нужны права администратора.
- Установите зависимости. Для Ubuntu и Debian документация Amnezia рекомендует библиотеки Qt и xcb: sudo apt install libxcb-cursor0 libxcb-xinerama0 libxcb-icccm4 libxcb-keysyms1 libopengl0 libxkbcommon-x11-0. В актуальных версиях Fedora, по той же документации, дополнительные пакеты не нужны.
- Скачайте файл вида AmneziaVPN_<версия>_linux_x64.run только из официального источника — с сайта Amnezia или из релизов проекта на GitHub.
- Откройте терминал в каталоге, куда сохранился файл, и сделайте его исполняемым: chmod +x AmneziaVPN_*_linux_x64.run.
- Запустите установщик командой ./AmneziaVPN_*_linux_x64.run и пройдите шаги мастера. Он устанавливает фоновую службу, через которую приложение управляет туннелем.
- Перезагрузите компьютер — так советует документация — и откройте Amnezia VPN из меню приложений.
Ошибка загрузки плагина платформы «xcb» при запуске означает, что не хватает библиотек: доустановите пакеты из первого шага, в Arch Linux — xcb-util-cursor. И не отключайте IPv6 в системе: по документации Amnezia, из-за этого в приложении перестаёт работать подключение.
Импорт ключа AmneziaWG и первое подключение
Ключ для компьютера берётся там же, где и для остальных устройств, — в Telegram-боте @vpn_flex_bot. Заведите для Linux отдельный ключ: так проще понять, какое устройство подключено, и заменить доступ, не затрагивая другие. Базовый тариф рассчитан на три устройства, подробности — на странице тарифов.
- Получите в боте ключ AmneziaWG и скопируйте его целиком — без пробелов и переносов строк по краям.
- В Amnezia VPN выберите добавление нового подключения и вставьте ключ. Если вам выдали файл конфигурации, импортируйте его вместо текста.
- Убедитесь, что подключение появилось в списке, и включите его.
- Сравните внешний IP-адрес до и после подключения: после включения должен отображаться адрес сервера в выбранной локации.
Интерфейс приложения на Linux такой же, как на Windows и macOS, поэтому пригодится и общая инструкция по Amnezia VPN. Продление подписки обычно не требует нового ключа: действующий профиль продолжает работать.
Настройка VPN на Linux через терминал: awg-quick
Консольный вариант — это модуль ядра AmneziaWG и утилиты awg и awg-quick, аналоги wg и wg-quick из WireGuard. Команды ниже — из README официальных репозиториев Amnezia; перед установкой сверьтесь с их актуальной версией.
Установка пакетов в Ubuntu
- Обновите систему: sudo apt update && sudo apt full-upgrade. Если обновилось ядро, перезагрузитесь — модуль собирается под работающее ядро.
- Включите репозитории исходного кода (deb-src) — этого требует README проекта. В Ubuntu 24.04 и новее в файле /etc/apt/sources.list.d/ubuntu.sources нужна строка Types: deb deb-src, в старых версиях — раскомментированные строки deb-src в /etc/apt/sources.list.
- Установите зависимости и заголовки ядра: sudo apt install -y software-properties-common python3-launchpadlib gnupg2 linux-headers-$(uname -r).
- Подключите репозиторий проекта: sudo add-apt-repository ppa:amnezia/ppa.
- Установите пакет: 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 для вашего устройства.
- Сохраните файл как /etc/amnezia/amneziawg/awg0.conf: awg-quick ищет конфигурации в этом каталоге, а имя файла становится именем интерфейса.
- Ограничьте доступ к файлу: sudo chmod 600 /etc/amnezia/amneziawg/awg0.conf.
- Поднимите туннель: sudo awg-quick up awg0.
- Проверьте состояние командой 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 сравните до и после подключения.