From 5031eda81bac6d1dbe556652e37d5b2836f644a2 Mon Sep 17 00:00:00 2001 From: Dushnilin Date: Sat, 22 Aug 2026 20:01:41 +0300 Subject: [PATCH] =?UTF-8?q?docs(kb):=20=D0=B2=D0=B5=D1=80=D0=B8=D1=84?= =?UTF-8?q?=D0=B8=D0=BA=D0=B0=D1=86=D0=B8=D1=8F=20AmneziaWG=20=D0=B2=20sin?= =?UTF-8?q?g-box-extended?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Факты расследования issues #39/#42: extended реализует amnezia целиком (строгий парсер + I1-I5 obf-chain в wireguard-go форке), генерация Tachyon совпадает со схемой; кейс kernel-vs-userspace остаётся внешним, зафиксированы шаги диагностики. --- docs/knowledge-base/04_DPI_BYPASS_ENGINES.md | 32 ++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/docs/knowledge-base/04_DPI_BYPASS_ENGINES.md b/docs/knowledge-base/04_DPI_BYPASS_ENGINES.md index 915722c1..5c6445b2 100644 --- a/docs/knowledge-base/04_DPI_BYPASS_ENGINES.md +++ b/docs/knowledge-base/04_DPI_BYPASS_ENGINES.md @@ -88,3 +88,35 @@ config provider 'byedpi' * Default Zapret v1 queue: `200` * Default Zapret v2 queue: `201` * If both Zapret v1 and v2 are enabled simultaneously for different rules, Tachyon enforces strict queue isolation and prevents PID collisions. + +## 4. AmneziaWG в sing-box-extended: верификация (2026-08) + +Проверено против бинарника релиза `v1.13.18-extended-2.6.5` (shtorm-7/sing-box-extended): + +- `endpoint.amnezia` полностью реализован: `AmneziaOptions` (`transport/wireguard/endpoint_options.go`) + → IPC `jc/jmin/jmax/s1-s4/h1-h4/i1-i5` (`transport/wireguard/endpoint.go`) + → wireguard-go форк `shtorm-7/wireguard-go v0.0.4-extended-1.5.3`: + I1-I5 шлются отдельными пакетами ПЕРЕД handshake initiation + (`device/send.go SendHandshakeInitiation`), формат значения — hex-строка. +- Парсер конфига строгий: неизвестные поля и мусорные значения в `amnezia.*` + дают FATAL при старте, «молчаливого игнорирования» не существует. +- Генерация Tachyon (`generator_outbounds.uc add_awg_endpoint`) совпадает со + схемой форка: peer содержит required `allowed_ips`, `pre_shared_key` и + `persistent_keepalive_interval` опциональны, hex i1-i5 проходит + `uci_bin_to_hex` без двойного кодирования. + +Следствие для диагностики: если AWG/WARP-туннель «TX есть, RX нет» на +sing-box-extended, конфиг секции применён корректно — причина вне Tachyon +(сервер, провайдер, UDP-фильтрация). Чек 6c доктора (1.2.91+) сообщает это +пользователю по свидетельствам из лога ядра. + +Кейс «kernel работает, sing-box нет» с идентичным conf остаётся внешним: +различие в реализации special-handshake между amneziawg-linux kernel-модом +и userspace-форком может быть критично только для конкретных строгих +серверов. Шаги диагностики для таких случаев: + +1. `tcpdump -i any -X udp port <порт>` — сравнить первые байты I1-пакетов + kernel vs sing-box (у special-handshake пакетов префикс `c7`). +2. Временно убрать i1-i5 из секции: если handshake поднимется — сервер + не требует special handshake, а требует его некорректную передачу. +3. Попробовать вариант ядра sing-box-lx как эксперимент.