Менеджер AmneziaWG 2.0 — одной командой.
3 уровня обфускации, профили мимикрии (TLS / DNS / SIP / QUIC), локальный CPS-генератор, Warp туннель Cloudflare, DPI-тест.
sudo curl -fsSL https://raw.githubusercontent.com/pumbaX/awg-multi-script/main/awg2.sh -o /usr/local/bin/awg2 && sudo chmod +x /usr/local/bin/awg2 && sudo awg2Запуск в любой момент:
sudo awg2По умолчанию скрипт обновляется из основного репозитория (pumbaX/awg-multi-script) —
это стабильный канал. Ранние сборки живут в бета-репозитории
(genaRijoff/awg-multi-script): sudo awg2 → 8) Обновить скрипт → 2) Переключиться
на бета-канал. Выбор сохраняется в /var/lib/awg2/channel и переживает обновление;
вернуться на стабильный канал можно там же (если бета-версия окажется новее, обновление
предложит откат). Разовый запуск на бета-канале без сохранения:
AWG2_UPDATE_CHANNEL=beta sudo -E awg2.
Канал влияет и на Telegram-бота: установка из пункта 6 берёт его код из того же репозитория.
Обход блокировки IP сервера в РФ. Когда ТСПУ блокирует IP Hetzner/OVH — заворачиваем выходной трафик через Cloudflare.
Клиент РФ → AWG → твой сервер → Cloudflare → интернет
SSH и серверный трафик идут напрямую — не через Warp.
Меню Warp (Туннели и DNS → Warp):
1) Установить wgcf и зарегистрировать Warp
2) Активировать Warp+ (лицензионный ключ)
3) Включить туннель
4) Выключить туннель
5) Перегенерировать профиль
6) Управление клиентами в Warp ← кто через Warp, кто напрямую
7) Health-check + auto-failover ← если упал — direct routing
8) Импорт wgcf-profile.conf ← если регистрация блокируется
9) Поиск рабочего endpoint ← если 2408 режется DPI
d) Удалить Warp полностью
Где взять Warp+ ключ:
- 🥈 Приложение 1.1.1.1 → Аккаунт → Ключ
Если Warp не подключается на РФ хостинге:
Туннели и DNS → Warp → 8— импорт готового профиля через Google Cloud ShellТуннели и DNS → Warp → 9— автоматический поиск рабочего endpoint- Если ничего не помогло — провайдер режет UDP к Cloudflare, нужен другой хостинг
Меню двухуровневое: 8 категорий, у каждой своё подменю.
╔══════════════════════════════════════════════╗
║ AWG Toolza v6.9.0 ║
║ AWG 2.0 — TLS / DNS / SIP / QUIC мимик ║
║ + Warp туннель Cloudflare ║
╚══════════════════════════════════════════════╝
IP сервера : 100.20.38.41
Порт : 41300
Интерфейс : ● активен
Профиль : standard
Клиентов : 21
1) Сервер — установка
2) Клиенты — управление
3) Диагностика — тест, домены
4) Бекапы — создать, восстановить
5) Туннели и DNS — Warp, DNS, каскад
6) Telegram-бот — управление ботом
7) Удаление и сброс
8) Обновить скрипт — загрузить с GitHub
0) Выход
1) Сервер
1) Установка зависимостей и AmneziaWG
2) Создать сервер + первый клиент (выбор профиля и мимикрии)
3) Перезапустить awg0
4) Проверить и починить awg0 (авторемонт)
5) Сбросить настройки сервера (чистая переустановка)
При создании сервера (и при перегенерации параметров) выбирается версия AmneziaWG. Она общая для всего сервера: клиент другой версии не подключится.
| Версия | Что добавляет | Требования |
|---|---|---|
| 2.0 | Jc/Jmin/Jmax, S1-S4, H1-H4 + мимикрия I1-I5 |
любой клиент AmneziaWG |
| 3.0 | HeaderProtectionKey, ContentPaddingAddition, рандомизация таймеров (RekeyAfterTime, RejectAfterTime, KeepaliveTimeout, MaxHandshakeAttempts), PersistentKeepalive диапазоном |
tools и модуль с поддержкой 3.0 |
| 3.1 | плюс RandomTrailers (случайный «хвост» у пакетов рукопожатия — их длина перестаёт быть постоянной) и DisableCookies (сервер не отвечает cookie-пакетами) |
amneziawg-tools и модуль v3.1.20260812 или новее — и на сервере, и на клиенте |
Скрипт проверяет установленные компоненты до перезаписи конфигов: если awg не знает
ключей выбранной версии, он предупредит, а не оставит сервер лежать.
DisableCookies = onотключает штатную защиту WireGuard от флуда рукопожатиями — это плата за то, что в трафике не появляется отдельный тип пакета.
2) Клиенты
1) Добавить клиента
2) Переименовать клиента
3) Удалить клиента
4) Показать QR клиента
5) Показать конфиг клиента (текст)
6) Создать N клиентов (массово)
7) Срок действия клиента (auto-suspend по истечении)
8) Активность клиентов
9) Экспорт конфигов (zip)
10) Сменить мимикрию у клиента
3) Диагностика
1) Проверить домены из пулов (ping)
2) Тест DPI мимикрии (захват CPS пакета)
4) Бекапы — создать (~/awg_backup/) / восстановить.
5) Туннели и DNS — Warp туннель Cloudflare, шифрованный DNS, каскад на зарубежный VPS.
7) Удаление и сброс — очистить клиентов / удалить всё.
При создании сервера (Сервер → 2) выбирается профиль:
| Профиль | Обфускация | Мимикрия I1 |
|---|---|---|
| Lite | базовая | DNS (icloud.com) |
| Standard | сбалансированная | TLS ClientHello |
| Pro | на выбор (без I1 / +I1 / +I1-I5) | TLS / DNS / SIP / QUIC |
Профили мимикрии (Pro, выбор уровня I1–I5):
- QUIC — Initial 1200 Б по RFC 9000 + короткие заголовки. Единственный профиль, где содержимое пакета — шифротекст: смотреть DPI не на что, а по UDP это настоящий протокол. Есть сообщение из поля, что в РФ проходит.
- DNS — DNS Query c EDNS0 и случайным TXID. Тоже настоящий UDP-протокол и самый компактный: ~40 байт.
- TLS — ClientHello, Chrome-подобный.
⚠️ TLS-записи поверх UDP не существует — настоящий UDP-TLS это DTLS, а у него другой формат записи. Плюс SNI уходит открытым текстом и не совпадает с IP сервера. Сообщение из поля: конфиг с этим профилем не работал в РФ, но работал в ЕС. - SIP — REGISTER-запрос (VoIP). Настоящий UDP-протокол, но целиком открытый текст.
Если конфиг не проходит у конкретного провайдера, профиль меняется у одного клиента без пересоздания: Клиенты → «Сменить мимикрию у клиента». I1–I5 живут только в клиентском конфиге, поэтому сервер и остальные клиенты не затрагиваются.
CPS-пакеты I1–I5 — это клиентские параметры. В серверный
awg0.confони не пишутся (там только Jc/Jmin/Jmax/S/H). Разные клиенты могут иметь разную мимикрию на одном сервере.
I1–I5 уходят перед каждым рукопожатием, поэтому пакеты собираются компактными — но так, чтобы каждый оставался валидным для своего протокола:
| Профиль | Суммарно I1–I5 | Было | Что урезано |
|---|---|---|---|
| DNS | ~200 Б | ~200 Б | ничего — и так минимум |
| TLS | ~1.1 КБ | ~1.7 КБ | пустой legacy_session_id, без padding-расширения и Chrome-специфики (ALPS, compress_certificate, OCSP, SCT), без legacy-шифров |
| QUIC | ~1.5 КБ | ~1.8 КБ | вместо невалидного второго Initial (300–600 Б) идёт 1-RTT пакет |
| SIP | ~2.0 КБ | ~2.7 КБ | без Allow/Supported и длинного User-Agent |
SNI, key_share x25519, supported_versions, ALPN и GREASE в TLS остаются на месте;
в SIP — весь обязательный минимум RFC 3261 плюс Contact и Expires.
QUIC I1 остаётся 1200 Б намеренно: RFC 9000 §14.1
требует этого от любой клиентской датаграммы с Initial — сервер обязан отбросить
короткий Initial, а для DPI это готовая аномалия.
Вернуть прежние размеры: AWG_CPS_FULL=1 sudo -E awg2.
Случайные части I1–I5 не запекаются в конфиг, а описываются тегами, которые клиент
заполняет заново при каждой отправке: <r N> — случайные байты, <rc N> — латинские
буквы. Так client_random в TLS, хвост шифротекста в QUIC и branch/tag/Call-ID
в SIP меняются от рукопожатия к рукопожатию — иначе клиент слал бы байт в байт один и тот
же пакет, а это отпечаток устройства, заметный лучше самого факта VPN.
Побочный эффект — конфиг короче: строка QUIC I1 занимает ~600 символов вместо ~3000 при том же размере пакета в 1200 байт.
Перед генерацией цепочки скрипт спрашивает, куда поедет конфиг. Диапазоны Jc/S/H —
параметры устройства, они одинаковы у сервера и всех клиентов, поэтому выбор влияет
только на I1–I5:
| Клиент | Что учитывается |
|---|---|
| Amnezia VPN / AmneziaWG | всё как обычно |
| Linux / OpenWrt (модуль ядра) | всё как обычно |
| Keenetic (KeeneticOS 4.x) | движок цепочки по исходникам не установлен — предлагается короткий вариант: уровень «+I1» и профиль DNS |
| WireSock (Windows) | цепочку не читает вовсе — конфиг генерируется без I1–I5 |
| Не знаю / разные | всё как обычно, цепочка переносима |
⚠️ WireSock (форк BoringTun) не поддерживает I1–I5: по документации вендора поля «silently ignored». Туннель поднимается, мимикрии в трафике нет, ошибки тоже нет — поэтому скрипт не кладёт их в конфиг, а говорит об этом прямо. ОбфускацияH/S/Jcу WireSock работает в полном объёме.
Используются только теги
b,r,rc,rd— их понимают оба движка (amneziawg-goи модуль ядра).<c>есть только у ядра,<d>/<ds>/<dz>— только у go, а незнакомый тег отвергается вместе со всем пакетом, а не сам по себе.
Все DNS-запросы клиентов идут через DoH (DNS-over-HTTPS) к Cloudflare / Google / Quad9 с проверкой DNSSEC.
Клиент → AWG → DNAT iptables → dnscrypt-proxy → DoH → Cloudflare/Google/Quad9
(порт 53) (127.0.0.1:5300) (HTTPS зашифрованно)
Что даёт:
- Защита от DNS-leak (даже если в конфиге клиента указан 8.8.8.8 — запрос пойдёт через шифрованный канал)
- Провайдер сервера не видит какие домены резолвятся
- DNSSEC защищает от подмены ответов
- No-logging резолверы
Меню:
1) Включить (установить + настроить)
2) Перезапустить сервис
3) Логи
4) Сменить upstream (Cloudflare / Google / Quad9 / комбинации)
5) Выключить и удалить
Опционально — Telegram бот для управления сервером со смартфона. Добавляешь токен от @BotFather, и бот даёт inline-меню с теми же возможностями что и SSH. Управление полностью кнопками, без команд.
Что умеет:
- Список клиентов со статусом (🟢 онлайн / ⚪️ офлайн / 🚫 заблокирован, трафик, маршрут, последний handshake), в два столбца, с пагинацией (
◀️ ▶️ ) — корректно работает при сотнях клиентов ↕️ Сортировка по активным — кнопка поднимает онлайн-клиентов наверх- 🚨 Сигнал при отвале клиента — добавь
#pingв заметку клиента, и если такой клиент пропадает из сети (нет handshake более 5 минут), бот шлёт уведомление (имя, IP, заметка, время пропажи). Чтобы не пропустить упавшее резервирование - Добавить клиента — выбор профиля мимикрии прямо в боте (TLS / DNS / SIP / QUIC / базовый)
- Получить QR-код / .conf файл по любому клиенту (для больших конфигов с I1 QR не помещается — бот автоматически отдаёт
.conf) - 📝 Заметки к клиентам (произвольный текст; маркер
#pingвключает мониторинг) - ☁️ Вкл/выкл WARP для клиента прямо из карточки — синхронизировано с awg2 (policy-routing через
peers.list) - ⏰ Срок действия клиента (1ч / 1д / 7д / 30д / своя дата) с auto-suspend по истечении и уведомлением; снятие срока возвращает доступ
- 🌐 Смена upstream шифрованного DNS (DNSCrypt: Cloudflare / Google / Cisco / Yandex Safe)
- Переименовать / удалить клиента с подтверждением
- Статус сервера (uptime AmneziaWG, IP и порт, профиль, сводка по клиентам и трафику), перезапуск интерфейса, резервная копия
Установка:
Проще всего — через главное меню: sudo awg2 → 6) Telegram-бот → Установить.
Или вручную:
sudo bash -c 'curl -fsSL https://raw.githubusercontent.com/pumbaX/awg-multi-script/main/awg-bot-install.sh -o /tmp/awg-bot-install.sh && bash /tmp/awg-bot-install.sh'В процессе установщик спросит:
- Bot Token — получи у @BotFather:
/newbot→ имя → токен - Telegram ID — твой ID для авторизации (узнать через @userinfobot)
После установки бот стартует как systemd-сервис (awg-bot.service) и сам поднимается при перезагрузке.
Обновление: меню 6) Telegram-бот → Обновить (или пункт 1 в меню установщика, либо sudo awg-bot → 2). Свежая версия тянется с GitHub автоматически, токен и chat_id сохраняются. Переход со старого бота — без потери данных (ADMIN_CHAT_ID переносится в ADMIN_ID автоматически).
Управление в консоли:
sudo awg-bot # меню: установка / обновление / статус / логи / удалениеКоманды бота:
/start— главное меню (inline-кнопки)
Управление сервисом:
sudo systemctl status awg-bot # статус
sudo systemctl restart awg-bot # перезапуск
sudo journalctl -u awg-bot -f # живые логи| Путь | Назначение |
|---|---|
/etc/amnezia/amneziawg/awg0.conf |
Серверный конфиг |
/root/<имя>_awg2.conf |
Клиентские конфиги |
/var/log/awg-Toolza.log |
Лог |
~/awg_backup/ |
Бекапы |
/tmp/awg_domain_cache.txt |
Кэш проверки доменов (пункт 6) |
/usr/local/bin/awg-bot.py |
Код Telegram-бота |
/etc/awg-bot.conf |
Токен и chat_id бота |
/etc/systemd/system/awg-bot.service |
Сервис бота |
/var/log/awg-bot.log |
Лог бота |
AmneziaVPN (Android / iOS / macOS / Windows / Linux):
- QR — Клиенты → 4, сканируй с терминала
- Текст — Клиенты → 5 для больших конфигов (с I1–I5) → копируй в буфер
- Файл —
Добавить туннель → Из файла→ передай/root/<имя>_awg2.confчерез scp
AmneziaWG3.0 — официальное приложение протокола AmneziaWG:
Keenetic — KeeneticOS 4.x+ или AWG Manager на Entware
Проверить свой .conf на валидность, DPI-стойкость и оптимальность параметров можно через AWG Analyzer — полностью локальный JS-инструмент:
- Детект версии (WireGuard / AWG 1.0 / 1.5 / 2.0) + уровень обфускации
- Глубокий разбор I1-I5 (валидность
<b 0x...>, лимит<r>, протокол) - Проверка H1-H4 sub-квадрантов (12/12 = идеал)
- Security / Stealth / DPI score
- Рекомендации CRIT/HIGH/MED/LOW + пошаговый upgrade path
Анализатор обновлён под параметры v6.2 — проверки по официальному мануалу AmneziaWG.
Boosty: https://boosty.to/awgtoolza/donate
YooMoney: https://yoomoney.ru/to/4100119521619579
| Сеть | Адрес |
|---|---|
| USDT TRC20 | TN2rQAsGNHQr8wnneKRD14UMX629D2Ca5q |
| USDT ERC20 | 0x721845234eeC44e0a9BaE78402965828C1bc6c57 |
| USDT TON | UQCwj-RY2a4BH7sIDDeLb77XRaPDq0mb1FVwyC4UaOGbLMYy |
| TON | UQCdQtJO4CF0Lyeb93X2zdeWeAcDJ-ieBC3AaL7LIqWfMBg3 |