Skip to content

Repository files navigation

Any Tech ARCHITECT

Русский · English

Открыть генератор AmneziaWG 3.1 XRay REALITY MIT

Конфигурации обфускации — и объяснение каждого числа в них. Всё считается в браузере: ни ключи, ни конфиги никуда не отправляются.


Что это

Инструмент собирает конфигурацию обфускации и объясняет, из чего она состоит. Не «нажми и надейся», а чертёж: у каждого параметра написано, откуда взята его граница, какая сторона его читает и что будет, если стороны разойдутся.

Клиенты умеют генерировать эти параметры сами, и это нормально ровно до того момента, когда туннель не поднимается. Тогда выясняется, что кнопка не объяснила ни что она выбрала, ни что из этого обязано совпасть на сервере.

Движка два, и задача у них одна и та же с разных сторон.

Что делает Параметров
AmneziaWG Прячет тип трафика: junk-пакеты перед хендшейком, паддинг сообщений, подмена байта типа. Снаружи это QUIC, TLS или DNS, а не WireGuard. 23
XRay REALITY поверх VLESS. Снаружи — настоящее рукопожатие чужого сайта с его же сертификатом; внутри — ваш туннель. 74

Important

Проект создан для исследовательских и образовательных целей и никогда не создавался для использования в России или странах СНГ. Применение инструментов обфускации трафика может нарушать законодательство вашей страны — ответственность за использование лежит на вас.


AmneziaWG

Обычный WireGuard слишком легко опознать: фиксированный байт типа сообщения и предсказуемые размеры пакетов (148 байт на handshake initiation, 92 на response) позволяют DPI определить протокол по первому же пакету и заблокировать его целиком.

AmneziaWG добавляет поверх той же криптографии слой обфускации. Architect подбирает его параметры так, чтобы они были корректными, совместимыми с вашим клиентом и не воссоздавали случайно тот самый отпечаток, от которого вы уходите.

Junk Jc/Jmin/Jmax S1 S2 S3 S4 CPS I1–I5 Заголовки H1–H4 Блок 3.x Флаги 3.1
RandomTrailers / DisableCookies
1.0 фиксированные
1.5 только клиент фиксированные
2.0 диапазоны
3.0 диапазоны
3.1 диапазоны

Что добавили 3.0 и 3.1

Параметры выверены по исходникам amneziawg-go v3.0.1, ветки feat/awg3 и тегов v3.1.* репозиториев amneziawg-go и amneziawg-tools, а не по документации — она на момент написания описывает 2.0.

Параметр Что делает
HeaderProtectionKey Общий 32-байтный ключ ChaCha20. Хендшейк и cookie шифруются целиком, транспортные пакеты — только 16-байтный заголовок. В .conf пишется в base64, как PrivateKey; в UAPI — в hex.
ContentPaddingAddition Случайный добавочный паддинг каждого транспортного пакета вместо выравнивания по 16 байт.
RekeyAfterTime
RekeyTimeout
RejectAfterTime
KeepaliveTimeout
MaxHandshakeAttempts
Диапазоны вместо фиксированных констант WireGuard — ровный ритм хендшейков перестаёт быть отпечатком.
RandomTrailers 3.1 Случайный по длине хвост в конце каждого исходящего пакета. Согласования с другой стороной не требует.
DisableCookies 3.1 Устройство молчит вместо отправки Cookie Reply. Ломает keepalive за NAT под нагрузкой, поэтому в генераторе выключен по умолчанию.

Warning

При включённой защите заголовков S1–S4 не могут быть меньше 12. Nonce шифра нигде не передаётся — он берётся из первых 12 байт S-паддинга, и паддингу короче двенадцати байт нечего ему дать. Проверять это на практике не придётся: обе реализации отказываются принимать такой конфиг до подъёма интерфейса — amneziawg-go возвращает S%d must be more then %d to use headerProtection, модуль ядра пишет ту же фразу в лог и возвращает -EINVAL. Интерфейс не поднимется, причина будет названа. Генератор поднимает S до 12 автоматически, а валидатор отклоняет конфиги, где это нарушено.

Теги <d>, <ds> и <dz> в v3.0.1 разбираются парсером, но не подключены к отправке пакетов — это задел под AWG 4.0, поэтому генератор их не выдаёт.

Плюс 11 профилей мимикрии (QUIC Initial, QUIC 0-RTT, TLS 1.3, DTLS 1.3, HTTP/3, SIP, DNS, Noise_IK и композитные) и матрица совместимости на 13 клиентов — у каждого свои потолки, и генератор их знает. Для выбравших mihomo клиентом генератор рядом с .conf отдаёт прокси-блок в его YAML-диалекте.


