VPN в Linux: подключаем OpenVPN, WireGuard и AmneziaWG без лишних программ
VPN в Linux подключается штатными средствами: файл .ovpn или .conf импортируется в NetworkManager одной командой nmcli, а для AmneziaWG есть модуль ядра и awg-quick. Если вам выдали ключ vpn://, поставьте клиент AmneziaVPN из .run-файла. После подключения обязательно проверьте внешний IP и DNS, иначе запросы могут идти мимо туннеля.

Содержание
Какой VPN-протокол выбрать в Linux
Linux умеет работать с любым распространённым VPN, вопрос только в том, что выдал вам провайдер или администратор. Обычно это файл .ovpn для OpenVPN, файл .conf для WireGuard или AmneziaWG, либо ключ vpn:// для приложения AmneziaVPN.
| Вариант | Что получаете от сервера | Чем подключаться | Особенности |
|---|---|---|---|
| OpenVPN | файл .ovpn, иногда логин и пароль | NetworkManager или openvpn | работает почти везде, медленнее WireGuard |
| WireGuard | файл .conf | NetworkManager или wg-quick | модуль в ядре, быстрый, легко узнаётся по трафику |
| AmneziaWG | файл .conf с параметрами Jc, S1, H1 | awg-quick или AmneziaVPN | WireGuard с маскировкой пакетов |
| AmneziaVPN | ключ vpn:// или свой сервер | приложение AmneziaVPN | графический клиент, несколько протоколов |
В России у части провайдеров соединения OpenVPN и обычного WireGuard определяются по характерным пакетам и обрываются. Если туннель поднимается, а через несколько секунд трафик перестаёт идти, а с другого интернета всё работает, причина скорее в фильтрации, чем в настройках. Тогда переходите на AmneziaWG или протоколы с маскировкой в AmneziaVPN.
Эта статья про клиентскую сторону. Как поднять собственный сервер WireGuard дома, разобрано в отдельном материале про WireGuard для доступа к домашней сети.
OpenVPN в Ubuntu и других дистрибутивах через NetworkManager
NetworkManager умеет OpenVPN через плагин. В KDE Plasma плагин подхватывается апплетом сети автоматически, в GNOME нужен пакет с суффиксом gnome:
# Ubuntu 26.04, Debian 13, Linux Mint
sudo apt install network-manager-openvpn network-manager-openvpn-gnome
# Fedora 44
sudo dnf install NetworkManager-openvpn NetworkManager-openvpn-gnome
# Arch Linux
sudo pacman -S networkmanager-openvpn
После установки перезапустите NetworkManager или выйдите из сеанса. Импорт через графику: Настройки, Сеть, плюс у раздела VPN, "Импортировать из файла". Из терминала то же самое делается одной командой:
nmcli connection import type openvpn file ~/Загрузки/client.ovpn
nmcli connection show
# подключиться с запросом логина и пароля
nmcli --ask connection up client
nmcli connection down client
Имя соединения берётся из имени файла. Если сертификаты лежат рядом с .ovpn отдельными файлами, не переносите их после импорта: NetworkManager хранит пути, а не копии.
Без NetworkManager
На сервере или в минимальной системе удобнее штатная служба OpenVPN. Конфиг кладётся в /etc/openvpn/client/ с расширением .conf, и имя файла становится именем экземпляра службы:
sudo apt install openvpn
sudo cp client.ovpn /etc/openvpn/client/work.conf
sudo systemctl enable --now openvpn-client@work
journalctl -u openvpn-client@work -f
Для разовой проверки подойдёт sudo openvpn --config client.ovpn: лог идёт прямо в терминал, остановка по Ctrl+C.
WireGuard: импорт .conf в NetworkManager или wg-quick
Поддержка WireGuard встроена в ядро и в NetworkManager, дополнительный плагин не нужен. Нужен только пакет с утилитами: wireguard-tools в Fedora и Arch, wireguard в Ubuntu и Debian.
sudo nmcli connection import type wireguard file ~/Загрузки/wg0.conf
# не подключаться автоматически при входе в систему
nmcli connection modify wg0 connection.autoconnect no
nmcli connection up wg0
sudo wg show
Имя интерфейса и соединения совпадает с именем файла, поэтому переименуйте файл до импорта во что-то понятное, например office.conf. Имя не длиннее 15 символов, без пробелов.
Второй путь - wg-quick, он читает тот же формат:
sudo cp office.conf /etc/wireguard/
sudo wg-quick up office
sudo wg-quick down office
# автозапуск при загрузке
sudo systemctl enable wg-quick@office
Ошибка resolvconf: command not found при старте wg-quick значит, что в конфиге есть строка DNS, а утилиты resolvconf в системе нет. В Debian поставьте openresolv или подключайтесь через NetworkManager, который сам настраивает DNS.
AmneziaWG без приложения: модуль ядра и awg-quick
AmneziaWG - форк WireGuard, который добавляет мусорные пакеты в начало сессии и меняет заголовки, чтобы трафик не совпадал с сигнатурой WireGuard. Конфиг выглядит почти так же, но в секции Interface появляются строки Jc, Jmin, Jmax, S1, S2, H1-H4. Обычный wg-quick и NetworkManager такой файл не поймут.
Установка модуля ядра и утилит awg и awg-quick по инструкции из репозитория amnezia-vpn:
# Ubuntu и Linux Mint
sudo apt install software-properties-common python3-launchpadlib gnupg2 linux-headers-$(uname -r)
sudo add-apt-repository ppa:amnezia/ppa
sudo apt install amneziawg
# Fedora
sudo dnf copr enable amneziavpn/amneziawg
sudo dnf install amneziawg-dkms amneziawg-tools
Для Arch в AUR есть пакеты amneziawg-dkms и amneziawg-tools. Модуль собирается через DKMS, поэтому при обновлении ядра нужны заголовки новой версии.
sudo awg-quick up /полный/путь/amnezia.conf
sudo awg show
sudo awg-quick down /полный/путь/amnezia.conf
Параметры Jc, S1, S2 и H1-H4 должны совпадать с серверными, кроме Jc, Jmin и Jmax. Не меняйте их наугад: туннель просто не поднимется, а ошибки в логе не будет. Если Secure Boot включён, модуль DKMS придётся подписать ключом MOK, иначе он не загрузится. Порядок действий описан в статье про Secure Boot и сторонние драйверы.
Клиент AmneziaVPN для Linux: установка и ключ vpn://
Приложение AmneziaVPN подходит, если вам выдали ключ vpn:// или вы хотите развернуть сервер на своём VPS из графического мастера. Клиент ставится одним файлом .run из раздела Releases на GitHub проекта amnezia-client, на октябрь 2026 года это версия 5.0.3. Сборка только для x86_64.
# библиотеки, которые требуются на Ubuntu 22.04-26.04 и Debian 13
sudo apt install libxcb-cursor0 libxcb-xinerama0 libxcb-icccm4 libxcb-keysyms1 libopengl0 libxkbcommon-x11-0
cd ~/Загрузки
chmod +x ./AmneziaVPN_5.0.3.0_linux_x64.run
./AmneziaVPN_5.0.3.0_linux_x64.run
В Fedora 41-44 дополнительные пакеты не нужны, в Arch при ошибке про xcb-cursor поставьте sudo pacman -S xcb-util-cursor. Предупреждения установщика про Qt-плагин wayland можно игнорировать, если окно открылось.
После запуска выберите "У меня есть данные для подключения" и вставьте ключ или откройте файл конфигурации. Документация Amnezia отдельно предупреждает: не отключайте IPv6 в системе через sysctl, иначе кнопка подключения перестаёт работать.
Весь трафик через VPN или только нужные сети
Куда пойдёт трафик, решает таблица маршрутов. Проверка в одну строку показывает, через какой интерфейс уйдёт пакет к конкретному адресу:
ip route get 1.1.1.1
ip route get 10.0.0.15
В WireGuard и AmneziaWG это задаёт строка AllowedIPs в секции Peer. Значение 0.0.0.0/0, ::/0 заворачивает в туннель всё, а 10.0.0.0/24, 192.168.50.0/24 только рабочие сети. Для OpenVPN через NetworkManager включите опцию "Использовать это соединение только для ресурсов в его сети" или сделайте это командой:
nmcli connection modify client ipv4.never-default yes
nmcli connection up client
Если сервер сам присылает маршрут по умолчанию через push, этот флаг заставит NetworkManager его проигнорировать. Подробнее о маршрутах и nmcli написано в статье про настройку сети через ip и nmcli.
Проверка утечек DNS и реального IP
Утечка DNS - это когда трафик идёт через VPN, а запросы имён по-прежнему уходят DNS-серверу провайдера. Сайты открываются, но провайдер видит, какие именно. Проверка в три шага:
# внешний IP: должен быть адрес VPN-сервера
curl -4 https://ifconfig.me ; echo
curl -6 https://ifconfig.me ; echo
# какие DNS используются и на каком интерфейсе
resolvectl status
resolvectl query example.com
В выводе resolvectl status у интерфейса VPN должны стоять DNS-серверы туннеля и домен маршрутизации ~.. Если DNS-серверы по-прежнему висят на Wi-Fi или Ethernet, а у VPN нет ~., запросы идут мимо. Затем откройте dnsleaktest.com или browserleaks.com/dns в браузере и запустите расширенный тест: в списке должны быть только серверы VPN-провайдера.
Как исправить утечку
# DNS из VPN получает приоритет над остальными интерфейсами
nmcli connection modify client ipv4.dns-priority -50 ipv6.dns-priority -50
nmcli connection down client ; nmcli connection up client
Отрицательное значение dns-priority означает, что запросы будут идти только через DNS этого соединения. Второй частый источник утечки - IPv6: туннель поднят только для IPv4, а у провайдера есть IPv6. Тогда curl -6 покажет ваш настоящий адрес. Решение - добавить ::/0 в AllowedIPs, если сервер поддерживает IPv6, или отключить IPv6 в профиле основного соединения через ipv6.method disabled. Как устроен systemd-resolved, разобрано в статье про DNS в Linux.
В Firefox проверьте настройку DNS через HTTPS: если она включена с внешним провайдером, браузер отправляет запросы напрямую мимо системного DNS. Для теста утечек её лучше выключить, а WebRTC-утечку адреса проверить на browserleaks.com/webrtc.
VPN не подключается: где смотреть логи
journalctl -u NetworkManager -b | grep -iE 'vpn|openvpn|wireguard' | tail -40
sudo wg show # для WireGuard: есть ли latest handshake
sudo awg show # то же для AmneziaWG
- у WireGuard нет строки latest handshake - пакеты не доходят до сервера: неверный Endpoint, закрытый UDP-порт или блокировка протокола;
- handshake есть, а сайты не открываются - проблема в DNS или в маршрутах, вернитесь к проверке
resolvectl status; - большие страницы грузятся частично - уменьшите MTU в секции Interface, например
MTU = 1280; - OpenVPN пишет
TLS handshake failed- сервер недоступен или трафик режется, попробуйте TCP-профиль, если провайдер его выдаёт; - после обновления ядра пропал AmneziaWG - DKMS не пересобрал модуль, проверьте
dkms statusи наличие заголовков ядра.
Полный список параметров импорта и свойств соединений есть в справке nmcli на сайте NetworkManager.
Частые вопросы
Как подключить файл .ovpn в Ubuntu?
Установите network-manager-openvpn-gnome и выполните nmcli connection import type openvpn file client.ovpn. Соединение появится в меню сети, подключиться можно оттуда или командой nmcli --ask connection up client.
Почему WireGuard подключается, но через минуту перестаёт работать?
Часто это фильтрация протокола у провайдера. Проверьте sudo wg show: если handshake не обновляется, а с мобильного интернета всё работает, переходите на AmneziaWG.
Можно ли импортировать конфиг AmneziaWG в NetworkManager?
Штатный NetworkManager не понимает параметры Jc, S1 и H1-H4. Используйте awg-quick из пакета amneziawg или приложение AmneziaVPN.
Как проверить утечку DNS в Linux?
Выполните resolvectl status: у интерфейса VPN должны быть DNS туннеля и домен ~. Затем пройдите расширенный тест на dnsleaktest.com, в списке должны остаться только серверы VPN.
Нужно ли отключать IPv6 для VPN?
Не глобально. AmneziaVPN при отключённом IPv6 не подключается. Если туннель только IPv4, отключите IPv6 в профиле основного соединения или пустите ::/0 в туннель.
Документация и источники
- Установка AmneziaVPN на Linux, Amnezia, 2026
- amneziawg-linux-kernel-module, Amnezia VPN, GitHub, 2026
- nmcli reference manual, NetworkManager, 2026
- WireGuard Quick Start, WireGuard, 2026
Читайте также
- WireGuard в Linux: свой VPN до домашней сети за полчаса
- DNS в Linux: как сменить сервер, включить DNS over TLS и очистить кэш
- Настройка сети в Linux: статический IP через nmcli, netplan и ip
- Не работает Wi-Fi в Linux: пошаговая диагностика и решение
- Secure Boot и Linux: установка драйверов без отключения защиты
Команды проверены на актуальных версиях дистрибутивов на момент обновления. Перед изменением системных настроек сделайте резервную копию.