Как быстро поднять свой AmneziaWG2-сервер на VPS
Если вам нужен самый быстрый путь к собственному VPN-серверу без ручной возни с консольной установкой, то self-hosted flow в Amnezia — один из самых удобных вариантов. Вы создаёте VPS, передаёте приложению SSH-доступ, выбираете протокол, и дальше клиент сам подключается к серверу и ставит всё необходимое.
В этом гайде основной сценарий показан на DigitalOcean, потому что там он максимально прямолинейный. Но ниже я отдельно разобрал, что делать, если вы используете AWS, Azure или Google Cloud Platform — особенно в части SSH-ключей и открытия порта.
Сразу важное уточнение: в интерфейсе Amnezia на некоторых шагах может быть написано просто Amnezia WireGuard, без акцента на версию. Но в актуальном self-hosted flow на поддерживаемых версиях клиента вы в итоге получаете именно AmneziaWG 2.0.
Быстрый маршрут
Если не нужны подробности, вся схема выглядит так:
- создаёте VPS;
- готовите SSH-ключ;
- добавляете public key в хостер;
- копируете private key, IP и username;
- ставите Amnezia;
- выбираете Self-hosted VPN;
- вставляете IP, username и private key;
- выбираете Manual → Amnezia WireGuard;
- указываете порт;
- ждёте установку;
- подключаетесь и проверяете, что IP изменился.
Ниже — уже нормальная разборка по шагам.
Что понадобится
- VPS с публичным IP
- SSH-доступ к серверу
- SSH-ключ
- установленное приложение Amnezia
- 3–5 минут времени
Public key и private key: не перепутайте
Это самый частый источник ошибок.
Когда вы генерируете SSH-ключ, у вас появляется пара файлов:
- private key — закрытый ключ, он остаётся только у вас;
- public key — открытый ключ, именно его вы добавляете в панель хостера.
В типовом случае:
- файл с расширением
.pub— это public key; - файл без
.pub— это private key.
Практически это означает:
- в DigitalOcean и часто в Google Cloud вы загружаете public key;
- в Amnezia вы вставляете private key;
- в AWS и Azure портал может сгенерировать ключи сам, и там логика немного другая — ниже разберём отдельно.
DigitalOcean: самый простой сценарий
Для такого гайда DigitalOcean действительно один из самых удобных вариантов.
Шаг 1. Создайте SSH-ключ
Если у вас уже есть отдельный SSH-ключ под этот сервер — отлично, используйте его. Если нет, создайте новый.
Базовая команда:
ssh-keygen
После этого система покажет, куда сохранила ключи. Дальше вам нужен именно public key, то есть файл с .pub.
Чтобы вывести его в терминал и скопировать:
cat ~/.ssh/ИМЯ_КЛЮЧА.pub
Если вы оставили имя по умолчанию, путь обычно будет вроде:
cat ~/.ssh/id_ed25519.pub
Шаг 2. Добавьте public key в DigitalOcean
В DigitalOcean public key загружается в аккаунт и потом подставляется в новый droplet при создании.
Официальный путь: DigitalOcean Control Panel → Settings → Security → Add SSH Key
Официальные инструкции:
- Add SSH keys to a team: https://docs.digitalocean.com/platform/teams/how-to/upload-ssh-keys/
- Create a Droplet: https://docs.digitalocean.com/products/droplets/how-to/create/
- Add SSH keys to new or existing Droplets: https://docs.digitalocean.com/products/droplets/how-to/add-ssh-keys/
На странице создания droplet можно вообще не выходить в отдельные настройки: там есть кнопка New SSH Key, и она делает то же самое.
Шаг 3. Создайте droplet
Для первого запуска достаточно:
- Ubuntu
- любой базовый тариф
- SSH key authentication
- созданный вами public key
После создания droplet вам понадобится:
- public IP
- username
- ваш private key
На DigitalOcean username в типовом Ubuntu-droplet — это root.
Установка Amnezia
Пока VPS создаётся, можно сразу скачать клиент.
Страница загрузки: https://amnezia.org/
У Amnezia есть версии для:
- Windows
- macOS
- Linux
- Android
- iOS
Ставите приложение, запускаете и жмёте Let’s get started.
Настройка self-hosted AmneziaWG2
Шаг 1. Выберите Self-hosted VPN
Внутри приложения выбираете:
Self-hosted VPN
Дальше нужны три вещи:
- IP сервера
- username
- private SSH key
Шаг 2. Вставьте private key
Здесь нужен не .pub, а именно private key — файл без .pub.
Например, если у вас public key был:
~/.ssh/id_ed25519.pub
то private key обычно будет:
~/.ssh/id_ed25519
Вывести его можно так:
cat ~/.ssh/id_ed25519
Содержимое копируете целиком и вставляете в Amnezia.
Шаг 3. Укажите username
На DigitalOcean это обычно:
root
На других хостерах username может быть другим — не надо автоматически везде подставлять root.
Шаг 4. Укажите IP
Копируете public IP VPS из панели хостера и вставляете в Amnezia.
Шаг 5. Выберите Manual → Amnezia WireGuard
Дальше приложение спросит тип установки. Выбираете:
- Manual
- потом Amnezia WireGuard
Именно здесь у многих возникает путаница из-за названия: интерфейс может не акцентировать “version 2”, но в актуальном self-hosted сценарии это именно AWG 2.0, если клиент поддерживает новую версию.
Официальная инструкция AmneziaWG 2.0 для self-hosted: https://docs.amnezia.org/ru/documentation/instructions/new-amneziawg-selfhosted/
Шаг 6. Укажите порт
В видео использован порт 8080, и для практического старта это нормальный вариант.
Важно понимать:
- это порт VPN-сервера, а не SSH-порт;
- если протокол не поднимается, проблема часто не в самом протоколе, а в том, что порт не открыт;
- если конкретный порт не работает, проще сначала попробовать другой, чем сразу искать сложную сетевую причину.
Официальный troubleshooting по self-hosted AmneziaWG: https://docs.amnezia.org/troubleshooting/self-hosted-amneziawg-not-working/
Там прямо советуют при проблемах попробовать другой порт ниже 9999, например 585 или 1234.
Шаг 7. Дождитесь автоматической установки
После этого Amnezia сама:
- подключается к серверу по SSH;
- ставит всё необходимое;
- подготавливает конфигурацию;
- добавляет подключение в приложение.
Именно в этом главный плюс self-hosted flow: вам не нужно руками устанавливать всё через консоль.
Шаг 8. Подключитесь и проверьте IP
Когда установка завершится, появится кнопка Connect.
Дальше:
- жмёте Connect;
- ждёте подъёма туннеля;
- открываете любой IP-check сервис;
- обновляете страницу и проверяете, что IP теперь совпадает с вашим VPS.
Если IP сменился на IP вашего сервера — базовый сетап готов.
Что делать, если у вас не DigitalOcean
Ниже — короткая практическая выжимка по другим популярным хостерам.
AWS: SSH-ключи и порт
На AWS EC2 история отличается от DigitalOcean.
SSH-ключи на AWS
На AWS вам не обязательно заранее генерировать SSH-ключ локально. При создании инстанса EC2 можно:
- выбрать уже существующий key pair;
- или создать новый key pair прямо в консоли.
При создании нового key pair AWS даст скачать private key (например, .pem) один раз. А public key будет привязан к инстансу автоматически.
Официальная документация:
То есть в AWS самый простой путь такой:
- при запуске EC2 создаёте key pair в консоли;
- скачиваете private key;
- используете этот private key в Amnezia.
Где открыть порт на AWS
На AWS вам нужен Security Group с inbound rule на нужный UDP-порт.
Путь: EC2 → Instance → attached Security Group → Edit inbound rules
Официальная документация:
- Change security groups: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/changing-security-group.html
- Security group rules reference: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html
Если inbound UDP rule не добавлен, сервер может быть установлен, но подключения извне не будет.
Azure: SSH-ключи и порт
На Azure логика тоже достаточно удобная.
SSH-ключи в Azure
Azure умеет генерировать и хранить SSH-ключи прямо в портале. Это удобно, если не хочется сначала делать ключ локально вручную.
Официальная документация:
- Generate and store SSH keys in Azure portal: https://learn.microsoft.com/en-us/azure/virtual-machines/ssh-keys-portal
- Connect to a Linux VM: https://learn.microsoft.com/en-us/azure/virtual-machines/linux-vm-connect
То есть на Azure у вас есть два варианта:
- использовать свой existing public key;
- дать Azure сгенерировать ключи при создании VM.
В обоих случаях для Amnezia вам в итоге нужен private key.
Где открыть порт в Azure
В Azure открытие порта обычно идёт через:
- Networking
- и/или Network Security Group (NSG)
Официальная документация:
- Network security groups overview/tutorial: https://learn.microsoft.com/en-us/azure/virtual-network/tutorial-filter-network-traffic
- NSG management: https://learn.microsoft.com/en-us/azure/virtual-network/manage-network-security-group
Практически вам нужен inbound rule на ваш UDP-порт.
Google Cloud Platform: где чаще всего путаются
Вот здесь как раз больше всего неочевидности.
SSH-ключи в GCP
В Google Cloud есть две разные модели SSH-доступа:
- OS Login
- metadata-based SSH keys
Именно из-за этого у GCP часто возникает ощущение, что “ключи где-то закопаны”.
Если OS Login не используется, public SSH key можно добавлять:
- либо в project metadata,
- либо в instance metadata для конкретной VM.
Официальная документация:
- Add SSH keys / access overview: https://docs.cloud.google.com/compute/docs/access
- Troubleshooting SSH errors: https://docs.cloud.google.com/compute/docs/troubleshooting/troubleshooting-ssh-errors
Если вам нужен SSH именно к одной конкретной VM, удобнее обычно работать с instance metadata, а не с project-level ключами.
Где открыть порт в GCP
На Google Cloud порт открывается не “внутри VM” как основной точке, а через VPC firewall rules.
Официальная документация:
- Firewall rules overview: https://docs.cloud.google.com/firewall/docs/firewalls
- Using firewall rules: https://docs.cloud.google.com/firewall/docs/using-firewalls
Практически схема такая:
- открываете VPC firewall;
- создаёте правило;
- разрешаете нужный UDP-порт;
- применяете его к нужной VM / target tags / сети.
Это одна из самых частых причин, почему в GCP “вроде всё поднялось, но снаружи не коннектится”.
Какие порты выбирать
Универсального “лучшего” порта здесь нет.
Нормальный практический подход такой:
Для первого запуска
- берите один понятный UDP-порт;
- открывайте его на уровне cloud firewall / security group / NSG / VPC firewall;
- используйте его в инструкции и не усложняйте первый запуск.
Если не работает
Проверяйте в таком порядке:
- открыт ли порт на уровне хостера;
- не ошиблись ли вы с протоколом;
- не вставили ли вы не тот ключ;
- верный ли username;
- не используете ли вы внутренний IP вместо публичного;
- не пора ли просто сменить порт.
Если хотите максимально быстро отрезать сетевую проблему, самый полезный шаг — просто попробовать другой UDP-порт.
Типичные ошибки
Перепутан public key и private key
Самый частый фейл.
Запомнить просто:
.pub→ в панель хостера- без
.pub→ в Amnezia
Неправильный username
На DigitalOcean чаще всего это root, но для AWS / Azure / GCP и разных образов это может быть не так.
Не открыт UDP-порт
Сервер может быть установлен, но внешний трафик не пройдёт.
Взят не тот IP
Для Amnezia нужен public IP, а не внутренний адрес VM.
Слишком рано начали крутить настройки
Если базовый connect ещё не работает, не лезьте сразу в тюнинг. Сначала добейтесь обычного рабочего подключения.
Что делать дальше
После первого рабочего AWG2-сервера логично идти в такие темы:
- настройки AmneziaWG2
- сравнение AWG2 vs WireGuard vs VLESS Reality
- быстрая установка VLESS Reality
- маршрутизация через Cloudflare WARP
- более продвинутые server-side сценарии
То есть этот материал — это входная точка: как быстро поднять рабочий self-hosted AWG2, а не полный курс по серверному VPN-администрированию.
Короткий итог
Если тебе нужен быстрый практический путь, он такой:
- создаёшь VPS;
- получаешь SSH-доступ;
- добавляешь public key на стороне хостера;
- вставляешь private key, IP и username в Amnezia;
- выбираешь Manual → Amnezia WireGuard;
- задаёшь порт;
- ждёшь установку;
- подключаешься;
- проверяешь IP.
На DigitalOcean это самый прямой и наглядный путь. На AWS и Azure портал может упростить жизнь генерацией ключей. На Google Cloud обычно больше путаницы именно вокруг SSH-модели и VPC firewall rules.
Но если держать в голове три вещи — правильный ключ, правильный username и открытый UDP-порт — стартовый self-hosted сценарий получается очень простым.