Установка серверной части AmneziaWG на Ubuntu/Debian VPS

В прошлой статье мы разобрали, как AmneziaWG обманывает DPI с помощью шумовых пакетов, мимикрии под QUIC и шифрования заголовков. Теперь — практика. Будем поднимать сервер.

Хорошая новость: вам не нужен мощный VPS. AmneziaWG работает на модуле ядра Linux, а значит, потребляет минимум ресурсов. Хватит самого дешёвого сервера за 2–4 $ в месяц с 1 vCPU и 512 МБ ОЗУ. Если планируете подключать много клиентов или гонять 4K-видео — берите 1 ГБ ОЗУ для комфорта.

Что понадобится

  • VPS с Ubuntu 24.04 LTS, Ubuntu 22.04 или Debian 12/13. Поддерживаются и другие версии, но на этих всё проверено.
  • Доступ по SSH с правами root (или sudo).
  • 2 ГБ свободного места на диске — минимум. Лучше 3+.
  • 15–20 минут времени.
💡 Важно: В отличие от Marzban, для AmneziaWG не нужен домен, SSL-сертификат или reverse-proxy. Сервер работает на уровне ядра и общается с клиентами напрямую по UDP. Это одновременно и проще, и безопаснее — меньше поверхности для атаки.

Шаг 1. Подготовка сервера

Подключитесь к VPS по SSH и обновите систему:

apt update && apt upgrade -y

Установите базовые утилиты, которые могут понадобиться:

apt install -y curl wget git ufw

Шаг 2. Установка AmneziaWG (автоматический скрипт)

Самый простой и надёжный способ — использовать скрипт от сообщества bivlked. Он автоматически установит модуль ядра через DKMS (это значит, что при обновлении ядра модуль пересоберётся сам), настроит сеть, firewall и параметры оптимизации.

Выполните одну команду:

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

Скрипт задаст несколько вопросов:

  1. Порт для AmneziaWG. По умолчанию 51820, но лучше выбрать случайный в диапазоне 10000–65535. Провайдеры реже блокируют нестандартные порты.
  2. Подсеть туннеля. Оставьте 10.8.0.0/24 — этого хватит на 253 клиента.
  3. DNS для клиентов. Рекомендую 1.1.1.1 (Cloudflare) или 9.9.9.9 (Quad9).
  4. Параметры обфускации. Согласитесь на автоматическую генерацию — скрипт подберёт значения под ваш сервер.
💡 Ассоциация: Представьте, что вы настраиваете радиоприёмник. Скрипт сам подбирает частоту и модуляцию так, чтобы ваш сигнал не глушили. Вам остаётся только нажать «включить».

После завершения скрипт покажет:

  • Путь к серверному конфигу: /etc/amnezia/amneziawg/awg0.conf
  • Команду для управления клиентами: sudo bash /root/awg/manage_amneziawg.sh
  • Публичный ключ сервера (понадобится клиентам).

Что делает скрипт «под капотом»

Для тех, кто хочет понимать, а не просто нажимать кнопки:

  1. Добавляет PPA-репозиторий Amnezia и устанавливает модуль ядра amneziawg через DKMS.
  2. Включает IP-форвардинг — без него клиенты не смогут выходить в интернет через сервер.
  3. Настраивает iptables NAT (правило MASQUERADE) — подменяет внутренние IP клиентов на IP сервера.
  4. Включает BBR — алгоритм контроля перегрузки TCP от Google, который значительно ускоряет передачу на «шумных» каналах.
  5. Создаёт systemd-сервис awg-quick@awg0 для автозапуска при загрузке.

Шаг 3. Проверка работоспособности

Убедитесь, что сервис запущен:

systemctl status awg-quick@awg0

Должно быть active (running). Затем проверьте, что интерфейс поднялся:

awg show

Вы увидите интерфейс awg0 с публичным ключом, портом и (пока пустым) списком пиров.

Шаг 4. Создание клиента и получение конфигурации

AmneziaWG, в отличие от Marzban, не имеет веб-панели. Управление клиентами — через скрипт manage_amneziawg.sh.

Создайте первого клиента:

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

Скрипт сгенерирует:

  • Файл конфигурации /root/awg/laptop.conf — для импорта в приложение AmneziaWG или WireGuard.
  • QR-код /root/awg/laptop.png — для быстрого подключения с телефона.
  • vpn://-ссылку и второй QR-код — для импорта в фирменное приложение Amnezia VPN (Android/iOS/Desktop) в один клик.
