amneziawg-installer/INSTALL_VPS.ru.md

42 KiB
Raw Permalink Blame History

Установка VPN-сервера AmneziaWG на VPS с Ubuntu или Debian

Пошаговое руководство: как за один вечер поднять на чистом VPS свой VPN-сервер AmneziaWG и подключить к нему телефон и ноутбук. Одна команда по SSH, без Docker, без веб-панели. Рассчитано на обычный дешёвый сервер без графики, где нужен рабочий VPN с обходом DPI и минимальным расходом ресурсов.

Официальное приложение Amnezia VPN умеет разворачивать серверную часть само, в Docker. Этот путь другой и выбран сознательно: AmneziaWG модулем ядра, без накладных расходов Docker, а сам сервер настроен и укреплён под одну задачу. Чем отличается.

Коротко

  • Новая установка получает AmneziaWG 3.1: к обычной обфускации добавляются шифрование заголовков и добавочный паддинг. Роутерам на стоковой прошивке, Hiddify и необновлённым приложениям нужен --protocol=2.0.
  • Одна команда, лицензия MIT, всё на вашем сервере: ваш трафик и ключи не проходят через сторонние сервисы. При установке и обновлении сервер скачивает пакеты (зеркала дистрибутива, PPA Amnezia на Launchpad) и скрипты установщика с GitHub, а там, где нужно, ещё готовые ARM-модули или исходники закреплённого модуля 2.0. Если клиент создаётся без --endpoint, сервер узнаёт свой внешний IP у публичного сервиса (api.ipify.org и запасные).
  • 3.1 из коробки на x86_64 с Ubuntu 24.04 LTS, Ubuntu 26.04 LTS или Debian 13 (trixie). Штатный Debian 12 (bookworm, ядро 6.1) тоже работает, на 2.0, но обычная поддержка у него уже закончилась; Ubuntu 25.10 с v6.0.0 не поддерживается. Подробности ниже.
  • Хватает дешёвого VPS за 3-5 долларов в месяц: 1 vCPU, 512 МБ ОЗУ минимум (комфортно от 1 ГБ), 2 ГБ диска минимум (лучше 3+). Нужна полноценная виртуальная машина (KVM или аналог) или физический сервер: в контейнере (OpenVZ, LXC, Docker) установщик останавливается.
  • ARM64 (aarch64) тоже работает, на AmneziaWG 2.0. Для ARM есть готовые модули ядра: Raspberry Pi 4/5, Ubuntu 24.04 ARM64, Debian 12/13 ARM64 (на этих же ядрах работают Hetzner CAX, Oracle Ampere A1, AWS Graviton); на Ubuntu 26.04 ARM64 модуль собирается из исходников через DKMS.
  • Обфускация против DPI: рассчитана на ТСПУ в России, а также на фильтры в Иране, Китае, школах и офисах. Гарантий это не даёт: результат зависит от конкретной сети и подобранных параметров.
  • Обновление ядра переживает само, но только на DKMS-установках: там модуль пересобирается при следующей загрузке. ⚠️ На ARM с готовым модулем иначе: после смены ядра туннель не поднимется и сам не восстановится, установщик надо запустить повторно. Подробнее в разделе Обновление.

Выбор VPS

VPN-серверу нужен не процессор, а стабильная сеть. На что смотреть:

  • Полноценная виртуальная машина (KVM или аналог) на x86_64 (amd64), 1 ГБ ОЗУ и доступ root по SSH: именно такой сервер получает AmneziaWG 3.1. Подойдёт любой недорогой хостер (Vultr, RackNerd, локальный), лишь бы адрес был не из заведомо проблемной подсети для вашей аудитории. В контейнерах (OpenVZ, LXC, Docker) модуль ядра не загрузить, установщик в них остановится; для контейнера есть путь через userspace, см. ADVANCED.
  • ARM-серверы работают, но установщик ставит на них AmneziaWG 2.0. Два частых варианта: Hetzner CAX11 / CAX21 (около 4 евро в месяц за 2 vCPU и 4 ГБ ОЗУ, ЕС) и Oracle Cloud Always Free (Ampere A1, 4 vCPU и 24 ГБ ОЗУ бессрочно, мощности выдают волнами). Под обе платформы публикуется готовый ARM-модуль.
  • ⚠️ Hetzner и российские операторы. Подсети Hetzner массово занесены в чёрные списки у российских операторов (ТСПУ, Ростелеком, МТС), поэтому для мобильного трафика из России Hetzner брать не стоит. Для этого случая берите хостера, которого нет в чёрных списках.