XRay

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

Architect закрывает 74 параметра ядра Xray, разложенных по секциям:

Секция Что в ней
REALITY dest, serverNames, ключевая пара x25519, shortIds, spiderX, ограничения версий и fallback-лимиты
Транспорт XHTTP со всеми режимами, xmux, sockopt, TCP/WS/gRPC
FinalMask Постобработка потока поверх выбранного транспорта
VLESS flow, encryption, идентификаторы клиентов

Каждый параметр помечен: сгенерирован — выбран за вас; задаётся — можно задать самому, и подсказка объяснит, из чего исходить; не покрыт — честно сказано, что до него ещё не дошли руки.

Note

Домен-донор и адрес вашего сервера — разные вещи, и в интерфейсе они лежат в разных местах. Донор — это чей сертификат вы показываете; сервер — куда на самом деле идёт соединение. Если dest указывает на один сайт, а serverNames называет другой, наблюдатель увидит расхождение с одного пассивного взгляда: Architect на это ругается.

База доменов-доноров — больше 1100 записей с фильтром по регионам, где для каждого указано, что про него известно, а не выдуманный «статус».

Для хостинг-панелей есть отдельная выгрузка: их валидаторы знают только доядровый словарь (tcp вместо raw), и кнопка «для панели» переименовывает ровно эти два места — ядро принимает оба написания.


Инструменты

MergeKeys

MergeKeys

Редактор и объединение ключей vpn://. Обновляйте обфускацию существующего ключа или собирайте контейнеры из нескольких ключей в один мастер-ключ. Всё локально.
Packet Simulator

Packet Simulator

Показывает, как выглядит старт сессии: CPS-цепочка, junk-train, хендшейк и данные. Работает для обоих движков — AmneziaWG и XRay, — учитывает версию и клиента: 1.0 и 1.5 рисуются без того, чего у них нет, а WireSock без цепочки, которую он не отправляет.
FAQ

FAQ

Разбор параметров, различий версий и типичных проблем. Поиск сразу по двум языкам, категории и прямые ссылки на конкретные ответы.
VAIEXIA

VAIEXIA

Веб-панель и бот для Telegram, Discord и Matrix: управление сервером или кластером откуда угодно. Скоро.

Оба генератора умеют batch-генерацию в Web Worker, историю с экспортом в файл и проверку конфигов до передачи в клиент.


Как это проверяется

Заявлять и проверять — разные вещи, поэтому:

  • Конфиги генерируются тысячами и проверяются на инварианты — в том числе на то, что ключевой материал не повторяется между генерациями.
  • Пакеты разбираются как свои протоколы: QUIC по RFC 9000, TLS по 8446, DNS по 1035.
  • Конфигурации XRay скармливаются настоящим ядрам в Docker — по ядру на версию. Одно ядро на всех не доказывает ничего: неизвестные ключи молча игнорируются, и конфиг с несуществующей фичей пройдёт.

Так нашлись три ошибки, которые тесты пропустили бы: VLESS Encryption, предложенный для v25.8.29, где его нет; ML-DSA-65 как необязательный на v25.7.23, где он обязателен; и режим XHTTP, которого нет в v24.11.11.


Приватность

Бэкенда нет — принимать данные попросту нечему. Ни аналитики, ни трекеров, ни cookies, ни сторонних скриптов; шрифты отдаются со своего домена, а не из Google Fonts. Вся случайность берётся из crypto.getRandomValues() с отбраковкой, исключающей смещение по модулю — Math.random() в генераторах нет нигде.

Страницу можно сохранить через Ctrl+S и пользоваться офлайн.


Быстрый старт

Онлайн: architect.vai-rice.space

git clone https://github.com/Vadim-Khristenko/Any-Tech-ARCHITECT.git
cd Any-Tech-ARCHITECT
bun install
bun run dev
Команда Что делает
bun run dev Dev-сервер с HMR
bun run build Продакшн-сборка: заглушки для ботов, sitemap.xml, robots.txt
bun run preview Просмотр собранного проекта
bun run test:run Прогон тестов
bun run typecheck Проверка типов
bun run og Пересборка OG-изображений и превью для GitHub

Запуск без зависимостей

В релизных архивах лежит awg-serve — статический сервер на Rust без единой зависимости, собранный под Linux, macOS и Windows. Ничего ставить не нужно:

bin/awg-serve-linux            # Linux
bin/awg-serve-macos            # macOS
bin\awg-serve-windows.exe      # Windows