💡 Лайфхак: Не знаете, какой клиент использовать? Если у вас телефон — ставьте AmneziaVPN (он умеет сканировать vpn:// QR-коды). Если компьютер — AmneziaWG (понимает .conf файлы). Оба приложения бесплатны и есть на всех платформах.

Шаг 5. Защита сервера (UFW + Fail2Ban)

Откройте порт AmneziaWG и SSH:

ufw allow 22/tcp
ufw allow 51820/udp
ufw enable

Замените 51820 на тот порт, который вы выбрали при установке.

Установите Fail2Ban — он будет банить IP-адреса после нескольких неудачных попыток входа по SSH:

apt install -y fail2ban
systemctl enable --now fail2ban

Ручная настройка: для тех, кто хочет контролировать всё

Если вы предпочитаете не использовать скрипты (или разворачиваете AmneziaWG в LXC-контейнере, где DKMS не работает), вот минимальный рабочий awg0.conf для AmneziaWG 2.0:

[Interface]
PrivateKey = <SERVER_PRIVATE_KEY>
Address = 10.9.9.1/24
ListenPort = 51820
MTU = 1280
Jc = 4
Jmin = 40
Jmax = 90
S1 = 50
S2 = 40
S3 = 12
S4 = 8
H1 = 1234567
H2 = 2345678
H3 = 3456789
H4 = 4567890

Ключевые моменты:

  • Все 11 параметров обфускации обязательны для AWG 2.0. Если хоть один пропущен — handshake не пройдёт.
  • S3 и S4 появились в AWG 2.0. В старых конфигах AWG 1.x их может не быть — добавьте вручную.
  • H1–H4 могут быть диапазонами (например, H1 = 100000-200000). Диапазоны не должны пересекаться, а верхняя граница — не выше 2147483647 (INT32_MAX).
  • MTU 1280 — безопасное значение для мобильных сетей. Для проводных можно поднять до 1420, но если интернет нестабильный — оставьте 1280.

Тонкая настройка обфускации

Если стандартные параметры не работают на вашем операторе, вот проверенные комбинации:

🔧 Пресеты обфускации

Оператор Jc Jmin Jmax Примечание
МТС 6 50 1000 Работает стабильно
Tele2 / Yota 3 40 100 Мягкий режим, лучше для мобильных
Мегафон 4 55 205 Средний режим
Универсальный 4 40 90 Хороший старт

После изменения параметров в awg0.conf перезапустите сервис и перегенерируйте конфиги клиентов:

sudo systemctl restart awg-quick@awg0
sudo bash /root/awg/manage_amneziawg.sh regen laptop

Частые проблемы и решения

Симптом Причина Решение
Handshake не проходит Порт закрыт в UFW или не совпадают ключи ufw status → проверить UDP-порт. Сравнить ключи в awg show и клиентском конфиге
Подключается, но нет интернета Не включён IP-форвардинг или NAT sysctl net.ipv4.ip_forward должен быть 1. Проверить iptables -t nat -L
Низкая скорость Не включён BBR или большой MTU sysctl net.ipv4.tcp_congestion_control → должно быть bbr. Снизить MTU до 1280
Работает с Wi-Fi, но не с LTE Оператор режет нестандартный UDP Сменить порт на 443/UDP или добавить I1-пакеты с мимикрией под QUIC[reference:15]

Что дальше

Сервер работает, клиенты подключаются. Но это — «голый» AmneziaWG. В следующих статьях цикла мы разберём:

  • Интеграцию с Marzban — чтобы управлять пользователями из привычной панели.
  • Настройку на роутерах Keenetic и OpenWrt — для защиты всей домашней сети.
  • Диагностику — как читать логи и находить проблемы.

➤ Следующая статья: «Настройка клиентов AmneziaWG (Windows, macOS, Android, iOS)»

📚 Это часть цикла «AmneziaWG: полное руководство». Смотрите все статьи цикла.

Комментарии

Популярные сообщения

🧬 ChaCha20 и Curve25519: Криптография под капотом WireGuard

Немного о том, зачем это нужно.

🔌 L2TP: протокол, который объединил лучшее от двух миров

⚡ ИИ-помощник (на OpenRouter)

Спросите про VPN, протоколы или настройку серверов.