Amnezia VPN: свой сервер с AmneziaWG и XRay без командной строки
Установка VPN на VPS через приложение AmneziaVPN: требования к серверу, почему AmneziaWG на порту до 9999, ошибка 1200, гостевые подключения и таблица кодов ошибок. Debian 12, Ubuntu 24.04.

Amnezia VPN — бесплатное приложение с открытым кодом, которое само настраивает VPN на вашем сервере. Вы вводите IP и пароль, остальное оно делает по SSH без вашего участия: ставит Docker, поднимает контейнер с выбранным протоколом, генерирует ключи. Вариант для тех, кто не хочет открывать терминал вообще. Ниже — как это устроено, какой протокол выбрать и все шаги от добавления сервера до раздачи доступа близким. Описание соответствует AmneziaVPN 5.0.x.
Как Amnezia настраивает сервер
После нажатия «Установить» приложение заходит на сервер по SSH под root (или под пользователем с sudo) и выполняет команды само. Сначала Docker, затем отдельный контейнер на каждый выбранный протокол. У каждого контейнера свои ключи и корневой сертификат, поэтому протоколы друг от друга не зависят: любой можно удалить или переустановить, не трогая остальные.
Отсюда требования: нужна полноценная виртуальная машина с KVM, процессор x86-64 и systemd. На LXC и OpenVZ Docker не заработает.
| Параметр | Минимум | Для 10+ подключений |
|---|---|---|
| Система | Debian 12 или 13, Ubuntu 22.04 или 24.04 | то же |
| Процессор | 1 ядро x86-64 | 2 ядра |
| Память | 1 ГБ | 2 ГБ |
| Диск | 10 ГБ | 10 ГБ |
| Виртуализация | KVM | KVM |
Какой протокол выбрать
Amnezia умеет ставить несколько протоколов, но для сетей с жёсткой фильтрацией имеет смысл два: AmneziaWG и XRay с REALITY.
Обычный WireGuard опознаётся DPI без расшифровки: служебные пакеты рукопожатия всегда 148, 92 и 64 байта, у каждого фиксированный номер типа, интервалы предсказуемы. AmneziaWG оставляет криптографию нетронутой и меняет только внешний вид пакетов. Пример параметров, которые приложение выбрало на тестовом сервере (у вас будут другие):
Порт = 1234
Jc = 5
Jmin = 10
Jmax = 50
S1 = S2 = S3 = S4 = 12
H1 = 1, H2 = 2, H3 = 3, H4 = 4
I1 = <пакет, похожий на DNS-ответ>
RekeyAfterTime = 100-120
KeepaliveTimeout = 5-15
HeaderProtectionKey = включён
RandomTrailers = включён
DisableCookies = включён
Что здесь происходит:
Jc,Jmin,Jmax— перед рукопожатием обе стороны шлютJcмусорных пакетов случайной длины отJminдоJmaxбайт, и начало сессии перестаёт выглядеть как WireGuard.I1— ещё один пакет-приманка, здесь он имитирует ответ DNS-сервера, то есть самый обычный UDP.S1–S4— к каждому типу пакета дописывается 12 случайных байт, и характерные размеры 148/92/64 исчезают.H1–H4стандартные, потому что вместо подмены номеров работаетHeaderProtectionKey— шифрует служебные поля целиком (ему и нужны 12 байт вS1–S4).RekeyAfterTimeиKeepaliveTimeoutзаданы диапазонами — ритм переподключений непредсказуем.RandomTrailers— случайный хвост у служебных пакетов,DisableCookies— нет ответов, по которым сервер опознаётся активной проверкой.
Постоянной сигнатуры не остаётся, а поскольку всё идёт поверх UDP без обёрток, AmneziaWG обычно самый быстрый.
XRay с REALITY действует иначе: работает по TCP и выдаёт соединение за TLS-подключение к настоящему внешнему сайту. Он нужен там, где режут UDP к зарубежным адресам целиком — тогда никакая маскировка AmneziaWG не спасёт. Плата — чуть выше задержка, как у любого TCP. Подробнее о механике — в статье что такое VLESS и Reality.
| Протокол | Транспорт | Как прячется от DPI | Когда выбирать |
|---|---|---|---|
| AmneziaWG | UDP | шифрует служебные поля, меняет размеры и ритм пакетов, шлёт приманки | по умолчанию, самый быстрый |
| XRay с REALITY | TCP | выглядит как TLS к настоящему сайту | если AmneziaWG не подключается или режут UDP |
| WireGuard, OpenVPN, IPsec | UDP или TCP | никак | не использовать |
Не ставьте протоколы без маскировки. Обычные WireGuard, OpenVPN и IKEv2 распознаются DPI, и разработчики Amnezia прямо предупреждают: в странах с жёсткой цензурой из-за них могут заблокировать IP всего сервера.
Правило простое: начните с AmneziaWG, при проблемах добавьте на тот же сервер XRay и переключайтесь между ними.
Что нужно
- Сервер на tanaka.host с Debian 12 или Ubuntu 24.04. Debian 13 тоже поддерживается, но на нём встречается ошибка 208 с домашним каталогом, и разработчики сами советуют в таком случае Debian 12.
- IP-адрес, имя пользователя и пароль сервера из кабинета.
- AmneziaVPN версии 5.0.2.1 или новее на компьютере или телефоне.
1. Установите AmneziaVPN
Скачайте приложение с amnezia.org. Если сайт недоступен, все сборки лежат в репозитории на GitHub. Есть версии для Windows, macOS, Linux, Android и iOS; ставить VPN на сервер удобнее с компьютера, а на телефон потом передать готовое подключение.
Если приложение уже стоит — обновите. Версии до 5.0.1.5 не понимают подключения нового формата, а в новых заметно стабильнее AmneziaWG.
2. Подключите сервер
- Откройте AmneziaVPN и нажмите «Приступим». Если подключения уже есть — «+» в нижней панели.
- Выберите «VPN на своём сервере».
- Заполните форму:
- IP-адрес сервера. Если вы меняли порт SSH, укажите его через двоеточие:
203.0.113.10:2222. - Имя пользователя:
root. - Пароль из кабинета.
- IP-адрес сервера. Если вы меняли порт SSH, укажите его через двоеточие:
- Нажмите «Продолжить».
Если на сервере вход только по ключу, вместо пароля вставьте приватный ключ целиком, включая строки BEGIN и END. Принимаются ED25519 и RSA в формате PEM.
3. Установите AmneziaWG на свой порт
Приложение предложит два типа установки: автоматическая ставит AmneziaWG на случайный порт, ручная даёт выбрать протокол и порт.
Случайный порт обычно высокий, например 35581, а часть провайдеров блокирует UDP на высоких портах: VPN ставится без ошибок, но не подключается. Разработчики советуют порт не выше 9999 — задайте его сразу через ручную установку.
- Выберите «Ручная» и «Продолжить».
- В списке протоколов — AmneziaWG.
- В поле «Порт» замените случайное значение на свободный порт до 9999, например
585или1234. - Нажмите «Установить».
Установка занимает до пяти минут, обычно меньше минуты. На главном экране появится «Сервер 1» с подписью AmneziaWG и кнопкой «Подключиться».
Первая установка может оборваться ошибкой 1200 («Ошибка QFile: не удалось открыть файл»). Это ошибка приложения на компьютере, не сервера — ему не удалось открыть свой служебный файл, и бывает это как раз сразу после установки AmneziaVPN. На сервере ничего удалять не нужно. Нажмите «Закрыть», затем шестерёнка → «Закрыть приложение» (чтобы завершить его полностью), откройте заново. Если сервер не сохранился и снова экран «Приступим» — повторите шаги 2 и 3 с теми же данными, вторая попытка обычно проходит.
Кнопка «Пропустить настройку» нужна только если Amnezia на сервере уже стоит: тогда Настройки → Серверы → сервер → «Управление» → «Проверить сервер на наличие ранее установленных сервисов Amnezia».
4. Подключитесь
Большая кнопка «Подключиться» на главном экране. Проверьте на любом сайте, показывающем IP (например, 2ip.ru): там должен быть адрес сервера, а не провайдера. Если не подключается — раздел «Если что-то не работает» ниже.
5. Поделитесь доступом
Для близких создаются гостевые подключения. Каждое работает с одним протоколом и на одном устройстве: телефону и ноутбуку одного человека нужны два подключения. Зато любое отзывается отдельно.
Не передавайте своё подключение с полным доступом. Человек с ним сможет удалять протоколы и отзывать чужие ключи — то есть управлять вашим VPN.
- Значок «Поделиться» в нижней панели (второй слева).
- На вкладке «Соединение» введите имя, по которому узнаете подключение: «Мама, телефон».
- Проверьте сервер и протокол, выберите формат:
- «Для приложения AmneziaVPN» — ключ вида
vpn://. - «Оригинальный формат AmneziaWG» — файл
.confдля приложения AmneziaWG или роутера.
- «Для приложения AmneziaVPN» — ключ вида
- Нажмите «Поделиться».
Откроется окно с подключением: отправьте файл, скопируйте ключ или покажите QR-код, который человек отсканирует в AmneziaVPN. QR-кода нет только у оригинального формата AmneziaWG.
Ключ и QR-код — это доступ к VPN; не публикуйте их в открытых чатах.
Отозвать: «Поделиться» → вкладка «Пользователи» → сервер и протокол → нужный человек → «Отозвать». Там же подключение переименовывается.
Как добавить XRay на тот же сервер
- Шестерёнка → «Серверы» → ваш сервер.
- На вкладке «Протоколы» у установленного AmneziaWG стоит стрелка, у остальных — значок загрузки.
- Нажмите загрузку рядом с XRay, затем «Установить».
После установки переключитесь на XRay по инструкции Amnezia.
Если что-то не работает
| Что происходит | Что проверить первым |
|---|---|
| Ошибка 1200 «не удалось открыть файл» | закройте приложение через настройки и повторите |
| Приложение не может подключиться к серверу | IP, пароль, порт SSH, сервер активен; попробуйте зайти по SSH вручную |
| AmneziaWG установлен, VPN не подключается | порт протокола должен быть не выше 9999 |
| Смена порта не помогла | добавьте XRay |
| После обновления приложения подключения отвалились | переустановите AmneziaWG и раздайте ключи заново |
| Медленно или обрывается | сравните AmneziaWG и XRay, у разных провайдеров лучше работает то один, то другой |
Порт AmneziaWG виден в карточке сервера. Выше 9999 — удалите протокол и поставьте заново на порт до 9999; гостевые подключения этого протокола пропадут. После обновления приложения то же самое: новые версии AmneziaWG несовместимы со старыми, а контейнер общий, так что обновить на месте нельзя.
Коды ошибок при установке
По официальному списку Amnezia:
| Код | Что означает | Что делать |
|---|---|---|
| 200 | проверка сервера не прошла | сверьте требования выше |
| 201 | порт занят другой программой | выберите другой порт |
| 202, 203 | ошибка Docker или пропал контейнер | добавьте сервер заново, проверьте порты |
| 205, 207, 209, 210 | нет нужных прав sudo | подключайтесь как root |
| 206 | занят менеджер пакетов | подождите или перезагрузите сервер |
| 208 | нет доступа к домашнему каталогу | root; на Debian 13 обновите приложение или возьмите Debian 12 |
| 211, 212 | Docker не работает в этой виртуализации | нужен KVM, а не LXC/OpenVZ |
| 213 | Docker Hub ограничил загрузки | подождите и повторите |
| 214 | слишком старое ядро | переустановите на Debian 12 или Ubuntu 24.04 |
| 300 | сервер отклонил вход по SSH | пароль и разрешён ли вход по паролю |
| 302 | внутренняя ошибка SSH | перезапустите приложение, смените сеть |
| 303, 304 | неверный ключ или формат | ED25519 или RSA в PEM |
| 305 | сервер не ответил по SSH | IP, порт SSH, сервер активен |
| 700 | уже работает другой VPN | отключите его |
| 1200–1205 | приложение не смогло открыть файл | закройте через настройки и повторите |
Общая диагностика для любого VPN на своём сервере — в статье VPN не подключается.