mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-09-05 09:57:14 +00:00
docs: update all 7 READMEs for the embedded AmneziaWG architecture
Replace the kernel-module/DKMS/awg-quick description (What's different, Supported Platforms, Acknowledgment) with the embedded amneziawg-go + gVisor architecture, and note the temporarily-unsupported per-client IPv6 identity and port-forwarding gap until their fast-follow releases.
This commit is contained in:
+10
-12
@@ -24,15 +24,12 @@
|
||||
|
||||
[AmneziaWG](https://github.com/amnezia-vpn/amneziawg-linux-kernel-module) هو نسخة من WireGuard تضيف طبقة تمويه (حزم مهملة، حشو عشوائي، إعادة كتابة رؤوس سحرية) مصممة لهزيمة أخذ البصمات القائم على DPI للبروتوكول — نفس النفق، لكنه لا يبدو كنفق على السلك.
|
||||
|
||||
- **نيتيف، وليس Docker.** يعمل AmneziaWG كواجهة نواة حقيقية على المضيف، تُرفَع وتُخفَض عبر `awg-quick`/`awg` — نفس نهج وحدة النواة DKMS التي تمنحك واجهة `wg0` نيتيف. لا حاجة لحاوية جانبية ذات صلاحيات مرتفعة.
|
||||
- **مدمج، وليس وحدة نواة (kernel module).** يعمل AmneziaWG بالكامل داخل عملية اللوحة نفسها ([amneziawg-go](https://github.com/amnezia-vpn/amneziawg-go) فوق مكدّس شبكة يعمل في مساحة المستخدم) — لا حاجة لبناء DKMS، ولا تعارض مع Secure Boot، ولا حاوية جانبية ذات صلاحيات مرتفعة، ولا أي شيء يُثبَّت على المضيف إطلاقًا.
|
||||
- **بروتوكول من الدرجة الأولى.** يعيش اتصال AmneziaWG الوارد في نفس جدول `Inbound` مثل البقية، لذا يحصل مجانًا على العمليات الجماعية (bulk operations)، ونافذة رمز QR/تنزيل التكوين، وروابط الاشتراك — لا يوجد شيء جديد لتعلّمه.
|
||||
- **تمويه AmneziaWG 2.0 الكامل** — Jc/Jmin/Jmax (الحزم المهملة)، وS1–S4 (حشو الحزم)، وH1–H4 (الرؤوس السحرية)، وحزمة التوقيع I1، جميعها قابلة للتعديل لكل اتصال وارد مع زر عشوائي بنقرة واحدة، بالإضافة إلى وضع متوافق مع 1.x للعملاء القدامى.
|
||||
- **دعم IPv6 نيتيف**، مع وكيل NDP لكل عميل بحيث يحصل كل نظير على عنوان IPv6 يمكن الوصول إليه مباشرة — بدون NAT66.
|
||||
- **إعادة توجيه المنافذ لكل عميل** — DNAT لمنافذ/نطاقات محددة مباشرة إلى عنوان نفق نظير واحد.
|
||||
- **توجيه ترافيك عميل عبر Xray** — يحصل كل اتصال AmneziaWG الوارد تلقائيًا على جسر Xray الخاص به عبر loopback (بدون أي مفتاح تبديل)؛ يتم توجيه ترافيك أي عميل إلى أي اتصال صادر مُهيّأ في Xray من خلال صفحة "التوجيه" الموجودة مسبقًا في اللوحة، تمامًا كما تُوجَّه أي بروتوكول آخر.
|
||||
- **يقوم `install.sh` بتثبيت وحدة النواة نيابةً عنك** على Ubuntu/Debian/Armbian (`ppa:amnezia/ppa`)، مع بديل احتياطي للتوزيعات الأخرى. الشيء الوحيد الذي لا يمكنه فعله من أجلك: **تعطيل Secure Boot** على خادمك الافتراضي (VPS/VM) مسبقًا — وحدة نواة مبنية بواسطة DKMS غير موقّعة، ولن تحمّلها النواة طالما كان Secure Boot مفعّلاً.
|
||||
- تتم المطابقة (reconcile) تمامًا كما تدير [`internal/mtproto`](internal/mtproto) الحاوية الجانبية `mtg`: تُبقي مهمة خلفية الواجهة قيد التشغيل متزامنة مع ما هو مخزَّن في قاعدة البيانات، وتطبّق تغييرات النظير عبر `awg syncconf` بدلاً من إعادة تشغيل الواجهة بالكامل كلما أمكن ذلك.
|
||||
- **روابط مشاركة `vpn://` حقيقية** — أصبح رابط النسخ/رمز QR الخاص بكل عميل ونقطة نهاية الاشتراك يُصدران الآن مخطط `vpn://` الفعلي الذي يتوقعه تطبيق AmneziaVPN الرسمي (base64url لملف `.conf` عادي)، بدلاً من تنسيق URI مُخترَع لم يكن التطبيق قادرًا على استيراده.
|
||||
- **ترافيك كل عميل يمر بالفعل عبر Xray.** لا TPROXY، ولا جسر يحتاج إلى تفعيل منفصل: كل اتصال AmneziaWG وارد يُوجَّه مباشرة إلى اتصال Xray SOCKS5 وارد خاص به عبر loopback، لذا إحصاءات كل عميل، وحالة الاتصال، والـ sniffing، وقواعد صفحة "التوجيه" الموجودة مسبقًا في اللوحة، كل ذلك يعمل تلقائيًا تمامًا كما هو الحال مع أي بروتوكول آخر — بلا أي إعداد إضافي.
|
||||
- **روابط مشاركة `vpn://` حقيقية** — رابط النسخ/رمز QR الخاص بكل عميل ونقطة نهاية الاشتراك يُصدران مخطط `vpn://` الفعلي الذي يتوقعه تطبيق AmneziaVPN الرسمي (base64url لملف `.conf` عادي)، بدلاً من تنسيق URI مُخترَع لم يكن التطبيق قادرًا على استيراده.
|
||||
- **غير مدعوم مؤقتًا** بعد هذا التحول: عنوان IPv6 عام مستقل لكل عميل، وإعادة توجيه المنافذ لكل عميل، كلاهما كان يعتمد على قواعد iptables على مستوى المضيف الخاصة بوحدة النواة القديمة، والتي لا يوجد لها بعد ما يعادلها في البنية المدمجة. كلاهما مخطط له كإصدارين لاحقين قريبًا؛ الإعدادات الحالية لأي منهما لم تُفقد، بل أصبحت فقط غير فعّالة حتى ذلك الحين.
|
||||
|
||||
## تغييرات أخرى في هذه النسخة
|
||||
|
||||
@@ -121,11 +118,11 @@ curl -fsSL https://raw.githubusercontent.com/Kuzz007/3x-ui/main/install.sh | bas
|
||||
|
||||
## المنصات المدعومة
|
||||
|
||||
**أنظمة التشغيل:** Ubuntu، Debian، Armbian، Fedora، CentOS، RHEL، AlmaLinux، Rocky Linux، Oracle Linux، Amazon Linux، Virtuozzo، Arch، Manjaro، Parch، openSUSE (Tumbleweed / Leap) و Alpine. (ينشر المشروع الأصلي أيضًا إصدارًا لـ Windows؛ لا تفعل CI هذه النسخة ذلك — كل شيء هنا موجَّه للخوادم/أجهزة التوجيه العاملة بلينكس، ويحتاج AmneziaWG على أي حال إلى وحدة نواة لينكس.)
|
||||
**أنظمة التشغيل:** Ubuntu، Debian، Armbian، Fedora، CentOS، RHEL، AlmaLinux، Rocky Linux، Oracle Linux، Amazon Linux، Virtuozzo، Arch، Manjaro، Parch، openSUSE (Tumbleweed / Leap) و Alpine. (ينشر المشروع الأصلي أيضًا إصدارًا لـ Windows؛ لا تفعل CI هذه النسخة ذلك — كل شيء هنا موجَّه للخوادم/أجهزة التوجيه العاملة بلينكس.)
|
||||
|
||||
**المعماريات:** `amd64` · `386` · `arm64` (aarch64) · `armv7` · `armv6` · `armv5` · `s390x`.
|
||||
|
||||
يحتاج AmneziaWG تحديدًا إلى نواة لينكس حقيقية مع وحدة نواة DKMS خاصة بـ AmneziaWG — لن يعمل على Windows، ويقوم `install_amneziawg` اليوم بأتمتة تثبيت وحدة النواة فقط على Ubuntu/Debian/Armbian (راجع قسم [ما الذي يختلف في هذه النسخة](#ما-الذي-يختلف-في-هذه-النسخة-amneziawg)).
|
||||
AmneziaWG مدمج داخل ملف اللوحة التنفيذي نفسه (راجع قسم [ما الذي يختلف في هذه النسخة](#ما-الذي-يختلف-في-هذه-النسخة-amneziawg)) — لا وحدة نواة، ولا خطوة تثبيت منفصلة، ولا إعداد خاص بكل توزيعة.
|
||||
|
||||
## خيارات قاعدة البيانات
|
||||
|
||||
@@ -195,10 +192,11 @@ English · فارسی · العربية · 中文(简体) · 中文(繁體
|
||||
<img src="./media/donation-button-black.svg" alt="Crypto donation button by NOWPayments">
|
||||
</a>
|
||||
|
||||
استندت عملية تنفيذ AmneziaWG النيتيف في هذه النسخة إلى/استُلهمت من:
|
||||
استندت عملية تنفيذ AmneziaWG في هذه النسخة إلى/استُلهمت من:
|
||||
|
||||
- [MHSanaei/3x-ui#6086](https://github.com/MHSanaei/3x-ui/pull/6086) — طلب السحب الأصلي لدعم AmneziaWG في المشروع الأصلي (نهج حاوية Docker الجانبية)؛ تعيد هذه النسخة استخدام بنية المخطط (schema) والواجهة الأمامية الخاصة به، لكنها تستبدل الواجهة الخلفية بمدير نيتيف بدون Docker.
|
||||
- [coinman-dev/3ax-ui](https://github.com/coinman-dev/3ax-ui) — نسخة محسّنة مستقلة تُشغّل بالفعل AmneziaWG النيتيف في بيئة إنتاجية؛ استُمدت إدارة عملية `awg-quick`، وتوليد التكوين، ومولّد معاملات تمويه AmneziaWG 2.0 في هذه النسخة من حزمة `awg/` الخاصة بها.
|
||||
- [amnezia-vpn/amneziawg-go](https://github.com/amnezia-vpn/amneziawg-go) — تنفيذ AmneziaWG في مساحة المستخدم الذي تُدمجه هذه النسخة مباشرةً داخل عملية اللوحة، فوق مكدّس شبكة [gVisor](https://gvisor.dev/)، ليحل محل الواجهة الخلفية القديمة القائمة على وحدة النواة أدناه.
|
||||
- [MHSanaei/3x-ui#6086](https://github.com/MHSanaei/3x-ui/pull/6086) — طلب السحب الأصلي لدعم AmneziaWG في المشروع الأصلي (نهج حاوية Docker الجانبية)؛ تعيد هذه النسخة استخدام بنية المخطط (schema) والواجهة الأمامية الخاصة به.
|
||||
- [coinman-dev/3ax-ui](https://github.com/coinman-dev/3ax-ui) — نسخة محسّنة مستقلة تُشغّل بالفعل AmneziaWG النيتيف في بيئة إنتاجية؛ المدير الأصلي لهذه النسخة القائم على وحدة النواة (`awg-quick`) ومولّد معاملات تمويه AmneziaWG 2.0 استُمدّا من حزمة `awg/` الخاصة بها قبل هذا التحول.
|
||||
|
||||
## شكر خاص إلى
|
||||
|
||||
|
||||
+10
-12
@@ -24,15 +24,12 @@ Este fork se construyó para funcionar en los routers y servidores personales de
|
||||
|
||||
[AmneziaWG](https://github.com/amnezia-vpn/amneziawg-linux-kernel-module) es una variante de WireGuard que añade una capa de ofuscación (paquetes basura, relleno aleatorio, reescritura de cabeceras mágicas) diseñada para vencer la identificación de huella digital de protocolo basada en DPI — el mismo túnel, pero uno que ya no parece un túnel en el cable.
|
||||
|
||||
- **Nativo, no Docker.** AmneziaWG se ejecuta como una interfaz de kernel real en el host, activada y desactivada mediante `awg-quick`/`awg` — el mismo enfoque de módulo de kernel DKMS que te da una interfaz `wg0` nativa. No se necesita ningún contenedor sidecar con privilegios.
|
||||
- **Integrado, no un módulo de kernel.** AmneziaWG se ejecuta enteramente dentro del propio proceso del panel ([amneziawg-go](https://github.com/amnezia-vpn/amneziawg-go) sobre una pila de red en espacio de usuario) — sin compilación DKMS, sin conflictos con Secure Boot, sin contenedor sidecar con privilegios, y nada que instalar en el host en absoluto.
|
||||
- **Un protocolo de primera clase.** Una entrada AmneziaWG vive en la misma tabla `Inbound` que el resto, por lo que obtiene gratuitamente las operaciones masivas, el modal de código QR/descarga de configuración y los enlaces de suscripción — nada nuevo que aprender.
|
||||
- **Ofuscación completa de AmneziaWG 2.0** — Jc/Jmin/Jmax (paquetes basura), S1–S4 (relleno de paquetes), H1–H4 (cabeceras mágicas) y el paquete de firma I1, todos editables por entrada con un botón de aleatorización de un solo clic, además de un modo compatible con 1.x para clientes más antiguos.
|
||||
- **IPv6 nativo**, con proxy NDP por cliente para que cada par obtenga una dirección IPv6 directamente accesible — sin NAT66.
|
||||
- **Reenvío de puertos por cliente** — DNAT de puertos/rangos específicos directamente a la dirección de túnel de un par.
|
||||
- **Enrutamiento del tráfico de un cliente a través de Xray** — cada entrada AmneziaWG obtiene automáticamente su propio puente Xray por loopback (sin ningún interruptor); enruta el tráfico de cualquier cliente hacia cualquier salida de Xray configurada desde la página de "Enrutamiento" ya existente en el panel, exactamente igual que al enrutar cualquier otro protocolo.
|
||||
- **`install.sh` instala el módulo de kernel por ti** en Ubuntu/Debian/Armbian (`ppa:amnezia/ppa`), con una alternativa de respaldo para otras distribuciones. Lo único que no puede hacer por ti: **deshabilitar Secure Boot** en tu VPS/VM de antemano — un módulo compilado con DKMS no está firmado, y el kernel se negará a cargarlo mientras Secure Boot esté habilitado.
|
||||
- La reconciliación se realiza exactamente igual que como [`internal/mtproto`](internal/mtproto) gestiona el sidecar `mtg`: un trabajo en segundo plano mantiene la interfaz en ejecución sincronizada con lo almacenado en la base de datos, aplicando los cambios de pares mediante `awg syncconf` en lugar de un reinicio completo de la interfaz siempre que sea posible.
|
||||
- **Enlaces de compartición `vpn://` reales** — el enlace de copia/código QR por cliente y el endpoint de suscripción ahora emiten el esquema `vpn://` real que espera la aplicación oficial AmneziaVPN (base64url de un `.conf` plano), no un formato de URI inventado que la app no podía importar.
|
||||
- **El tráfico de cada cliente ya pasa por Xray.** Sin TPROXY, sin un puente que activar aparte: cada entrada AmneziaWG reenvía directamente al propio inbound SOCKS5 de Xray por loopback, por lo que las estadísticas por cliente, el estado en línea, el sniffing y las reglas de la página "Enrutamiento" ya existente en el panel simplemente funcionan, igual que con cualquier otro protocolo — sin configuración adicional.
|
||||
- **Enlaces de compartición `vpn://` reales** — el enlace de copia/código QR por cliente y el endpoint de suscripción emiten el esquema `vpn://` real que espera la aplicación oficial AmneziaVPN (base64url de un `.conf` plano), no un formato de URI inventado que la app no podía importar.
|
||||
- **Temporalmente sin soporte** tras esta reescritura: una dirección IPv6 pública distinta por cliente y el reenvío de puertos por cliente dependían ambos de las reglas de iptables a nivel de host del antiguo módulo de kernel, que aún no tienen un equivalente integrado. Ambos están planificados como próximas versiones; la configuración ya guardada de cualquiera de los dos no se pierde, simplemente queda inactiva hasta entonces.
|
||||
|
||||
## Otros cambios en este fork
|
||||
|
||||
@@ -121,11 +118,11 @@ ninguna pregunta, generando credenciales aleatorias y escribiéndolas en
|
||||
|
||||
## Plataformas Compatibles
|
||||
|
||||
**Sistemas operativos:** Ubuntu, Debian, Armbian, Fedora, CentOS, RHEL, AlmaLinux, Rocky Linux, Oracle Linux, Amazon Linux, Virtuozzo, Arch, Manjaro, Parch, openSUSE (Tumbleweed / Leap) y Alpine. (El proyecto original también publica una versión para Windows; la CI de este fork no lo hace — todo aquí está orientado a servidores/routers que ejecutan Linux, y AmneziaWG necesita un módulo de kernel de Linux de todos modos.)
|
||||
**Sistemas operativos:** Ubuntu, Debian, Armbian, Fedora, CentOS, RHEL, AlmaLinux, Rocky Linux, Oracle Linux, Amazon Linux, Virtuozzo, Arch, Manjaro, Parch, openSUSE (Tumbleweed / Leap) y Alpine. (El proyecto original también publica una versión para Windows; la CI de este fork no lo hace — todo aquí está orientado a servidores/routers que ejecutan Linux.)
|
||||
|
||||
**Arquitecturas:** `amd64` · `386` · `arm64` (aarch64) · `armv7` · `armv6` · `armv5` · `s390x`.
|
||||
|
||||
AmneziaWG requiere específicamente un kernel de Linux real con el módulo de kernel DKMS de AmneziaWG — no funcionará en Windows, y `install_amneziawg` hoy solo automatiza la instalación del módulo de kernel en Ubuntu/Debian/Armbian (consulta la sección [En qué se diferencia este fork](#en-qué-se-diferencia-este-fork-amneziawg)).
|
||||
AmneziaWG está integrado directamente en el propio binario del panel (consulta la sección [En qué se diferencia este fork](#en-qué-se-diferencia-este-fork-amneziawg)) — sin módulo de kernel, sin paso de instalación aparte, sin configuración específica por distribución.
|
||||
|
||||
## Opciones de Base de Datos
|
||||
|
||||
@@ -195,10 +192,11 @@ Este fork está construido enteramente sobre [MHSanaei/3x-ui](https://github.com
|
||||
<img src="./media/donation-button-black.svg" alt="Crypto donation button by NOWPayments">
|
||||
</a>
|
||||
|
||||
La implementación nativa de AmneziaWG en este fork se basa en / está inspirada por:
|
||||
La implementación de AmneziaWG en este fork se basa en / está inspirada por:
|
||||
|
||||
- [MHSanaei/3x-ui#6086](https://github.com/MHSanaei/3x-ui/pull/6086) — el pull request original de AmneziaWG contra el proyecto original (enfoque de sidecar Docker); este fork reutiliza su estructura de schema/frontend pero reemplaza el backend por un gestor nativo sin Docker.
|
||||
- [coinman-dev/3ax-ui](https://github.com/coinman-dev/3ax-ui) — un fork independiente que ya ejecuta AmneziaWG nativo en producción; la gestión del proceso `awg-quick`, la generación de configuración y el generador de parámetros de ofuscación de AmneziaWG 2.0 de este fork provienen de su paquete `awg/`.
|
||||
- [amnezia-vpn/amneziawg-go](https://github.com/amnezia-vpn/amneziawg-go) — la implementación de AmneziaWG en espacio de usuario que este fork integra directamente en el proceso del panel, sobre una pila de red [gVisor](https://gvisor.dev/), sustituyendo al backend original basado en módulo de kernel de abajo.
|
||||
- [MHSanaei/3x-ui#6086](https://github.com/MHSanaei/3x-ui/pull/6086) — el pull request original de AmneziaWG contra el proyecto original (enfoque de sidecar Docker); este fork reutiliza su estructura de schema/frontend.
|
||||
- [coinman-dev/3ax-ui](https://github.com/coinman-dev/3ax-ui) — un fork independiente que ya ejecuta AmneziaWG nativo en producción; el gestor original de este fork basado en el módulo de kernel (`awg-quick`) y el generador de parámetros de ofuscación de AmneziaWG 2.0 se portaron desde su paquete `awg/` antes de esta reescritura.
|
||||
|
||||
## Un Agradecimiento Especial a
|
||||
|
||||
|
||||
+10
-12
@@ -24,15 +24,12 @@
|
||||
|
||||
[AmneziaWG](https://github.com/amnezia-vpn/amneziawg-linux-kernel-module) نسخهای از WireGuard است با یک لایهی مبهمسازی اضافه (بستههای زباله، پدینگ تصادفی، بازنویسی سرآیندهای جادویی) که برای شکست دادن اثرانگشتگیری پروتکل مبتنی بر DPI طراحی شده — همان تونل، اما تونلی که روی سیم شبیه تونل به نظر نمیرسد.
|
||||
|
||||
- **نیتیو، نه Docker.** AmneziaWG بهعنوان یک اینترفیس واقعی کرنل روی هاست اجرا میشود، با `awg-quick`/`awg` بالا و پایین میآید — همان رویکرد ماژول کرنل DKMS که یک اینترفیس نیتیو `wg0` دارد. هیچ کانتینر سایدکار ممتازی لازم نیست.
|
||||
- **جاسازیشده (embedded)، نه یک ماژول کرنل.** AmneziaWG کاملاً درون خود پروسهی پنل اجرا میشود ([amneziawg-go](https://github.com/amnezia-vpn/amneziawg-go) روی یک پشتهی شبکه در فضای کاربر) — بدون نیاز به بیلد DKMS، بدون تداخل با Secure Boot، بدون کانتینر سایدکار ممتاز، و اصلاً چیزی برای نصب روی هاست وجود ندارد.
|
||||
- **یک پروتکل درجهیک.** یک اینباند AmneziaWG در همان جدول `Inbound` بقیهی موارد زندگی میکند، پس bulk-operations، مودال QR/دانلود کانفیگ و لینکهای سابسکریپشن را رایگان دریافت میکند — چیز جدیدی برای یادگیری نیست.
|
||||
- **مبهمسازی کامل AmneziaWG 2.0** — Jc/Jmin/Jmax (بستههای زباله)، S1–S4 (پدینگ بسته)، H1–H4 (سرآیندهای جادویی) و بستهی امضای I1، همه بهازای هر اینباند با یک دکمهی تصادفیسازی یککلیکی قابل ویرایشاند، بهعلاوهی یک حالت سازگار با 1.x برای کلاینتهای قدیمیتر.
|
||||
- **IPv6 نیتیو**، با پراکسی NDP بهازای هر کلاینت تا هر پیر یک آدرس IPv6 مستقیماً در دسترس داشته باشد — بدون NAT66.
|
||||
- **پروبرت پورت بهازای هر کلاینت** — DNAT کردن پورتها/محدودههای مشخص مستقیماً به آدرس تونل یک پیر.
|
||||
- **مسیریابی ترافیک یک کلاینت از طریق Xray** — هر اینباند AmneziaWG بهطور خودکار پل loopback مخصوص به خودش را در Xray دریافت میکند (بدون هیچ سوئیچی)؛ مسیریابی ترافیک هر کلاینت به هر outbound پیکربندیشده در Xray از طریق صفحهی «مسیریابی» موجود در پنل انجام میشود، دقیقاً مثل مسیریابی هر پروتکل دیگر.
|
||||
- **`install.sh` ماژول کرنل را برایتان نصب میکند** روی Ubuntu/Debian/Armbian (`ppa:amnezia/ppa`)، با یک fallback برای سایر توزیعها. یک کار که نمیتواند برایتان انجام دهد: **غیرفعال کردن Secure Boot** روی VPS/VMتان از قبل — یک ماژول ساختهشده با DKMS امضا نشده است و کرنل تا زمانی که Secure Boot فعال باشد از بارگذاری آن خودداری میکند.
|
||||
- تطبیق (reconcile) دقیقاً مثل نحوهی مدیریت سایدکار `mtg` توسط [`internal/mtproto`](internal/mtproto) انجام میشود: یک جاب پسزمینه اینترفیس در حال اجرا را با آنچه در پایگاهداده ذخیره شده هماهنگ نگه میدارد، و تغییرات پیر را از طریق `awg syncconf` بهجای ریاستارت کامل اینترفیس، در جایی که ممکن باشد، اعمال میکند.
|
||||
- **لینکهای اشتراکگذاری واقعی `vpn://`** — لینک کپی/QR هر کلاینت و endpoint سابسکریپشن اکنون همان طرح واقعی `vpn://` را که اپ رسمی AmneziaVPN انتظار دارد تولید میکنند (base64url یک فایل `.conf` ساده)، نه یک فرمت URI ساختگی که آن اپ نمیتوانست وارد کند.
|
||||
- **ترافیک هر کلاینت همین حالا از Xray عبور میکند.** بدون TPROXY، بدون پلی که لازم باشد جداگانه فعال شود: هر اینباند AmneziaWG مستقیماً به اینباند SOCKS5 مخصوص به خودش در Xray از طریق loopback ریلی میشود، پس آمار هر کلاینت، وضعیت آنلاین، sniffing و قوانین صفحهی «مسیریابی» موجود در پنل، همگی دقیقاً مثل هر پروتکل دیگری بهطور خودکار کار میکنند — بدون هیچ پیکربندی اضافهای.
|
||||
- **لینکهای اشتراکگذاری واقعی `vpn://`** — لینک کپی/QR هر کلاینت و endpoint سابسکریپشن همان طرح واقعی `vpn://` را که اپ رسمی AmneziaVPN انتظار دارد تولید میکنند (base64url یک فایل `.conf` ساده)، نه یک فرمت URI ساختگی که آن اپ نمیتوانست وارد کند.
|
||||
- **موقتاً پشتیبانی نمیشود** پس از این بازنویسی: یک آدرس IPv6 عمومی مجزا بهازای هر کلاینت و پروبرت پورت بهازای هر کلاینت، هر دو به قوانین iptables در سطح هاست ماژول کرنل قدیمی متکی بودند که هنوز معادلی در معماری جاسازیشده ندارند. هر دو بهعنوان نسخههای بعدی و نزدیک برنامهریزی شدهاند؛ تنظیمات ذخیرهشدهی موجود برای هرکدام از بین نرفته، فقط تا آن زمان غیرفعال است.
|
||||
|
||||
## سایر تغییرات این فورک
|
||||
|
||||
@@ -121,11 +118,11 @@ curl -fsSL https://raw.githubusercontent.com/Kuzz007/3x-ui/main/install.sh | bas
|
||||
|
||||
## پلتفرمهای پشتیبانیشده
|
||||
|
||||
**سیستمعاملها:** Ubuntu، Debian، Armbian، Fedora، CentOS، RHEL، AlmaLinux، Rocky Linux، Oracle Linux، Amazon Linux، Virtuozzo، Arch، Manjaro، Parch، openSUSE (Tumbleweed / Leap) و Alpine. (پروژهی اصلی یک نسخهی Windows نیز منتشر میکند؛ CI این فورک این کار را نمیکند — همهچیز اینجا سرورها/روترهای لینوکسی را هدف قرار میدهد، و AmneziaWG در هر صورت به یک ماژول کرنل لینوکس نیاز دارد.)
|
||||
**سیستمعاملها:** Ubuntu، Debian، Armbian، Fedora، CentOS، RHEL، AlmaLinux، Rocky Linux، Oracle Linux، Amazon Linux، Virtuozzo، Arch، Manjaro، Parch، openSUSE (Tumbleweed / Leap) و Alpine. (پروژهی اصلی یک نسخهی Windows نیز منتشر میکند؛ CI این فورک این کار را نمیکند — همهچیز اینجا سرورها/روترهای لینوکسی را هدف قرار میدهد.)
|
||||
|
||||
**معماریها:** `amd64` · `386` · `arm64` (aarch64) · `armv7` · `armv6` · `armv5` · `s390x`.
|
||||
|
||||
AmneziaWG بهطور خاص به یک کرنل واقعی لینوکس با ماژول DKMS مربوط به AmneziaWG نیاز دارد — روی Windows بالا نخواهد آمد، و `install_amneziawg` امروز فقط نصب ماژول کرنل را روی Ubuntu/Debian/Armbian خودکار میکند (به بخش [تفاوت این فورک](#تفاوت-این-فورک-amneziawg) مراجعه کنید).
|
||||
AmneziaWG مستقیماً درون خود باینری پنل جاسازی شده است (به بخش [تفاوت این فورک](#تفاوت-این-فورک-amneziawg) مراجعه کنید) — بدون ماژول کرنل، بدون مرحلهی نصب جداگانه، بدون تنظیمات مخصوص هر توزیع.
|
||||
|
||||
## گزینههای پایگاهداده
|
||||
|
||||
@@ -195,10 +192,11 @@ English · فارسی · العربية · 中文(简体) · 中文(繁體
|
||||
<img src="./media/donation-button-black.svg" alt="Crypto donation button by NOWPayments">
|
||||
</a>
|
||||
|
||||
پیادهسازی نیتیو AmneziaWG در این فورک برگرفته از/الهامگرفته از موارد زیر است:
|
||||
پیادهسازی AmneziaWG در این فورک برگرفته از/الهامگرفته از موارد زیر است:
|
||||
|
||||
- [MHSanaei/3x-ui#6086](https://github.com/MHSanaei/3x-ui/pull/6086) — پولریکوئست اصلی AmneziaWG علیه پروژهی اصلی (رویکرد Docker-sidecar)؛ این فورک ساختار schema/UI فرانتاند آن را دوباره استفاده میکند اما بکاند را با یک مدیر نیتیو و بدون Docker جایگزین میکند.
|
||||
- [coinman-dev/3ax-ui](https://github.com/coinman-dev/3ax-ui) — یک فورک مستقل که از قبل AmneziaWG نیتیو را در محیط تولید اجرا میکند؛ مدیریت فرآیند `awg-quick`، تولید کانفیگ و تولیدکنندهی پارامتر مبهمسازی AmneziaWG 2.0 این فورک از پکیج `awg/` آن برگرفته شده است.
|
||||
- [amnezia-vpn/amneziawg-go](https://github.com/amnezia-vpn/amneziawg-go) — پیادهسازی AmneziaWG در فضای کاربر که این فورک مستقیماً درون پروسهی پنل، روی پشتهی شبکهی [gVisor](https://gvisor.dev/)، جاسازی میکند و جایگزین بکاند قدیمی مبتنی بر ماژول کرنل در زیر میشود.
|
||||
- [MHSanaei/3x-ui#6086](https://github.com/MHSanaei/3x-ui/pull/6086) — پولریکوئست اصلی AmneziaWG علیه پروژهی اصلی (رویکرد Docker-sidecar)؛ این فورک ساختار schema/UI فرانتاند آن را دوباره استفاده میکند.
|
||||
- [coinman-dev/3ax-ui](https://github.com/coinman-dev/3ax-ui) — یک فورک مستقل که از قبل AmneziaWG نیتیو را در محیط تولید اجرا میکند؛ مدیر قدیمی این فورک مبتنی بر ماژول کرنل (`awg-quick`) و تولیدکنندهی پارامتر مبهمسازی AmneziaWG 2.0 پیش از این بازنویسی از پکیج `awg/` آن برگرفته شده بودند.
|
||||
|
||||
## تشکر ویژه از
|
||||
|
||||
|
||||
@@ -24,15 +24,12 @@ This fork exists to run the author's own routers and servers; it isn't trying to
|
||||
|
||||
[AmneziaWG](https://github.com/amnezia-vpn/amneziawg-linux-kernel-module) is WireGuard with an added obfuscation layer (junk packets, randomized padding, magic-header rewriting) designed to defeat DPI-based protocol fingerprinting — the same tunnel, but one that doesn't look like a tunnel on the wire.
|
||||
|
||||
- **Native, not Docker.** AmneziaWG runs as a real kernel interface on the host, brought up and torn down with `awg-quick`/`awg` — the same DKMS kernel module approach as a native `wg0` interface. No privileged sidecar containers.
|
||||
- **Embedded, not a kernel module.** AmneziaWG runs entirely inside the panel process ([amneziawg-go](https://github.com/amnezia-vpn/amneziawg-go) over a userspace network stack) — no DKMS build, no Secure Boot conflict, no privileged sidecar container, and nothing to install on the host at all.
|
||||
- **A first-class protocol.** An AmneziaWG inbound lives in the same `Inbound` table as everything else, so it gets bulk operations, the QR/config-download modal, and subscription links for free — nothing bespoke to learn.
|
||||
- **Full AmneziaWG 2.0 obfuscation** — Jc/Jmin/Jmax (junk packets), S1–S4 (packet padding), H1–H4 (magic headers), and the I1 signature packet, all editable per-inbound with a one-click randomize button, plus a 1.x-compatible fallback for older clients.
|
||||
- **Native IPv6**, with per-client NDP proxying so each peer gets a directly-reachable IPv6 address — no NAT66.
|
||||
- **Per-client port-forwarding** — DNAT specific ports/ranges straight to one peer's tunnel address.
|
||||
- **Routing a client's traffic through Xray** — every AmneziaWG inbound gets its own loopback Xray bridge automatically (no toggle to flip); route any client's traffic through any configured Xray outbound from the panel's existing Routing page, exactly like routing any other protocol.
|
||||
- **`install.sh` installs the kernel module for you** on Ubuntu/Debian/Armbian (`ppa:amnezia/ppa`), with a fallback for other distros. One thing it can't do for you: **disable Secure Boot** on your VPS/VM first — a DKMS-built module is unsigned and the kernel won't load it while Secure Boot is enforced.
|
||||
- Reconciled the same way [`internal/mtproto`](internal/mtproto) manages its `mtg` sidecar: a background job keeps the running interface in sync with what's saved in the database, hot-reloading peer changes via `awg syncconf` instead of bouncing the whole interface when it can.
|
||||
- **Real `vpn://` share links** — the per-client copy-link/QR and the subscription endpoint now emit the actual `vpn://` scheme the official AmneziaVPN app expects (base64url of a plain `.conf`), not an invented URI format it couldn't import.
|
||||
- **Every client's traffic already goes through Xray.** No TPROXY, no bridge to opt into: each AmneziaWG inbound relays straight into its own loopback Xray SOCKS5 inbound, so per-client traffic stats, online status, sniffing, and the panel's existing Routing-page rules all just work, exactly like any other protocol — no extra configuration.
|
||||
- **Real `vpn://` share links** — the per-client copy-link/QR and the subscription endpoint emit the actual `vpn://` scheme the official AmneziaVPN app expects (base64url of a plain `.conf`), not an invented URI format it couldn't import.
|
||||
- **Temporarily unsupported** after this rewrite: distinct per-client public IPv6 addresses and per-client port-forwarding both relied on the old kernel-module's host-level iptables rules, which don't have an embedded equivalent yet. Both are planned fast-follow releases; existing settings for either aren't lost, they're just inert until then.
|
||||
|
||||
## Other changes in this fork
|
||||
|
||||
@@ -121,11 +118,11 @@ zero prompts, generating random credentials and writing them to
|
||||
|
||||
## Supported Platforms
|
||||
|
||||
**Operating systems:** Ubuntu, Debian, Armbian, Fedora, CentOS, RHEL, AlmaLinux, Rocky Linux, Oracle Linux, Amazon Linux, Virtuozzo, Arch, Manjaro, Parch, openSUSE (Tumbleweed / Leap), and Alpine. (Upstream also publishes a Windows build; this fork's CI doesn't — everything here targets Linux servers/routers, and AmneziaWG needs a Linux kernel module regardless.)
|
||||
**Operating systems:** Ubuntu, Debian, Armbian, Fedora, CentOS, RHEL, AlmaLinux, Rocky Linux, Oracle Linux, Amazon Linux, Virtuozzo, Arch, Manjaro, Parch, openSUSE (Tumbleweed / Leap), and Alpine. (Upstream also publishes a Windows build; this fork's CI doesn't — everything here targets Linux servers/routers.)
|
||||
|
||||
**Architectures:** `amd64` · `386` · `arm64` (aarch64) · `armv7` · `armv6` · `armv5` · `s390x`.
|
||||
|
||||
AmneziaWG specifically needs a real Linux kernel with the AmneziaWG DKMS module — it will not come up on Windows, and `install_amneziawg` only automates the kernel-module install on Ubuntu/Debian/Armbian today (see [What's different in this fork](#whats-different-in-this-fork-amneziawg)).
|
||||
AmneziaWG is embedded in the panel binary itself (see [What's different in this fork](#whats-different-in-this-fork-amneziawg)) — no kernel module, no separate install step, no distro-specific setup.
|
||||
|
||||
## Database Options
|
||||
|
||||
@@ -195,10 +192,11 @@ This fork is built entirely on top of [MHSanaei/3x-ui](https://github.com/MHSana
|
||||
<img src="./media/donation-button-black.svg" alt="Crypto donation button by NOWPayments">
|
||||
</a>
|
||||
|
||||
The native AmneziaWG implementation in this fork was ported from/inspired by:
|
||||
The AmneziaWG implementation in this fork was ported from/inspired by:
|
||||
|
||||
- [MHSanaei/3x-ui#6086](https://github.com/MHSanaei/3x-ui/pull/6086) — the original AmneziaWG PR against upstream (Docker-sidecar approach); this fork reuses its frontend schema/UI structure but replaces the backend with a native, no-Docker manager.
|
||||
- [coinman-dev/3ax-ui](https://github.com/coinman-dev/3ax-ui) — an independent fork already running native AmneziaWG in production; this fork's `awg-quick` process management, config generation, and AmneziaWG 2.0 obfuscation parameter generator are ported from its `awg/` package.
|
||||
- [amnezia-vpn/amneziawg-go](https://github.com/amnezia-vpn/amneziawg-go) — the userspace AmneziaWG implementation this fork embeds directly in the panel process, over a [gVisor](https://gvisor.dev/) network stack, replacing the original kernel-module-based backend below.
|
||||
- [MHSanaei/3x-ui#6086](https://github.com/MHSanaei/3x-ui/pull/6086) — the original AmneziaWG PR against upstream (Docker-sidecar approach); this fork reuses its frontend schema/UI structure.
|
||||
- [coinman-dev/3ax-ui](https://github.com/coinman-dev/3ax-ui) — an independent fork already running native AmneziaWG in production; this fork's original kernel-module (`awg-quick`) manager and AmneziaWG 2.0 obfuscation parameter generator were ported from its `awg/` package before this rewrite.
|
||||
|
||||
## Acknowledgment
|
||||
|
||||
|
||||
+10
-12
@@ -24,15 +24,12 @@
|
||||
|
||||
[AmneziaWG](https://github.com/amnezia-vpn/amneziawg-linux-kernel-module) — это WireGuard с добавленным слоем обфускации (мусорные пакеты, случайный паддинг, переписывание магических заголовков), который призван обмануть DPI-фингерпринтинг протокола: тот же туннель, но не выглядящий как туннель в трафике.
|
||||
|
||||
- **Нативно, без Docker.** AmneziaWG работает как настоящий интерфейс ядра на хосте, поднимается и опускается через `awg-quick`/`awg` — тот же подход через DKMS-модуль ядра, что и у обычного интерфейса `wg0`. Никаких привилегированных сайдкар-контейнеров.
|
||||
- **Встроено, а не модуль ядра.** AmneziaWG работает целиком внутри процесса панели ([amneziawg-go](https://github.com/amnezia-vpn/amneziawg-go) поверх пользовательского сетевого стека) — никакой сборки DKMS, никакого конфликта с Secure Boot, никаких привилегированных сайдкар-контейнеров и вообще ничего ставить на хост не нужно.
|
||||
- **Полноценный протокол.** AmneziaWG-инбаунд живёт в той же таблице `Inbound`, что и всё остальное, поэтому бесплатно получает bulk-операции, модалку QR/скачивания конфига и ссылки подписки — учить ничего отдельного не нужно.
|
||||
- **Полная обфускация AmneziaWG 2.0** — Jc/Jmin/Jmax (мусорные пакеты), S1–S4 (паддинг пакетов), H1–H4 (магические заголовки) и сигнатурный пакет I1, всё редактируется по каждому инбаунду с кнопкой генерации одним кликом, плюс совместимый с 1.x режим для старых клиентов.
|
||||
- **Нативный IPv6** с NDP-прокси по каждому клиенту — у каждого пира напрямую доступный IPv6-адрес, без NAT66.
|
||||
- **Проброс портов по клиентам** — DNAT конкретных портов/диапазонов прямо на туннельный адрес одного пира.
|
||||
- **Маршрутизация трафика клиента через Xray** — каждый AmneziaWG-инбаунд автоматически получает свой loopback-мост в Xray (без переключателей), а куда направить трафик конкретного клиента — решается через уже существующее меню «Маршрутизация» панели, точно так же, как для любого другого протокола.
|
||||
- **`install.sh` сам ставит модуль ядра** на Ubuntu/Debian/Armbian (`ppa:amnezia/ppa`), с fallback для других дистрибутивов. Одно он сделать не может: **выключить Secure Boot** на вашем VPS/VM заранее — DKMS-модуль не подписан, и ядро откажется его загружать, пока Secure Boot включён.
|
||||
- Реконсиляция устроена так же, как [`internal/mtproto`](internal/mtproto) управляет своим сайдкаром `mtg`: фоновая джоба держит запущенный интерфейс синхронизированным с тем, что сохранено в базе, применяя изменения пиров через `awg syncconf` вместо полного рестарта интерфейса там, где это возможно.
|
||||
- **Настоящие ссылки `vpn://`** — ссылка-копия/QR у клиента и endpoint подписки теперь отдают тот самый формат `vpn://`, который ожидает официальное приложение AmneziaVPN (base64url обычного `.conf`), а не выдуманный формат URI, который оно не могло импортировать.
|
||||
- **Трафик каждого клиента уже идёт через Xray.** Никакого TPROXY, никакого моста, который нужно включать отдельно: каждый AmneziaWG-инбаунд напрямую передаёт трафик в свой loopback-инбаунд SOCKS5 в Xray, поэтому статистика по клиентам, онлайн-статус, sniffing и правила уже существующего меню «Маршрутизация» работают точно так же, как для любого другого протокола — без дополнительной настройки.
|
||||
- **Настоящие ссылки `vpn://`** — ссылка-копия/QR у клиента и endpoint подписки отдают тот самый формат `vpn://`, который ожидает официальное приложение AmneziaVPN (base64url обычного `.conf`), а не выдуманный формат URI, который оно не могло импортировать.
|
||||
- **Временно не поддерживается** после этого перехода: отдельный публичный IPv6-адрес на каждого клиента и проброс портов по клиентам — обе функции опирались на хостовые правила iptables старого модуля ядра, а у встроенной архитектуры пока нет их аналога. Обе запланированы отдельными релизами следом; уже сохранённые настройки для них никуда не делись, просто пока не действуют.
|
||||
|
||||
## Другие изменения в этом форке
|
||||
|
||||
@@ -121,11 +118,11 @@ curl -fsSL https://raw.githubusercontent.com/Kuzz007/3x-ui/main/install.sh | bas
|
||||
|
||||
## Поддерживаемые платформы
|
||||
|
||||
**Операционные системы:** Ubuntu, Debian, Armbian, Fedora, CentOS, RHEL, AlmaLinux, Rocky Linux, Oracle Linux, Amazon Linux, Virtuozzo, Arch, Manjaro, Parch, openSUSE (Tumbleweed / Leap) и Alpine. (В апстриме также есть сборка под Windows; в CI этого форка её нет — здесь всё нацелено на Linux-серверы/роутеры, да и AmneziaWG в любом случае требует модуль ядра Linux.)
|
||||
**Операционные системы:** Ubuntu, Debian, Armbian, Fedora, CentOS, RHEL, AlmaLinux, Rocky Linux, Oracle Linux, Amazon Linux, Virtuozzo, Arch, Manjaro, Parch, openSUSE (Tumbleweed / Leap) и Alpine. (В апстриме также есть сборка под Windows; в CI этого форка её нет — здесь всё нацелено на Linux-серверы/роутеры.)
|
||||
|
||||
**Архитектуры:** `amd64` · `386` · `arm64` (aarch64) · `armv7` · `armv6` · `armv5` · `s390x`.
|
||||
|
||||
AmneziaWG отдельно требует настоящее ядро Linux с DKMS-модулем AmneziaWG — на Windows он не поднимется, а `install_amneziawg` пока автоматизирует установку модуля только на Ubuntu/Debian/Armbian (см. [Чем этот форк отличается: AmneziaWG](#чем-этот-форк-отличается-amneziawg)).
|
||||
AmneziaWG встроен прямо в бинарник панели (см. [Чем этот форк отличается: AmneziaWG](#чем-этот-форк-отличается-amneziawg)) — никакого модуля ядра, никакого отдельного шага установки, никакой специфики под конкретный дистрибутив.
|
||||
|
||||
## Варианты базы данных
|
||||
|
||||
@@ -195,10 +192,11 @@ English · فارسی · العربية · 中文(简体) · 中文(繁體
|
||||
<img src="./media/donation-button-black.svg" alt="Crypto donation button by NOWPayments">
|
||||
</a>
|
||||
|
||||
Нативная реализация AmneziaWG в этом форке портирована/вдохновлена:
|
||||
Реализация AmneziaWG в этом форке портирована/вдохновлена:
|
||||
|
||||
- [MHSanaei/3x-ui#6086](https://github.com/MHSanaei/3x-ui/pull/6086) — оригинальный PR с AmneziaWG в апстрим (подход через Docker-сайдкар); этот форк переиспользует его фронтенд-схему/структуру UI, но заменяет бэкенд на нативный менеджер без Docker.
|
||||
- [coinman-dev/3ax-ui](https://github.com/coinman-dev/3ax-ui) — независимый форк, уже использующий нативный AmneziaWG в проде; управление процессом `awg-quick`, генерация конфига и генератор параметров обфускации AmneziaWG 2.0 в этом форке портированы из его пакета `awg/`.
|
||||
- [amnezia-vpn/amneziawg-go](https://github.com/amnezia-vpn/amneziawg-go) — пользовательская реализация AmneziaWG, которую этот форк встраивает прямо в процесс панели поверх сетевого стека [gVisor](https://gvisor.dev/), заменяя собой прежний бэкенд на основе модуля ядра ниже.
|
||||
- [MHSanaei/3x-ui#6086](https://github.com/MHSanaei/3x-ui/pull/6086) — оригинальный PR с AmneziaWG в апстрим (подход через Docker-сайдкар); этот форк переиспользует его фронтенд-схему/структуру UI.
|
||||
- [coinman-dev/3ax-ui](https://github.com/coinman-dev/3ax-ui) — независимый форк, уже использующий нативный AmneziaWG в проде; прежний менеджер этого форка на основе модуля ядра (`awg-quick`) и генератор параметров обфускации AmneziaWG 2.0 были портированы из его пакета `awg/` до этого перехода.
|
||||
|
||||
## Благодарности
|
||||
|
||||
|
||||
+10
-12
@@ -24,15 +24,12 @@ Bu fork, yazarının kendi yönlendiricileri ve kişisel sunucuları üzerinde
|
||||
|
||||
[AmneziaWG](https://github.com/amnezia-vpn/amneziawg-linux-kernel-module), DPI tabanlı protokol parmak izi çıkarmayı yenmek için tasarlanmış bir gizleme (obfuscation) katmanı (çöp paketler, rastgele dolgu, sihirli başlıkların yeniden yazılması) ekleyen bir WireGuard varyantıdır — aynı tünel, ama artık hat üzerinde bir tünel gibi görünmeyen bir tünel.
|
||||
|
||||
- **Yerel (native), Docker değil.** AmneziaWG, host üzerinde gerçek bir çekirdek arabirimi olarak çalışır; `awg-quick`/`awg` ile açılıp kapatılır — size yerel bir `wg0` arabirimi kazandıran aynı DKMS çekirdek modülü yaklaşımı. Ayrıcalıklı bir sidecar konteynerine gerek yoktur.
|
||||
- **Gömülü (embedded), çekirdek modülü değil.** AmneziaWG tamamen panel sürecinin kendi içinde çalışır ([amneziawg-go](https://github.com/amnezia-vpn/amneziawg-go), kullanıcı alanında çalışan bir ağ yığını üzerinden) — DKMS derlemesi yok, Secure Boot ile çakışma yok, ayrıcalıklı bir sidecar konteyner yok ve host üzerine kurulacak hiçbir şey yok.
|
||||
- **Birinci sınıf bir protokol.** Bir AmneziaWG gelen bağlantısı, diğerleriyle aynı `Inbound` tablosunda yaşar; bu sayede toplu işlemleri (bulk operations), QR kodu/yapılandırma indirme modalını ve abonelik bağlantılarını hiçbir ek çaba olmadan kazanır — öğrenilecek yeni bir şey yoktur.
|
||||
- **Tam AmneziaWG 2.0 gizlemesi** — Jc/Jmin/Jmax (çöp paketler), S1–S4 (paket dolgusu), H1–H4 (sihirli başlıklar) ve I1 imza paketi; her biri gelen bağlantı başına düzenlenebilir ve tek tıkla rastgeleleştirme düğmesine sahiptir, ayrıca eski istemciler için 1.x uyumlu bir mod da bulunur.
|
||||
- **Yerel IPv6**, kullanıcı başına NDP proxy desteğiyle; böylece her eş (peer) doğrudan erişilebilir bir IPv6 adresi alır — NAT66 gerekmez.
|
||||
- **Kullanıcı başına port yönlendirme** — belirli portları/aralıkları doğrudan bir eşin tünel adresine DNAT edin.
|
||||
- **Bir istemcinin trafiğini Xray üzerinden yönlendirme** — her AmneziaWG gelen bağlantısı otomatik olarak kendi loopback Xray köprüsünü alır (hiçbir anahtar/switch olmadan); herhangi bir istemcinin trafiğini, panelde zaten mevcut olan "Yönlendirme" sayfası üzerinden yapılandırılmış herhangi bir Xray giden bağlantısına, tıpkı başka herhangi bir protokolü yönlendirir gibi yönlendirin.
|
||||
- **`install.sh` çekirdek modülünü sizin için kurar** — Ubuntu/Debian/Armbian üzerinde (`ppa:amnezia/ppa`), diğer dağıtımlar için bir yedek (fallback) ile birlikte. Sizin için yapamayacağı tek şey: VPS/VM'inizde **Secure Boot'u önceden devre dışı bırakmak** — DKMS ile derlenmiş bir modül imzasızdır ve Secure Boot etkin olduğu sürece çekirdek onu yüklemeyi reddeder.
|
||||
- Uzlaştırma (reconcile), [`internal/mtproto`](internal/mtproto)'nun `mtg` sidecar'ını yönetme biçimiyle tamamen aynı şekilde yapılır: arka planda çalışan bir görev, çalışan arabirimi veritabanında saklanan durumla senkronize tutar ve mümkün olduğunda eş (peer) değişikliklerini tam bir arabirim yeniden başlatması yerine `awg syncconf` üzerinden uygular.
|
||||
- **Gerçek `vpn://` paylaşım bağlantıları** — istemci başına kopyalama bağlantısı/QR kodu ve abonelik uç noktası artık resmi AmneziaVPN uygulamasının beklediği gerçek `vpn://` şemasını üretiyor (düz bir `.conf` dosyasının base64url'i), uygulamanın içe aktaramadığı uydurma bir URI biçimi değil.
|
||||
- **Her istemcinin trafiği zaten Xray üzerinden geçiyor.** TPROXY yok, ayrıca etkinleştirilmesi gereken bir köprü yok: her AmneziaWG gelen bağlantısı, loopback üzerinden doğrudan kendi Xray SOCKS5 gelen bağlantısına aktarılır; bu sayede istemci başına trafik istatistikleri, çevrimiçi durumu, sniffing ve panelde zaten mevcut olan "Yönlendirme" sayfasının kuralları, ek bir yapılandırma gerekmeden, tıpkı başka herhangi bir protokolde olduğu gibi çalışır.
|
||||
- **Gerçek `vpn://` paylaşım bağlantıları** — istemci başına kopyalama bağlantısı/QR kodu ve abonelik uç noktası, resmi AmneziaVPN uygulamasının beklediği gerçek `vpn://` şemasını üretir (düz bir `.conf` dosyasının base64url'i), uygulamanın içe aktaramadığı uydurma bir URI biçimi değil.
|
||||
- **Bu geçişten sonra geçici olarak desteklenmiyor:** istemci başına ayrı bir genel (public) IPv6 adresi ve istemci başına port yönlendirmenin ikisi de eski çekirdek modülünün host düzeyindeki iptables kurallarına dayanıyordu; bunların gömülü mimaride henüz bir karşılığı yok. Her ikisi de yakın zamanda ayrı sürümler olarak planlanıyor; her ikisi için de mevcut ayarlar kaybolmadı, sadece o zamana kadar etkisiz durumdalar.
|
||||
|
||||
## Bu forktaki diğer değişiklikler
|
||||
|
||||
@@ -121,11 +118,11 @@ sona hiçbir soru sormadan tamamlanır, rastgele kimlik bilgileri oluşturup bun
|
||||
|
||||
## Desteklenen Platformlar
|
||||
|
||||
**İşletim sistemleri:** Ubuntu, Debian, Armbian, Fedora, CentOS, RHEL, AlmaLinux, Rocky Linux, Oracle Linux, Amazon Linux, Virtuozzo, Arch, Manjaro, Parch, openSUSE (Tumbleweed / Leap) ve Alpine. (Orijinal proje ayrıca bir Windows sürümü de yayınlar; bu fork'un CI'ı bunu yapmaz — buradaki her şey Linux çalıştıran sunucuları/yönlendiricileri hedefler ve AmneziaWG zaten her durumda bir Linux çekirdek modülüne ihtiyaç duyar.)
|
||||
**İşletim sistemleri:** Ubuntu, Debian, Armbian, Fedora, CentOS, RHEL, AlmaLinux, Rocky Linux, Oracle Linux, Amazon Linux, Virtuozzo, Arch, Manjaro, Parch, openSUSE (Tumbleweed / Leap) ve Alpine. (Orijinal proje ayrıca bir Windows sürümü de yayınlar; bu fork'un CI'ı bunu yapmaz — buradaki her şey Linux çalıştıran sunucuları/yönlendiricileri hedefler.)
|
||||
|
||||
**Mimariler:** `amd64` · `386` · `arm64` (aarch64) · `armv7` · `armv6` · `armv5` · `s390x`.
|
||||
|
||||
AmneziaWG özellikle gerçek bir Linux çekirdeği ve AmneziaWG'ye özgü DKMS çekirdek modülüne ihtiyaç duyar — Windows üzerinde çalışmaz ve `install_amneziawg` bugün yalnızca Ubuntu/Debian/Armbian üzerinde çekirdek modülü kurulumunu otomatikleştirir ([Bu fork'ta ne farklı](#bu-forkta-ne-farklı-amneziawg) bölümüne bakın).
|
||||
AmneziaWG doğrudan panel ikili dosyasının (binary) kendi içine gömülüdür ([Bu fork'ta ne farklı](#bu-forkta-ne-farklı-amneziawg) bölümüne bakın) — çekirdek modülü yok, ayrı bir kurulum adımı yok, dağıtıma özgü bir kurulum yok.
|
||||
|
||||
## Veritabanı Seçenekleri
|
||||
|
||||
@@ -195,10 +192,11 @@ Bu fork tamamen [MHSanaei/3x-ui](https://github.com/MHSanaei/3x-ui) üzerine in
|
||||
<img src="./media/donation-button-black.svg" alt="NOWPayments üzerinden Kripto Bağış Butonu">
|
||||
</a>
|
||||
|
||||
Bu fork'taki yerel AmneziaWG uygulaması şunlardan alınmış/ilham almıştır:
|
||||
Bu fork'taki AmneziaWG uygulaması şunlardan alınmış/ilham almıştır:
|
||||
|
||||
- [MHSanaei/3x-ui#6086](https://github.com/MHSanaei/3x-ui/pull/6086) — orijinal projeye karşı açılan orijinal AmneziaWG pull request'i (Docker sidecar yaklaşımı); bu fork onun şema/ön yüz (frontend) yapısını yeniden kullanır ancak arka ucu (backend) yerel, Docker'sız bir yöneticiyle değiştirir.
|
||||
- [coinman-dev/3ax-ui](https://github.com/coinman-dev/3ax-ui) — üretimde zaten yerel AmneziaWG çalıştıran bağımsız bir fork; bu fork'un `awg-quick` süreç yönetimi, yapılandırma üretimi ve AmneziaWG 2.0 gizleme parametresi üreticisi onun `awg/` paketinden alınmıştır.
|
||||
- [amnezia-vpn/amneziawg-go](https://github.com/amnezia-vpn/amneziawg-go) — bu forkun, aşağıdaki eski çekirdek-modülü tabanlı arka ucun yerine, doğrudan panel süreci içine, bir [gVisor](https://gvisor.dev/) ağ yığını üzerinden gömdüğü kullanıcı alanı AmneziaWG uygulaması.
|
||||
- [MHSanaei/3x-ui#6086](https://github.com/MHSanaei/3x-ui/pull/6086) — orijinal projeye karşı açılan orijinal AmneziaWG pull request'i (Docker sidecar yaklaşımı); bu fork onun şema/ön yüz (frontend) yapısını yeniden kullanır.
|
||||
- [coinman-dev/3ax-ui](https://github.com/coinman-dev/3ax-ui) — üretimde zaten yerel AmneziaWG çalıştıran bağımsız bir fork; bu fork'un bu yeniden yazımdan önceki çekirdek modülü tabanlı (`awg-quick`) yöneticisi ve AmneziaWG 2.0 gizleme parametresi üreticisi onun `awg/` paketinden alınmıştı.
|
||||
|
||||
## Özel Teşekkürler
|
||||
|
||||
|
||||
+10
-12
@@ -24,15 +24,12 @@
|
||||
|
||||
[AmneziaWG](https://github.com/amnezia-vpn/amneziawg-linux-kernel-module) 是 WireGuard 的一个变体,增加了一层混淆(垃圾数据包、随机填充、重写魔术头部),旨在击败基于 DPI 的协议指纹识别——同样的隧道,但在线路上不再表现得像一条隧道。
|
||||
|
||||
- **原生实现,而非 Docker。** AmneziaWG 作为真正的内核接口运行在宿主机上,通过 `awg-quick`/`awg` 启动和停止——采用与拥有原生 `wg0` 接口相同的 DKMS 内核模块方案。无需特权 sidecar 容器。
|
||||
- **内置实现,而非内核模块。** AmneziaWG 完全在面板进程内部运行([amneziawg-go](https://github.com/amnezia-vpn/amneziawg-go) 基于用户态网络协议栈实现)——无需编译 DKMS 模块,不与 Secure Boot 冲突,无需特权 sidecar 容器,宿主机上完全不需要安装任何东西。
|
||||
- **一等协议。** AmneziaWG 入站与其他协议共享同一张 `Inbound` 表,因此可以免费获得批量操作、二维码/配置下载弹窗以及订阅链接——无需学习任何新东西。
|
||||
- **完整的 AmneziaWG 2.0 混淆功能**——Jc/Jmin/Jmax(垃圾数据包)、S1–S4(数据包填充)、H1–H4(魔术头部)以及 I1 签名数据包,均可按入站单独编辑,并提供一键随机化按钮,同时为旧版客户端提供 1.x 兼容模式。
|
||||
- **原生 IPv6**,支持按客户端的 NDP 代理,使每个对等端都获得可直接访问的 IPv6 地址——无需 NAT66。
|
||||
- **按客户端端口转发**——将特定端口/端口范围直接 DNAT 到某个对等端的隧道地址。
|
||||
- **将客户端流量通过 Xray 路由**——每个 AmneziaWG 入站都会自动获得属于自己的本地回环 Xray 网桥(无需任何开关);通过面板中已有的"路由"页面,将任意客户端的流量路由到任意已配置的 Xray 出站,方式与路由其他协议完全相同。
|
||||
- **`install.sh` 会为您安装内核模块**,适用于 Ubuntu/Debian/Armbian(`ppa:amnezia/ppa`),其他发行版则有回退方案。它唯一无法为您做的事:预先**禁用 VPS/VM 上的 Secure Boot**——DKMS 构建的模块未经签名,只要 Secure Boot 处于启用状态,内核就会拒绝加载它。
|
||||
- 协调(reconcile)方式与 [`internal/mtproto`](internal/mtproto) 管理 `mtg` sidecar 的方式完全相同:一个后台任务持续保持运行中的接口与数据库中存储的内容同步,并尽可能通过 `awg syncconf` 而非完整的接口重启来应用对等端变更。
|
||||
- **真正的 `vpn://` 分享链接** — 每个客户端的复制链接/二维码以及订阅端点现在会生成官方 AmneziaVPN 应用真正期望的 `vpn://` 格式(纯文本 `.conf` 的 base64url 编码),而不是该应用无法导入的自造 URI 格式。
|
||||
- **每个客户端的流量已经在通过 Xray。** 无需 TPROXY,也无需另行启用网桥:每个 AmneziaWG 入站都会通过本地回环直接转发到其专属的 Xray SOCKS5 入站,因此按客户端的流量统计、在线状态、sniffing,以及面板中已有的"路由"页面规则,都会像其他任何协议一样自动生效——无需额外配置。
|
||||
- **真正的 `vpn://` 分享链接** — 每个客户端的复制链接/二维码以及订阅端点会生成官方 AmneziaVPN 应用真正期望的 `vpn://` 格式(纯文本 `.conf` 的 base64url 编码),而不是该应用无法导入的自造 URI 格式。
|
||||
- **本次迁移之后暂不支持**:每个客户端独立的公网 IPv6 地址,以及按客户端的端口转发,二者都依赖于旧内核模块在宿主机层面的 iptables 规则,而内置架构目前还没有与之等效的实现。两者均已计划在后续版本中推出;已保存的相关设置不会丢失,只是在此之前处于未生效状态。
|
||||
|
||||
## 本分支的其他更改
|
||||
|
||||
@@ -121,11 +118,11 @@ curl -fsSL https://raw.githubusercontent.com/Kuzz007/3x-ui/main/install.sh | bas
|
||||
|
||||
## 支持的平台
|
||||
|
||||
**操作系统:** Ubuntu、Debian、Armbian、Fedora、CentOS、RHEL、AlmaLinux、Rocky Linux、Oracle Linux、Amazon Linux、Virtuozzo、Arch、Manjaro、Parch、openSUSE (Tumbleweed / Leap) 和 Alpine。(原项目也发布 Windows 版本;本分支的 CI 不这样做——这里的一切都面向运行 Linux 的服务器/路由器,而且 AmneziaWG 无论如何都需要 Linux 内核模块。)
|
||||
**操作系统:** Ubuntu、Debian、Armbian、Fedora、CentOS、RHEL、AlmaLinux、Rocky Linux、Oracle Linux、Amazon Linux、Virtuozzo、Arch、Manjaro、Parch、openSUSE (Tumbleweed / Leap) 和 Alpine。(原项目也发布 Windows 版本;本分支的 CI 不这样做——这里的一切都面向运行 Linux 的服务器/路由器。)
|
||||
|
||||
**架构:** `amd64` · `386` · `arm64` (aarch64) · `armv7` · `armv6` · `armv5` · `s390x`。
|
||||
|
||||
AmneziaWG 特别需要真正的 Linux 内核以及 AmneziaWG 专用的 DKMS 内核模块——它无法在 Windows 上运行,而目前 `install_amneziawg` 只能在 Ubuntu/Debian/Armbian 上自动完成内核模块安装(参见[本分支的不同之处](#本分支的不同之处amneziawg)一节)。
|
||||
AmneziaWG 直接内置于面板二进制文件本身(参见[本分支的不同之处](#本分支的不同之处amneziawg)一节)——无需内核模块,无需单独的安装步骤,也无需针对特定发行版的设置。
|
||||
|
||||
## 数据库选项
|
||||
|
||||
@@ -195,10 +192,11 @@ English · فارسی · العربية · 中文(简体) · 中文(繁體
|
||||
<img src="./media/donation-button-black.svg" alt="Crypto donation button by NOWPayments">
|
||||
</a>
|
||||
|
||||
本分支中原生 AmneziaWG 的实现参考/借鉴自:
|
||||
本分支中 AmneziaWG 的实现参考/借鉴自:
|
||||
|
||||
- [MHSanaei/3x-ui#6086](https://github.com/MHSanaei/3x-ui/pull/6086) — 针对原项目提出的原始 AmneziaWG PR(Docker sidecar 方案);本分支重用了其 schema/前端结构,但将后端替换为原生、无 Docker 的管理器。
|
||||
- [coinman-dev/3ax-ui](https://github.com/coinman-dev/3ax-ui) — 一个独立的分支,已经在生产环境中运行原生 AmneziaWG;本分支中 `awg-quick` 进程管理、配置生成以及 AmneziaWG 2.0 混淆参数生成器均源自其 `awg/` 包。
|
||||
- [amnezia-vpn/amneziawg-go](https://github.com/amnezia-vpn/amneziawg-go) — 本分支直接内嵌到面板进程中的用户态 AmneziaWG 实现,基于 [gVisor](https://gvisor.dev/) 网络协议栈,取代了下方原先基于内核模块的后端。
|
||||
- [MHSanaei/3x-ui#6086](https://github.com/MHSanaei/3x-ui/pull/6086) — 针对原项目提出的原始 AmneziaWG PR(Docker sidecar 方案);本分支重用了其 schema/前端结构。
|
||||
- [coinman-dev/3ax-ui](https://github.com/coinman-dev/3ax-ui) — 一个独立的分支,已经在生产环境中运行原生 AmneziaWG;本分支在此次重写之前基于内核模块的 (`awg-quick`) 管理器以及 AmneziaWG 2.0 混淆参数生成器均源自其 `awg/` 包。
|
||||
|
||||
## 特别感谢
|
||||
|
||||
|
||||
Reference in New Issue
Block a user