Порт по умолчанию 8080 (awg-serve 3000 — свой), --no-open не открывать браузер. Исходник — в tools/awg-serve.

Скрипты scripts/serve.* остаются как альтернатива: они найдут bun, npx или python, а --check покажет, что нашлось, ничего не запуская.

Автономный генератор

Если браузер недоступен — те же правила в виде обычного shell-скрипта, без зависимостей и без сети. Скрипт умеет только AmneziaWG; XRay пока живёт в браузере:

./scripts/awg-gen.sh -v 3.0 -p quic          # один конфиг в stdout
./scripts/awg-gen.sh -v 3.0 -n 5 -d out/     # пять конфигов в каталог
./scripts/awg-gen.sh --help                  # все параметры

Установка на сервер

Конфигурация — половина дела; вторая половина — сервер, который её примет. Для этого есть отдельный проект: awg-containers-and-tools — контейнеры AmneziaWG под все четыре версии протокола (1.0, 1.5, 2.0, 3.0) и утилита awg-tool для развёртывания.

awg-tool gen --version 3.0 --profile quic --client amneziavpn
awg-tool install --host 203.0.113.9 --user root --key ~/.ssh/id_ed25519

Особенно он нужен для 3.0: официальный пайплайн настройки конфигурации этой версии не разбирает, поэтому awg-tool обходит парсер .conf и говорит с демоном напрямую через UAPI-сокет. Параметры рандомизируются на каждое развёртывание — чтобы разные инстансы не выглядели для DPI одинаково.

Проект неофициальный и поддерживается сообществом, как и Architect.

Если GitHub недоступен

Ссылка на GitHub в разделе про заблокированный GitHub — так себе помощь, поэтому вот зеркала на своём Forgejo. Ими можно делиться:

Что Зеркало
Architect (этот репозиторий) git.vai-rice.space/vai_prog/Any-Tech-ARCHITECT
Установщик для сервера git.vai-rice.space/vai_prog/awg-containers-and-tools
Приложения Amnezia git.vai-rice.space/amnezia-vpn
git clone https://git.vai-rice.space/vai_prog/Any-Tech-ARCHITECT.git

Первые два — зеркала моих репозиториев. Третье, с приложениями Amnezia, независимое, а не официальный сайт Amnezia: сверяйте контрольные суммы и подписи релизов перед установкой.


Нашли баг или есть идея?

Пишите — это лучший способ починить то, о чём мы не знаем. Заводите issue, присоединяйтесь к обсуждению в чате, а вскоре и на git.vai-rice.space.

Если проблема в конкретном конфиге, приложите версию AmneziaWG или Xray, клиент и его версию, а также сами параметры — без приватных ключей. Этого почти всегда достаточно, чтобы воспроизвести.

Разбор кода со ссылкой на исходники upstream — самый полезный вид issue, какой тут бывает: так были найдены и исправлены три ошибки в правилах и в тексте, о которых иначе никто бы не узнал.

Как устроена разработка — в CONTRIBUTING.md.


Поддержать

Проект живёт на энтузиазме: ни рекламы, ни спонсоров, ни монетизации.

YooMoney Patreon DaLink

Криптовалюта — BTC, ETH, TON, USDT, TRX, SOL

[!CAUTION] Проверяйте сеть перед отправкой: перевод в неверной сети означает безвозвратную потерю средств.

Монета Сеть Адрес
Bitcoin BTC Bitcoin · Native SegWit bc1qwvfpdhjuzelw8s9vxcfjj6fatnq3cltf0d48jy
Ethereum ETH Ethereum · ERC-20 0x277195Ff068756F09683FAB523b2cdDf8Ef35B44
Toncoin TON The Open Network UQBVdcwKqy8lx_2plsf2YPbcBJdYbPtnKbddmFWZntqiAEME
Tether USDT JETTON · TON UQCaNScHxNbJsCi5Wc47rJqNpJPiDASUlMJ1nRwxq-hXSGoQ
Tron TRX Tron · TRC-20 TC8dYqkDYQkuCKe7A6PWXUgDRB8Rr2Xd9f
Solana SOL Solana 4i2uWx82jhgVorPQyM2y47X2YvRgCVNNWPfNmVrGcCaE

О проекте

Другие мои проекты — на vai-rice.space

Основано на идеях Special Junk Packet List от @VoidWaifu

MIT · Сделано для сообщества AmneziaVPN

About

Any Tech ARCHITECT modern obfuscation generator for you.

Topics

Resources

Contributing

Stars

321 stars

Watchers

5 watching

Forks

Releases

Packages

Used by

Contributors

Languages