Страна влияет в основном на задержку и юрисдикцию. Разницы в скорости между ARM и amd64 для личного VPN нет; от архитектуры зависит поколение протокола, как сказано выше.

🔴 Отдельно проверьте, даёт ли хостер аварийную консоль и работает ли она. Это самый простой путь назад, если SSH перестанет отвечать после перезагрузки или из-за правила фаервола. Если консоли нет, возвращаться придётся через поддержку, откат из снапшота или переустановку.

Выбор ОС

Какие системы получают 3.1: Ubuntu 24.04, Ubuntu 26.04 и Debian 13 на x86_64. На штатном Debian 12 (ядро 6.1) и на ARM установщик сам ставит 2.0: профиль 3.1 он выдаёт только на x86_64 с ядром 6.7 и новее, это сознательная осторожность для платформ, которые ещё не проверены замером (где вместо 3.1 ставится 2.0).

  • Ubuntu 24.04 LTS обкатана лучше всех. Берите её, если нет причин выбрать другое. Ядро HWE 7.0.0-38 поддерживается: исходник модуля из PPA установщик правит сам (подробнее).
  • Ubuntu 26.04 LTS поддерживается. PPA публикует пакеты под неё (resolute); если для какого-то выпуска PPA не отвечает, установщик сам переключится на noble. Под ядро 7.0.0-38 из Ubuntu 26.04 модуль из PPA сам не собирается, исходник установщик правит сам (подробнее). Обновление с 24.04 через do-release-upgrade тоже работает.
  • ❌ Ubuntu 25.10 с v6.0.0 не поддерживается. Сама Ubuntu прекратила её поддержку 2026-07-01, а как промежуточный выпуск она не получает и продлённой: обновлений безопасности для неё не выходит вообще никаких. Установщик считает её непроверенным выпуском: предупреждает и спрашивает подтверждение (с --yes продолжает без вопроса). Переведите сервер на 26.04 LTS через do-release-upgrade и снова запустите установщик последней версии или переустановите на 24.04 LTS или Debian 13.
  • Debian 13 (trixie) поддержан полностью, кодовое имя отображается на noble.
  • ⚠️ Debian 12 (bookworm) установщик поддерживает так же полно, кодовое имя отображается на focal. Но обычная поддержка у самого Debian 12 закончилась 2026-07-11; обновления безопасности идут через Debian LTS до 2028-06-30, то есть система патчится, но уже не основной командой. Для нового сервера берите Debian 13. На штатном Debian 12 (ядро 6.1) установщик ставит AmneziaWG 2.0: 3.1 он выдаёт только на ядре 6.7 или новее, поэтому здесь собирает закреплённый модуль 2.0 из исходников (подробнее).
  • Ставьте минимальную сборку. Скрипт считает сервер однозадачным и вычищает лишнее: modemmanager, snapd, остатки cloud-init.
  • Не берите кастомные ядра (XanMod, Liquorix, Zen) на первой установке. DKMS собирает модуль под работающее ядро, а кастомные ядра меняют внутренние структуры, и это может кончиться паникой ядра. Если без такого ядра никак, лучше сообщить о проблеме в апстрим с шагами воспроизведения, чем гадать.

Установка одной командой

Подключитесь как root (или под пользователем с sudo, тогда добавляйте sudo).

⚠️ Сначала про SSH. Установщик обычно определяет порт SSH сам и открывает его в фаерволе. Если SSH у вас на нестандартном порту или автоопределение недоступно, передайте порт явно: --ssh-port=ВАШ_ПОРТ (несколько портов - через запятую). Дополнительная страховка, если хочется перестраховаться, открыть порт в UFW заранее:

sudo ufw allow ВАШ_ПОРТ/tcp

Дальше сама установка. Она ставит AmneziaWG 3.1; если среди ваших устройств есть роутер на стоковой прошивке или Hiddify, сначала прочитайте абзац Поколение протокола ниже: сменить поколение потом можно только переустановкой с новыми профилями для всех клиентов.

wget -O install_amneziawg.sh https://github.com/bivlked/amneziawg-installer/releases/latest/download/install_amneziawg.sh
chmod +x install_amneziawg.sh
sudo bash ./install_amneziawg.sh

Поколение протокола. Новая установка по умолчанию получает AmneziaWG 3.1: к обычной обфускации добавляются шифрование заголовков (HeaderProtectionKey) и добавочный паддинг (ContentPaddingAddition). Клиент без поддержки 3.1 к такому серверу не подключится, поэтому, если у вас есть такой - роутер на стоковой прошивке (стабильный KeeneticOS, OpenWrt со старым пакетом amneziawg), Hiddify, давно не обновлявшееся приложение, - ставьте сразу на 2.0:

sudo bash ./install_amneziawg.sh --protocol=2.0

На ядрах старее 6.7 (штатный Debian 12) и на ARM установщик ставит 2.0 сам и объясняет почему. Если параметры 3.1 не понимают установленные утилиты awg или модуль ядра, он переходит на 2.0, когда модуль принимает набор 2.0, а иначе останавливается и говорит, что исправить (при старых утилитах - какой пакет обновить). Поколение он называет в итоговом отчёте строкой «Поколение протокола». Какие клиенты понимают 3.1 - таблица клиентов, подробности про оба профиля - ADVANCED.md.

Скрипт проходит определение ОС, базовые пакеты, подключение PPA, установку модуля ядра, фаервол UFW, укрепление sysctl, Fail2Ban, запуск сервиса и генерацию конфигураций. Закладывайте две перезагрузки и 15-25 минут реального времени, почти всё из которых занимают apt и сборка модуля.

Скрипт идемпотентный и переживает перезагрузку. На вопрос «Перезагрузить сейчас? [y/N]» ответьте y (Enter означает «нет», и перезагружать придётся вручную). SSH-сессия оборвётся; подождите минуту-две, подключитесь снова и запустите ту же команду с теми же флагами: скрипт продолжит с нужного шага. Состояние лежит в /root/awg/setup_state. Две перезагрузки - часть нормального хода, а не признак поломки.

flowchart LR
    A["Шаги 0-1<br/>параметры, подготовка системы"] --> R1(("перезагрузка"))
    R1 --> B["Шаг 2<br/>модуль ядра"]
    B --> R2(("перезагрузка"))
    R2 --> C["Шаги 3-7<br/>фаервол, конфиги, сервис"]
    C --> D["VPN готов"]

Первый запуск спросит порт, подсеть туннеля, IPv6, режим маршрутизации, изоляцию клиентов и имя сервера в приложении Amnezia; Enter берёт значение, указанное в скобках. Два вопроса легко пропустить. По ходу скрипт покажет пакеты, которые собирается удалить (snapd, unattended-upgrades и другие), и спросит разрешения; оставить их - ответ n или флаг --keep-packages. Если UFW ещё не включён, в третьем запуске он спросит «Включить UFW? [y/N]»: ответьте y, по Enter сервер останется без фаервола.

Для установки без вопросов передайте --yes: sudo bash ./install_amneziawg.sh --yes. Режим маршрутизации при этом берётся по умолчанию (задать другой можно флагом из таблицы ниже), пакеты удаляются, а UFW включается без вопроса.

Режимы маршрутизации (что пойдёт в туннель):

Флаг Режим Когда брать
--route-all «Весь трафик» (0.0.0.0/0) по умолчанию, привычная клиентам форма полного туннеля
--route-amnezia «Amnezia», список подсетей когда частные сети должны остаться вне туннеля
--route-custom=СЕТИ «Пользовательский» когда список подсетей свой

