Автор: Редакция «VPN не работает»

Amnezia VPN на своём сервере

В режиме self-hosted приложение Amnezia само разворачивает защищённый канал на арендованной вами машине: подключается по SSH, ставит Docker и поднимает контейнер выбранного протокола. Команды в терминале не нужны: вы вводите адрес сервера, имя пользователя и пароль или ключ.

Коротко. Экран ввода — «Configure your server»: адрес с портом, имя пользователя SSH, пароль или ключ. Автоматический режим ставит один протокол — AmneziaWG на случайный порт. Машина — KVM, публичный IPv4, x86-64, от 1 ядра, 1 ГБ RAM и 10 ГБ SSD.

Amnezia VPN self hosted: что это за режим?

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

Чем это отличается от Amnezia Hosting и Premium?

Тем, чья это машина. В self-hosted сервер арендуете вы и открываете приложению доступ по SSH. Amnezia Hosting — другой продукт: сервер вендора, где вместо SSH, терминала и ручной настройки дают клиентскую панель. Free — бесплатный доступ к серверам вендора, Premium — подписка; своей машины нет ни там, ни там. Спрос сопоставим: у «amnezia vpn self hosted» около 245 показов в месяц, у «amnezia vpn hosting» — 270. Смета владения — в материале «Свой VPN на VPS».

Какой сервер подойдёт под мастер установки?

Совместимость решается до оплаты тарифа: установка чаще обрывается на ней, а не на пароле.

ПараметрТребованиеЕсли не совпало
ЖелезоKVM и x86-64 (amd64)OpenVZ, LXC, x86 и ARM64 не подходят
АдресПубличный IPv4IPv6 не поддерживается, домен — только с A-записью
СистемаUbuntu 22.04.x, 24.04.x, Debian 12 и 13Ubuntu 20.04.x, Debian 11, Fedora 42–43 обычно работают; без systemd — нет
Ядро4.8 для AmneziaWG 1.0, 4.14 для 2.0, 5.6 для WireGuardКод 214 «Kernel is too old»
Ресурсы1 ядро, 1 ГБ RAM, 10 ГБ SSDДля 10+ подключений — 2 vCPU и 2 ГБ

Нужен ли root на арендованной машине?

Нет: годится root либо участник группы sudo, выполняющий команды без запроса пароля, — клиент делает пробный неинтерактивный вызов. Docker ставит само приложение, а найдя под именем docker Podman, прекращает работу.

Как пройти мастер установки шаг за шагом?

Пять шагов от проверки тарифа до рабочего канала; подписи — по документации вендора.

Шаг 1. Проверить тариф и доступ по SSH

Сверьте машину с таблицей выше и убедитесь, что заходите под root или пользователем с беспарольным sudo. Порт SSH по умолчанию 22, его часто переносят.

Шаг 2. Открыть пункт про свой сервер

Нажмите иконку «плюс» или Get Started и выберите пункт про свой сервер — в документации это «Self-hosted VPN». Клиент берите только с amnezia.org или github.com/amnezia-vpn: сторонние сборки и «зеркала» несут изменённые настройки.

Шаг 3. Заполнить экран Configure your server

Три поля: «Server IP address [:port]» (плейсхолдер 255.255.255.255:22), «SSH Username» (root) и «Password or SSH private key». Порт дописывается через двоеточие: 203.0.113.10:2221. Ключ вставляют целиком, со строками BEGIN и END; принимаются ED25519 и RSA в PEM.

Шаг 4. Выбрать тип установки

На экране «Choose Installation Type» доступны «Automatic», «Manual» и «Skip setup». Автоматический ставит ровно один протокол — AmneziaWG: флаг простой установки выставлен ему одному.

Шаг 5. Дождаться установки и сменить порт

Обычно это не дольше пяти минут; при работающем пакетном менеджере установка ждёт. Затем смените случайный порт AmneziaWG на число до 9999 (в примерах 585 или 1234): провайдеры режут UDP на высоких портах.

Что остаётся на сервере после развёртывания?

Каталог /opt/amnezia/<протокол> и набор контейнеров. У AmneziaWG это /opt/amnezia/awg с awg0.conf и тремя ключами; в конфиге — параметры обфускации Jc, Jmin, Jmax, S1–S4 и H1–H4.

Контейнеры зовутся «amnezia-» плюс протокол: awg, awg2, openvpn, xray, dns. Заранее создаётся docker-сеть amnezia-dns-net (bridge, подсеть 172.29.172.0/24, интерфейс amn0). Контейнер AmneziaWG привилегированный, с NET_ADMIN и SYS_MODULE, журнал отключён флагом --log-driver none. Скрипт очистки сносит всё разом: контейнеры, образы, тома и каталог /opt/amnezia. Отозвать или сбросить утёкший ключ полного доступа нельзя: вендор предписывает немедленно сменить root-пароль и удалить с сервера протоколы и сервисы Amnezia.

Почему установка обрывается на кодах 200–219?

