From 7b15aacbfef2219ba4eea47c8d6245a000a29e36 Mon Sep 17 00:00:00 2001 From: Leadaxe <247031499+Leadaxe@users.noreply.github.com> Date: Tue, 9 Jun 2026 18:05:40 +0300 Subject: [PATCH] docs: spell out why neither fork alone works (each gives half) before the merge rationale --- README.md | 7 +++++++ README.ru.md | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/README.md b/README.md index f62356a..dd92535 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,13 @@ So neither fork alone works for sing-box-lx: | `amnezia-vpn/amneziawg-go` | ❌ | ✅ | | **this fork** | ✅ | ✅ | +Each existing fork gives exactly **half** of what's needed: + +- **Take `sagernet/wireguard-go`** → sing-box-lx compiles and runs, but the AWG fields (`jc`/`h1`/`i1`…) do nothing → **no obfuscation**; AmneziaWG doesn't actually work. +- **Take `amnezia-vpn/amneziawg-go`** → the obfuscation is there, but sing-box-lx **won't even compile** (the sagernet functions are missing). + +We need **both** ✅ at once, and no ready-made fork has them — so we built one by **merging**: sagernet (for the API) + amnezia (for the obfuscation). That is exactly the **"this fork"** row above. + The approach: **keep the sagernet base and graft the obfuscation onto it** — rather than the reverse (adding sagernet's APIs to amneziawg-go, which would route even plain WireGuard through a foreign device). This way sing-box compiles unchanged, the obfuscation is additive and off by default, and a config without AWG fields behaves exactly like plain WireGuard. ## How the merge works diff --git a/README.ru.md b/README.ru.md index 842ba7c..7482bd4 100644 --- a/README.ru.md +++ b/README.ru.md @@ -21,6 +21,13 @@ WireGuard-endpoint sing-box нуждается в добавках **sagernet/wi | `amnezia-vpn/amneziawg-go` | ❌ | ✅ | | **этот форк** | ✅ | ✅ | +Каждый существующий форк даёт ровно **половину** нужного: + +- **возьмёшь `sagernet/wireguard-go`** → sing-box-lx соберётся и запустится, но AWG-поля (`jc`/`h1`/`i1`…) ничего не сделают → **обфускации нет**; AmneziaWG не работает; +- **возьмёшь `amnezia-vpn/amneziawg-go`** → обфускация есть, но sing-box-lx **не скомпилируется** (нет sagernet-функций). + +Нужны **обе** ✅ сразу, а готового форка с двумя галочками не существует — поэтому мы собрали его **слиянием**: sagernet (за API) + amnezia (за обфускацию). Это ровно строка **«этот форк»** выше. + Подход: **берём sagernet-базу и граффтим обфускацию на неё** — а не наоборот (не дотачиваем sagernet-API к amneziawg-go, иначе даже обычный WireGuard шёл бы через чужой device). Так sing-box компилируется без изменений, обфускация аддитивна и выключена по умолчанию, а конфиг без AWG-полей ведёт себя как обычный WireGuard. ## Как устроен merge