⚠️ Режим «Amnezia» отправляет в туннель тот же публичный IPv4, что и полный туннель: разница только в частных сетях, которые остаются снаружи. Но приложение Amnezia считает такой список уже настроенной на сервере раздельной маршрутизацией и выключает свою страницу раздельного туннелирования, а Linux-клиент на нём может зациклить маршруты. Поэтому по умолчанию ставится --route-all. Разбор: ADVANCED, AllowedIPs.

Часто используемые флаги: --port=39743 (любой порт 1-65535), --subnet=10.9.9.1/24, --disallow-ipv6, --allow-ipv6-tunnel, --mobile (пресет для мобильных сетей плюс порт 443/udp одним флагом; явный --port важнее), --isolation=on|off (изоляция клиентов друг от друга, по умолчанию включена), --endpoint=ПУБЛИЧНЫЙ_IP (нужен, когда внешний адрес сервера отличается от адреса на интерфейсе: типично для Oracle Cloud, GCP и любого NAT). Полный список: --help или ADVANCED, CLI установщика.

Конфигурации клиентов: где взять и как подключить

Установка сразу создаёт двух клиентов, my_phone и my_laptop, чтобы можно было подключиться не откладывая. Добавить своего:

sudo bash /root/awg/manage_amneziawg.sh add my_iphone

Все файлы клиента лежат в /root/awg/. Их четыре, и они не взаимозаменяемы:

Файл Для чего
имя.conf текстовый конфиг: десктопные клиенты AmneziaWG, Linux awg-quick, роутеры
имя.png QR-код этого же .conf для клиентов AmneziaWG
имя.vpnuri ссылка vpn:// для импорта в приложение Amnezia VPN
имя.vpnuri.png QR-код ссылки vpn://, для импорта в приложение одним снимком

🔴 Два QR-кода легко перепутать. Разница не в качестве картинки, а в том, ЧТО в ней закодировано: имя.png содержит сам текст конфигурации, имя.vpnuri.png содержит ссылку vpn://. Это разные форматы с разными получателями: приложение Amnezia VPN ждёт .vpnuri.png, клиенты AmneziaWG - имя.png. Начинайте с того, который предназначен вашему клиенту, и не подставляйте один вместо другого. Подробнее: ADVANCED, импорт по vpn://.

Забрать файлы на свой компьютер. 🔴 Команды ниже выполняются на вашем компьютере, а не в SSH-сессии сервера: откройте у себя второе окно терминала (в Windows подойдёт PowerShell). Если вставить их в открытую сессию сервера, получите невнятную ошибку.

scp root@АДРЕС_СЕРВЕРА:/root/awg/my_iphone.conf .
scp root@АДРЕС_СЕРВЕРА:/root/awg/my_iphone.png .
scp root@АДРЕС_СЕРВЕРА:/root/awg/my_iphone.vpnuri.png .

Если SSH у вас на нестандартном порту, у scp это отдельный флаг и он с заглавной буквы:

scp -P ВАШ_SSH_ПОРТ root@АДРЕС_СЕРВЕРА:/root/awg/my_iphone.conf .

Какое приложение ставить на какое устройство (для сервера 3.1 нужна версия с поддержкой 3.1, см. таблицу клиентов):

Устройство Приложение Что импортировать
Android WG Tunnel или AmneziaWG откройте имя.png на экране компьютера; в приложении «+», затем сканировать QR-код
iPhone, iPad AmneziaWG имя.png (QR-код) или имя.conf
Mac AmneziaWG имя.conf
Windows AmneziaWG имя.conf
любая платформа, и Linux тоже Amnezia VPN (в российском App Store его нет) имя.vpnuri.png: «Добавить VPN», затем «Сканировать QR-код»; или текст vpn:// из sudo cat /root/awg/имя.vpnuri через «Вставить из буфера» (копируете весь вывод)
Linux awg-quick; модуль AmneziaWG (или amneziawg-go) и утилиты на клиенте должны поддерживать 3.1 имя.conf, поднять через awg-quick up (Linux как клиент)