Потому что двухсотая серия — это стадия развёртывания, а не подключения. Коды 200–214 разобраны в документации вендора, 215–219 есть только в исходниках клиента (client/core/utils/errorCodes.h). Общий индикатор — 200 «Server check failed».

Симптом (код)ПричинаРешение
201 Port already usedПорт занят другим ПОЗадать другой порт вручную
203 Docker failedDocker не встал или не стартовалПроверить, не занял ли Podman имя docker
205 / 207 sudoНет прав sudo или пакета нет в образеЗайти под root или доставить sudo
209 / 210 sudoersКоманда запрещена или sudo требует парольНастроить беспарольный sudo
213 Pull rate limitИсчерпан лимит скачивания образовПодождать и повторить
214 Kernel is too oldЯдро ниже требуемого протоколомПереустановить из свежего образа
218 / 219 Container runtimeRuntime не поддержан или служба не запущенаПоставить Docker Engine вручную

Чем коды 300 и 305 отличаются от 200-й серии?

Стадией. Коды 300 и 305 — это SSH-подключение: мастер ещё ничего не развернул. Двухсотая серия идёт уже по установленному соединению, а 103 к серверу отношения не имеет — это фоновая служба на вашем компьютере. Причины и решения по 300 и 305 — на странице ошибок Amnezia VPN.

Какие протоколы можно доустановить вручную?

Раздел документации об установке и настройке протоколов перечисляет четыре: AmneziaWG, XRay VLESS Reality, OpenVPN и WireGuard. Путь один — имя подключения внизу экрана, шестерёнка, вкладка «Протоколы». Там же ставятся сервисы: DNS, SFTP, SOCKS5-прокси и MTProxy.

Сравнение — в разборе протоколов Amnezia, что дальше — в настройке Amnezia VPN.

Материал носит научно-технический характер. Прямой ответственности за использование VPN физическим лицом законодательство РФ не устанавливает; сайт не аффилирован с Amnezia.

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

Что спрашивают до запуска мастера.

Что нужно ввести в мастере self-hosted?

Три значения на экране «Configure your server»: адрес сервера в поле «Server IP address [:port]» (нестандартный порт дописывается через двоеточие, например 203.0.113.10:2221), имя пользователя в «SSH Username» и пароль либо приватный ключ в «Password or SSH private key». Ключ вставляется текстом целиком, вместе со строками BEGIN и END; поддерживаются типы ED25519 и RSA в формате PEM. Приложение показывает уведомление, что введённые данные не передаются ни Amnezia, ни третьим лицам.

Какой протокол ставится автоматически?

Только AmneziaWG: в коде клиента флаг простой установки выставлен единственному контейнеру, и порт ему назначается случайно. Документация советует сразу сменить его на число до 9999 — в примерах вендора 585 или 1234, — потому что провайдеры часто режут UDP на высоких портах. Остальные протоколы (XRay VLESS Reality, OpenVPN, WireGuard) доустанавливаются потом через вкладку «Протоколы» в свойствах сервера.

Нужен ли root на сервере?

Нет. Подойдёт root либо пользователь в группе sudo с правом выполнять любую команду через sudo без запроса пароля: проверочный скрипт клиента смотрит вхождение в группу sudo или wheel и делает пробный неинтерактивный вызов. Именно на этом условии установка чаще всего и обрывается — коды 205 (пользователь не в группе sudo), 207 (пакет sudo не предустановлен), 209 (действие не разрешено в sudoers) и 210 (требуется пароль пользователя).

Какой VPS не подойдёт под Amnezia?

Машина на контейнерной виртуализации OpenVZ или LXC — нужен KVM. Также не подойдут архитектуры x86 и ARM64 (поддерживается только x86-64/amd64), тарифы без публичного IPv4 (IPv6 не поддерживается) и дистрибутивы без systemd. Отдельная причина отказа — слишком старое ядро: AmneziaWG 1.0 требует минимум 4.8, AmneziaWG 2.0 — 4.14, WireGuard — 5.6; при несовпадении установка падает с кодом 214 «Linux kernel is too old».

Чем ошибка 300 отличается от 305?

Код 300 «SSH request was denied» означает, что сервер отклонил запрос: неверные данные подключения, нехватка ресурсов на машине или устаревшая версия приложения. Код 305 «Timeout connecting to server» — сервер не ответил вовремя: порт 22 закрыт или фильтруется, либо хост недоступен. Ошибки ключа выделены отдельно: 303 — неверный ключ или парольная фраза, 304 — неподдерживаемый формат ключа.

Как убрать Amnezia с сервера полностью?

Скриптом полной очистки: он останавливает и удаляет все контейнеры с «amnezia» в имени, стирает их образы, тома с префиксом amnezia-, docker-сеть amnezia-dns-net и каталог /opt/amnezia целиком. Отозвать или сбросить утёкший ключ полного доступа нельзя: вендор предписывает немедленно сменить root-пароль сервера и удалить с него протоколы и сервисы Amnezia.

Поделиться: Telegram ВКонтакте