AmneziaWG на VPS: разворачиваем сервер с нуля
Пошаговое руководство по развертыванию AmneziaWG на VPS: от подготовки сервера до настройки клиентов и обфускации трафика.
Содержание
AmneziaWG (AWG) — это модификация WireGuard, которая добавляет обфускацию трафика и позволяет обходить глубокую фильтрацию пакетов. Развернуть такой сервер на VPS несложно, если следовать инструкции. В этом руководстве мы пройдём весь путь: от выбора VPS до подключения клиентов.
Что такое AmneziaWG и зачем нужен VPS?
AmneziaWG — это протокол, разработанный в рамках проекта Amnezia VPN. Он использует тот же механизм шифрования, что и WireGuard, но изменяет формат пакетов, делая их неотличимыми от обычного HTTPS-трафика. Это особенно полезно в сетях, где WireGuard блокируется по DPI-признакам.
VPS предоставляет выделенный сервер с собственным IP-адресом. На нём вы можете развернуть AmneziaWG и подключаться к нему из любой точки мира. Поскольку протокол основан на WireGuard, он требует минимальных ресурсов, поэтому подойдёт даже самый дешёвый VPS с 512 МБ RAM.
Подготовка VPS и требования
Перед началом настройки убедитесь, что у вас есть:
- VPS с любой ОС семейства Linux (Ubuntu 20.04+, Debian 11+ и т.д.);
- root-доступ по SSH;
- свободные порты: по умолчанию AmneziaWG использует UDP-порт, но его можно изменить.
Также рекомендуется обновить систему:
sudo apt update && sudo apt upgrade -y
Проверьте текущую версию ядра — для WireGuard и AmneziaWG требуется ядро не ниже 5.6. На большинстве современных VPS это уже выполнено. Уточнить версию можно командой uname -r.
Установка AmneziaWG на сервер
Проще всего установить AmneziaWG с помощью официального скрипта. Откройте терминал SSH и выполните:
curl -fsSL https://raw.githubusercontent.com/amnezia-vpn/amneziawg-tools/master/install.sh | sudo bash
Этот скрипт установит все необходимые компоненты, включая ядро и утилиты. Обратите внимание, что на момент написания статьи актуальная версия инструментов — 1.0. Всегда проверяйте актуальность на официальном репозитории проекта.
После завершения установки проверьте, что модуль ядра загружен:
sudo modprobe amneziawg
Настройка серверной части
Теперь создадим ключи и конфигурацию. Сначала сгенерируем приватный и публичный ключи сервера:
wg genkey | sudo tee /etc/amneziawg/server_private.key
sudo cat /etc/amneziawg/server_private.key | wg pubkey | sudo tee /etc/amneziawg/server_public.key
Обратите внимание: в AmneziaWG команда для генерации ключей называется wg (из утилит WireGuard), но сами модули — amneziawg. Набор команд аналогичен.
Далее отредактируйте конфигурацию сервера. Создайте файл /etc/amneziawg/awg0.conf:
[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = <приватный ключ сервера>
# Включаем обфускацию AmneziaWG
Jc = 4
Jmin = 20
Jmax = 30
S1 = 45
S2 = 60
H1 = 100
H2 = 150
H3 = 200
H4 = 150
Параметры Jc, Jmin, Jmax, S1, S2, H1-H4 отвечают за обфускацию. Их можно менять, но для совместимости с клиентами лучше использовать значения, предлагаемые скриптом установки (обычно они генерируются автоматически).
Включим и запустим интерфейс:
sudo systemctl enable wg-quick@awg0
sudo systemctl start wg-quick@awg0
Убедитесь, что интерфейс поднялся:
sudo wg show
Создание клиентских конфигураций
Для каждого клиента нужно сгенерировать пару ключей и добавить его на сервер. Создадим ключи клиента:
wg genkey | tee client_private.key
wg pubkey < client_private.key > client_public.key
Добавим клиента в конфигурацию сервера. В конец файла /etc/amneziawg/awg0.conf добавьте:
[Peer]
PublicKey = <публичный ключ клиента>
AllowedIPs = 10.0.0.2/32
Теперь перезапустите интерфейс:
sudo systemctl restart wg-quick@awg0
Скопируйте клиентскую конфигурацию в файл. Она будет выглядеть так:
[Interface]
Address = 10.0.0.2/24
PrivateKey = <приватный ключ клиента>
DNS = 1.1.1.1
[Peer]
PublicKey = <публичный ключ сервера>
Endpoint = <IP-адрес VPS>:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
Обратите внимание: в клиентской конфигурации для AmneziaWG также нужно указать параметры обфускации. Их можно получить командой sudo wg show awg0 dump — они выводятся в поле private_key? На самом деле параметры Jc и другие не отображаются в стандартном выводе. Рекомендуется использовать официальный клиент AmneziaVPN для генерации конфигураций или скопировать параметры из серверного файла вручную, заменив их в клиентском [Interface].
Если вы используете официальный клиент AmneziaVPN, он автоматически подхватит вашу конфигурацию и применит обфускацию. Для сторонних клиентов удостоверьтесь, что они поддерживают AmneziaWG (например, клиент AmneziaWG для Windows).
Подключение клиентов и проверка
Импортируйте конфигурацию в клиентское приложение. После подключения проверьте доступ к интернету и утечки DNS. С VPS можно посмотреть активные подключения:
sudo wg show
Вы должны увидеть пира с последним рукопожатием. Если соединение не устанавливается, проверьте, что порт 51820 открыт в файрволе.
Заключение
Мы развернули AmneziaWG на VPS с нуля. Протокол работает быстро и устойчиво к блокировкам. Для упрощения управления можно использовать панели или скрипты, но базовый способ — самый надёжный.
Мини-чеклист
- Обновить ОС и убедиться в совместимости ядра
- Установить amneziawg-tools с официального скрипта
- Сгенерировать приватный и публичный ключи сервера
- Создать конфигурацию /etc/amneziawg/awg0.conf
- Включить и запустить интерфейс
- Сгенерировать клиентские ключи
- Добавить клиента как Peer в конфигурацию сервера
- Перезапустить интерфейс
- Проверить подключение через wg show
Частые ошибки
- Использование стандартного WireGuard вместо AmneziaWG: команды утилит те же, но модуль ядра — amneziawg
- Неправильные параметры обфускации (Jc, S1 и др.) в клиентской конфигурации
- Забыли открыть UDP-порт в файрволе
- Не изменён ListenPort при конфликте с другим сервисом
- Клиент не поддерживает AmneziaWG и пытается подключиться как обычный WireGuard
Источники и документация
FAQ
Чем AmneziaWG отличается от WireGuard?
AmneziaWG добавляет обфускацию пакетов и использует механизм, который маскирует трафик под HTTPS, что помогает обходить DPI. В остальном принципы работы и настройки схожи.
Какой минимальный VPS нужен для AmneziaWG?
Достаточно 512 МБ RAM и одного ядра CPU. Подойдёт любой Linux VPS с современным ядром (5.6+).
Можно ли использовать AmneziaWG с обычным WireGuard-клиентом?
Нет, обычный WireGuard не понимает обфускацию AmneziaWG. Нужен специальный клиент AmneziaVPN или сборка amneziawg-tools.
Как поменять порт протокола?
Измените параметр ListenPort в /etc/amneziawg/awg0.conf и соответствующий Endpoint в клиентской конфигурации, затем перезапустите интерфейс.
Хотите перейти сразу к рабочему доступу?
Если сценарий уже ясен и не хочется проходить все шаги вручную, оформите доступ и проверьте подключение на своем устройстве.
Получить доступ