На Android советуем именно WG Tunnel или AmneziaWG: в нашей проверке 13 октября 2026 они переподключались меньше чем за секунду и держали туннель при переходе с Wi-Fi на мобильную сеть (iPhone в эту проверку не входил). Если сканер Amnezia VPN не распознал код (на Android с 5.0.3 так и было), прочитайте его обычной камерой телефона и вставьте скопированный текст vpn://. Если нужен PresharedKey (например, для Shadowrocket на iOS или macOS), добавьте флаг --psk при создании клиента.

Проверить, что всё работает. После подключения клиента sudo awg show awg0 на сервере должен показывать latest handshake не старше двух-трёх минут, а страница «мой IP» на клиенте - адрес сервера (в пользовательском режиме маршрутизации - только если этот сайт входит в ваш список сетей). sudo bash /root/awg/manage_amneziawg.sh check покажет здоровье сервера и его поколение протокола (строка «Поколение протокола установки»).

Что делать дальше

Сервер работает, клиенты подключены. Дальше обычно нужно немного:

  • Добавить или убрать людей. manage_amneziawg.sh add имя и remove имя, посмотреть список list, статистику трафика stats.
  • Выдать временный доступ. add guest --expires=7d - конфигурация сама перестанет работать через неделю.
  • Перевыпустить потерянную конфигурацию: regen имя (ключи остаются прежними). Если файл утёк, отзовите его: remove имя, затем add имя и раздайте новый файл.
  • Сделать резервную копию перед экспериментами: backup, вернуться назад restore.
  • Проверить здоровье сервера: check.
  • Управлять из скриптов. Команды понимают --json и отвечают одним объектом JSON даже при ошибке; для работы без вопросов добавьте --yes (интерфейс JSON).

Все команды запускаются как sudo bash /root/awg/manage_amneziawg.sh <команда>. Полный разбор: README, управление клиентами.

Отдельные сценарии, которые чаще всего спрашивают дальше:

Обновление

Обновить установщик на сервере, где уже работает поддерживаемая версия:

wget -O install_amneziawg.sh https://github.com/bivlked/amneziawg-installer/releases/latest/download/install_amneziawg.sh
sudo bash ./install_amneziawg.sh --force

Заложите время: переустановка проходит машину состояний с начала, сервер перезагрузится дважды, и после каждой перезагрузки надо запустить ту же команду. По пути заново выполняется шаг 1: чистка пакетов, настройка sysctl, swap и BBR. Туннель на это время лежит, но ничего из того, что уже роздано клиентам, не меняется.

Флаг --force обязателен при переустановке поверх работающего сервиса, чтобы случайный повторный запуск не разрушил рабочий сервер. При первой установке он не нужен. Ключи сервера, список клиентов и параметры обфускации переустановку переживают, поколение протокола тоже. С v5.21.0 пара скриптов защищена от рассинхрона: если обновить одну половину и забыть другую, скрипты остановятся и покажут точные команды, которыми докачать недостающее, а не упадут странной ошибкой на полпути.

Поэтому обновление для ваших пользователей проходит незаметно: выданные раньше файлы и QR-коды остаются рабочими, а клиенты сохраняются, а не создаются заново, включая my_phone и my_laptop. Если нужны только новые команды управления, --force не нужен вовсе: достаточно заменить два скрипта на сервере, а установщик перезапускать, только когда изменился он сам.

⚠️ Одно исключение, о котором стоит помнить. Флаги --mobile, --preset, --jc, --jmin и --jmax перегенерируют весь набор параметров обфускации, а --port (и --mobile, который ставит 443) меняет порт. В обоих случаях все выданные раньше конфигурации перестают подключаться, пока вы не перевыпустите их через regen и не раздадите заново. --endpoint меняет адрес только в заново выпущенных конфигурациях: старые сохраняют прежний и работают, пока он ведёт на сервер, а новый получат после regen. Если вы просто обновляетесь, эти флаги не передавайте.

Перевод работающего сервера на 3.1. Обновление поколение не меняет: сервер, поставленный до версии 6.0.0, остаётся на AmneziaWG 2.0. Чтобы перевести его на 3.1, сделайте копию (manage_amneziawg.sh backup) и заберите её на свой компьютер (--uninstall стирает /root/awg/backups/, см. Удаление), выполните --uninstall, поставьте заново последним установщиком и раздайте всем клиентам новые профили: профили старого поколения к новому серверу не подключатся. Эта копия нужна только для возврата на 2.0: её restore вернёт сервер к 2.0 (restore предупредит об этом перед остановкой сервиса, но не остановит вас). Обратный путь, с 3.1 на 2.0, такой же, с --protocol=2.0.

Обычный apt-get upgrade время от времени приносит новое ядро, и дальше всё зависит от того, каким способом у вас поставлен модуль.

DKMS-установка - обычный случай для amd64, а на ARM так выходит, если готового пакета под ваше ядро не нашлось. Модуль пересобирается при следующей загрузке сам, журнал смотрится так (а журнал apt-хука лежит в /var/log/amneziawg-ensure-module.log):

journalctl -u amneziawg-ensure-module.service -b

Если автоматика не справилась, есть ручное восстановление:

sudo bash /root/awg/manage_amneziawg.sh repair-module

🔴 ARM с готовым модулем ведёт себя не так, и это важно знать заранее. На этом пути DKMS и заголовки ядра не устанавливаются вовсе, а служба amneziawg-ensure-module.service не создаётся: пересборки при загрузке нет, и журнала тоже нет. Готовый модуль собран под конкретную версию ядра, поэтому после смены ядра туннель не поднимется (awg-quick@awg0 уходит в failed, интерфейс awg0 не появляется) и сам не восстановится. Недостающий готовый модуль не заменит и repair-module. Штатный способ вернуть туннель - запустить установщик повторно: он подберёт пакет под новое ядро или перейдёт на сборку через DKMS.

Удаление

🔴 Сначала о необратимом. Удаление стирает каталог /root/awg/ целиком, а вместе с ним ключи сервера и все клиентские конфигурации. Клиенты, которым вы раздали файлы, перестанут подключаться.

Если сервер может понадобиться позже, сделайте копию до удаления и заберите её с машины. На сервере:

sudo bash /root/awg/manage_amneziawg.sh backup

Затем на своём компьютере, а не в сессии сервера:

scp root@АДРЕС_СЕРВЕРА:/root/awg/backups/*.tar.gz .

⚠️ Почему именно так, а не понадеяться на сам деинсталлятор. Он тоже предлагает сделать резервную копию и по умолчанию делает. Но от неё можно отказаться; она может не удаться, и тогда скрипт напечатает предупреждение и продолжит удаление; и главное, она остаётся на том же сервере, который вы, возможно, сносите целиком.

Если на сервере стоит каскад или WARP, сначала уберите их по своим инструкциям: каскад, WARP.

Теперь можно удалять:

sudo bash ./install_amneziawg.sh --uninstall

📌 Если вы уже удалили и спохватились - посмотрите, не осталась ли копия деинсталлятора:

ls -la /root/awg_uninstall_backup_*.tar.gz

При штатном удалении она там есть, и она шире: внутри серверные ключи, ключи и конфигурации всех клиентов, серверный конфиг и вложенным файлом ваш собственный архив.

Что делает --uninstall:

  • останавливает и отключает awg-quick@awg0, выгружает модуль, убирает юнит, хук и журнал amneziawg-ensure-module;
  • удаляет пакеты amneziawg-dkms, amneziawg-tools и qrencode, а fail2ban - только если его поставил установщик;
  • на ARM удаляет пакет готового модуля amneziawg-kmod-* (если не вышло, печатает команду для ручного удаления);
  • удаляет PPA и его ключ, /etc/apt/apt.conf.d/99-amneziawg-lock-timeout, /etc/amnezia/, /etc/modules-load.d/amneziawg.conf, свои файлы sysctl, /etc/cron.d/awg-expiry, свой jail Fail2Ban, регистрацию DKMS и каталог /root/awg/ вместе с бэкапами в /root/awg/backups/;
  • в UFW удаляет правило порта VPN и правило пересылки awg0; выключает UFW, только если его включал сам установщик.

Что остаётся:

  • архив деинсталлятора с ключами и журнал awg_uninstall.log (о них ниже);
  • зависимости: dkms, build-essential, dpkg-dev, заголовки ядра, wireguard-tools, ufw, а если ставились, то и git, gcc-13, python3-systemd;
  • /swapfile и строка в /etc/fstab;
  • пакеты, удалённые при установке: их нужно вернуть вручную (sudo apt install unattended-upgrades и т.д.);
  • значения sysctl - до перезагрузки.

В /root/ рядом с архивом остаётся ещё и журнал удаления awg_uninstall.log. Ведут себя эти два файла по-разному: архивы накапливаются, у каждого своя метка времени и старые никто не чистит, а журнал один и всегда от последнего удаления. Повторная установка позже начнётся с чистого листа.

⚠️ С фаерволом есть тонкость. Если UFW включил установщик, при удалении он его и выключит. Если UFW работал на сервере до установки, он останется включённым, и правила, добавленные не нами, тоже останутся.

Если не заработало

  • Клиент не подключается к новому серверу и не показывает ошибки. Чаще всего клиент не поддерживает AmneziaWG 3.1: сверьте версию приложения с таблицей клиентов, а поколение сервера покажет manage_amneziawg.sh check. Если роутер или Hiddify обновить нельзя, сервер придётся переустановить с --protocol=2.0.
  • Ошибка 404 при подключении PPA на выпуске Ubuntu, для которого PPA ничего не публикует. Установщик проверяет, отвечает ли PPA для кодового имени, и если нет, сам переключается на noble.
  • Не собирается модуль после do-release-upgrade. Типичная причина - заголовки ядра от старой версии. Установщик это определяет и ставит запасной компилятор gcc-13; если не помогло, выручает manage_amneziawg.sh repair-module.
  • На мобильном операторе подключается через раз. На новом сервере ставьте с --mobile: этот флаг включает пресет для мобильных сетей и переносит порт на 443/udp. Операторы часто режут незнакомые UDP-порты. На уже работающем сервере это переустановка с --force --mobile, после которой всем клиентам нужно перевыпустить конфиги через regen; если рукопожатие не проходит вовсе, сначала прочитайте разбор. Таблица по операторам: ADVANCED, FAQ.
  • Рукопожатие проходит, а трафика нет. Почти всегда дело в AllowedIPs у нестандартного раздельного туннелирования: подсеть самого сервера тоже должна попасть в список. Разбор.
  • iPhone не подключается по мобильной сети. Дело в MTU. Установщик ставит MTU = 1280 сам, в конфигурациях, выпущенных до v5.7.4, строку надо добавить руками. Подробнее.
  • Нет готового ARM-модуля под ваше ядро. Установщик сам переходит на сборку через DKMS. Если не вышло и так, приложите к issue вывод sudo bash ./install_amneziawg.sh --diagnostic.
  • 🔴 Не отвечает вообще ничего, включая SSH и пинг до сервера. Это не про VPN. Проверьте сам адрес, желательно из другой сети: если недоступен весь адрес, никакая настройка обфускации не поможет.

Куда спросить

Что почитать дальше

  • README.md - обзор проекта, полный список возможностей, FAQ и сравнение с похожими инструментами.
  • ADVANCED.md - полный FAQ, пресеты под операторов, справочник параметров AmneziaWG 2.0 и 3.1, глубокая диагностика.
  • INSTALL_VPS.md - эта же инструкция на английском.
  • CASCADE.md - каскад из двух серверов: российский трафик напрямую, остальное через заграницу.
  • WARP-RU.md - российские сайты через Cloudflare WARP на том же сервере.
  • VPN Status: каталог AmneziaWG - русскоязычный каталог серверных вариантов AmneziaWG.
  • Hetzner Community: Making a website accessible from restricted regions - руководство Hetzner со ссылкой на этот установщик (на английском).
  • Pinggy: Top 5 Best Self-Hosted VPNs in 2026 - сторонний обзор (на английском).
  • LowEndTalk, Tutorial #217191 - короткая версия этой инструкции с вопросами читателей (на английском).