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.
22 KiB
English | فارسی | العربية | 中文 | Español | Русский | Türkçe
این یک فورک شخصی از 3X-UI است — پنل کنترل وب پیشرفته و متنباز برای Xray-core — با یک افزودهی اصلی: پشتیبانی نیتیو از AmneziaWG، بهعنوان یک پروتکل کاملاً درجهیک در کنار VLESS، VMess، Trojan و بقیه. هر چیز دیگری که 3X-UI از قبل انجام میداد (اینباندهای چندپروتکلی، حسابداری ترافیک بهازای هر کلاینت، سابسکریپشنها، چند نود، ربات تلگرام) بدون تغییر باقی مانده و دقیقاً مثل نسخهی اصلی کار میکند.
این فورک برای اجرا روی روترها و سرورهای شخصی نویسنده ساخته شده است؛ قصد جایگزینی یا رقابت با پروژهی اصلی را ندارد. اگر بهدنبال پنل همهمنظوره هستید، به MHSanaei/3x-ui مراجعه کنید — همهی مطالب زیر فقط تفاوتهای این فورک را مستند میکند.
Important
این پروژه فقط برای استفادهی شخصی در نظر گرفته شده است. لطفاً از آن برای اهداف غیرقانونی یا در محیط تولید (production) استفاده نکنید.
تفاوت این فورک: AmneziaWG
AmneziaWG نسخهای از WireGuard است با یک لایهی مبهمسازی اضافه (بستههای زباله، پدینگ تصادفی، بازنویسی سرآیندهای جادویی) که برای شکست دادن اثرانگشتگیری پروتکل مبتنی بر DPI طراحی شده — همان تونل، اما تونلی که روی سیم شبیه تونل به نظر نمیرسد.
- جاسازیشده (embedded)، نه یک ماژول کرنل. AmneziaWG کاملاً درون خود پروسهی پنل اجرا میشود (amneziawg-go روی یک پشتهی شبکه در فضای کاربر) — بدون نیاز به بیلد DKMS، بدون تداخل با Secure Boot، بدون کانتینر سایدکار ممتاز، و اصلاً چیزی برای نصب روی هاست وجود ندارد.
- یک پروتکل درجهیک. یک اینباند AmneziaWG در همان جدول
Inboundبقیهی موارد زندگی میکند، پس bulk-operations، مودال QR/دانلود کانفیگ و لینکهای سابسکریپشن را رایگان دریافت میکند — چیز جدیدی برای یادگیری نیست. - مبهمسازی کامل AmneziaWG 2.0 — Jc/Jmin/Jmax (بستههای زباله)، S1–S4 (پدینگ بسته)، H1–H4 (سرآیندهای جادویی) و بستهی امضای I1، همه بهازای هر اینباند با یک دکمهی تصادفیسازی یککلیکی قابل ویرایشاند، بهعلاوهی یک حالت سازگار با 1.x برای کلاینتهای قدیمیتر.
- ترافیک هر کلاینت همین حالا از Xray عبور میکند. بدون TPROXY، بدون پلی که لازم باشد جداگانه فعال شود: هر اینباند AmneziaWG مستقیماً به اینباند SOCKS5 مخصوص به خودش در Xray از طریق loopback ریلی میشود، پس آمار هر کلاینت، وضعیت آنلاین، sniffing و قوانین صفحهی «مسیریابی» موجود در پنل، همگی دقیقاً مثل هر پروتکل دیگری بهطور خودکار کار میکنند — بدون هیچ پیکربندی اضافهای.
- لینکهای اشتراکگذاری واقعی
vpn://— لینک کپی/QR هر کلاینت و endpoint سابسکریپشن همان طرح واقعیvpn://را که اپ رسمی AmneziaVPN انتظار دارد تولید میکنند (base64url یک فایل.confساده)، نه یک فرمت URI ساختگی که آن اپ نمیتوانست وارد کند. - موقتاً پشتیبانی نمیشود پس از این بازنویسی: یک آدرس IPv6 عمومی مجزا بهازای هر کلاینت و پروبرت پورت بهازای هر کلاینت، هر دو به قوانین iptables در سطح هاست ماژول کرنل قدیمی متکی بودند که هنوز معادلی در معماری جاسازیشده ندارند. هر دو بهعنوان نسخههای بعدی و نزدیک برنامهریزی شدهاند؛ تنظیمات ذخیرهشدهی موجود برای هرکدام از بین نرفته، فقط تا آن زمان غیرفعال است.
سایر تغییرات این فورک
بهبودهای کوچکتر مخصوص این فورک، فراتر از AmneziaWG، هر بار که اضافه شوند اینجا ثبت میشوند:
- تکمیل خودکار قوانین مسیریابی — فیلدهای Domain/IP در ویرایشگر قوانین Routing ایکسری اکنون دستهبندیهای geosite/geoip را پیشنهاد میدهند (مثلاً تایپ «you» پیشنهاد
geosite:youtubeرا میدهد) که بهصورت زنده از فایلهای.datکه واقعاً در پوشه bin ایکسری نصب شدهاند ساخته میشوند — از جمله فایلهای سفارشی اضافهشده از طریق ویژگی بهروزرسانی خودکار Geodata (مثلاًgeosite_roscom.dat). ورود متن آزاد هنوز دقیقاً مثل قبل کار میکند. - سرعت زنده برای AmneziaWG و MTProto — ستون Speed برای اینباند/کلاینتهای AmneziaWG و MTProto (
mtg) «--» نشان میداد، با اینکه مجموع ترافیک تجمعی درست بود — چون هیچکدام داخل رانتایم خود Xray-core اجرا نمیشوند و به همین دلیل برای API آمار آن نامرئیاند. اکنون هر دو، سرعت زنده را دقیقاً مثل بقیهی پروتکلها پخش میکنند. - فایلهای سفارشی در
bin/از آپدیت جان سالم به در میبرند — نصب مجدد/آپدیت قبلاً کل پوشهیbin/را قبل از استخراج نسخهی جدید کاملاً پاک میکرد و هر چیزی که دستی آنجا گذاشته شده بود (معمولاً یک فایل سفارشی geoip/geosite که یک قانون مسیریابی از طریقext:<file>:<code>به آن ارجاع میدهد) را بیسروصدا حذف میکرد و همهی اینباندها را در اجرای بعدی خراب میکرد. اکنون نصبکننده ابتدا ازbin/بکاپ میگیرد و فقط چیزهایی را که نسخهی جدید ارائه نمیدهد بازمیگرداند.
ویژگیها
- اینباندهای چندپروتکلی — VLESS، VMess، Trojan، Shadowsocks، WireGuard، AmneziaWG، Hysteria2، HTTP، SOCKS (Mixed)، Dokodemo-door / Tunnel و TUN.
- ترنسپورتها و امنیت مدرن — TCP (Raw)، mKCP، WebSocket، gRPC، HTTPUpgrade و XHTTP، ایمنشده با TLS، XTLS و REALITY.
- فالبک (Fallback) — ارائهی چند پروتکل روی یک پورت واحد (مثلاً VLESS و Trojan روی پورت 443) با استفاده از قابلیت fallback در Xray.
- مدیریت بهازای هر کلاینت — سهمیهی ترافیک، تاریخ انقضا، محدودیت IP، وضعیت آنلاینِ زنده و لینکهای اشتراکگذاری، کدهای QR و سابسکریپشنها با یک کلیک.
- آمار ترافیک — بهازای هر اینباند، هر کلاینت و هر اوتباند، همراه با کنترل بازنشانی (reset).
- پشتیبانی از چند نود — مدیریت و مقیاسدهی روی چندین سرور از یک پنل واحد.
- اوتباند و مسیریابی — WARP، NordVPN، قوانین مسیریابی سفارشی، متعادلکنندههای بار (load balancer) و زنجیرهکردن پراکسی اوتباند.
- سرور سابسکریپشن داخلی با چندین فرمت خروجی و قالبهای صفحهی سفارشی.
- ربات تلگرام برای نظارت و مدیریت از راه دور.
- RESTful API همراه با مستندات Swagger درونپنل.
- ذخیرهسازی منعطف — SQLite (پیشفرض) یا PostgreSQL.
- ۱۳ زبان رابط کاربری با تمهای تیره و روشن.
- یکپارچگی با Fail2ban برای اعمال محدودیت IP بهازای هر کلاینت.
اسکرینشاتها
شروع سریع
curl -fsSL https://raw.githubusercontent.com/Kuzz007/3x-ui/main/install.sh | bash
برای نصب یک نسخهی مشخص، تگ آن را اضافه کنید (مثلاً v3.5.0-awg.1):
curl -fsSL https://raw.githubusercontent.com/Kuzz007/3x-ui/main/install.sh | bash -s v3.5.0-awg.1
برای نصب بیلد غلتانِ dev (آخرین پیشانتشار بر اساس هر commit از main، نه یک نسخهی پایدار)، مقدار dev را پاس بدهید:
curl -fsSL https://raw.githubusercontent.com/Kuzz007/3x-ui/main/install.sh | bash -s dev
انتشارهای پایدار خودِ این فورک با تگ <نسخهی پایهی آپستریم>-awg.N مشخص میشوند (مثلاً v3.5.0-awg.1، ساختهشده روی چیزی که آپستریم آن را v3.5.0 مینامد) — هرگز یک vX.Y.Z ساده نیست — تا هرگز با یک انتشار واقعی از MHSanaei/3x-ui با همان شماره اشتباه گرفته نشود.
در حین نصب، یک نام کاربری، رمز عبور و مسیر دسترسی تصادفی تولید میشود. پس از نصب، دستور x-ui را اجرا کنید تا منوی مدیریت باز شود؛ در آنجا میتوانید سرویس را شروع/متوقف کنید، اطلاعات ورود خود را ببینید یا بازنشانی کنید، گواهیهای SSL را مدیریت کنید و کارهای دیگری انجام دهید.
برای مستندات کامل پنل فراتر از آنچه در این README آمده، به ویکی پروژهی اصلی مراجعه کنید — هیچکدام مختص این فورک نیست، پس همچنان کاربرد دارد.
نصب بدون نظارت
نصبکننده بهصورت غیرتعاملی نیز برای cloud-init اجرا میشود.
XUI_NONINTERACTIVE=1 را تنظیم کنید (یا بدون TTY از طریق pipe اجرا کنید) تا نصب بهصورت سرتاسری و بدون
هیچ پرسشی انجام شود، اطلاعات ورود تصادفی تولید کرده و آنها را در
/etc/x-ui/install-result.env مینویسد. برای موارد زیر به deploy/ مراجعه کنید:
- user-data مربوط به Cloud-init — نصب بدون نظارت روی هر ابری (Hetzner/AWS/DO/Vultr/GCP/Azure/Oracle)
- یادداشتهای Hetzner Cloud — استقرار مبتنی بر cloud-init روی Hetzner
پلتفرمهای پشتیبانیشده
سیستمعاملها: 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 مستقیماً درون خود باینری پنل جاسازی شده است (به بخش تفاوت این فورک مراجعه کنید) — بدون ماژول کرنل، بدون مرحلهی نصب جداگانه، بدون تنظیمات مخصوص هر توزیع.
گزینههای پایگاهداده
3X-UI از دو بکاند پشتیبانی میکند که در حین نصب انتخاب میشوند:
- SQLite (پیشفرض) — یک فایل واحد در مسیر
/etc/x-ui/x-ui.db. بدون نیاز به تنظیمات، ایدهآل برای استقرارهای کوچک و متوسط. - PostgreSQL — برای تعداد کلاینت بالا یا راهاندازیهای چندنودی توصیه میشود. نصبکننده میتواند PostgreSQL را بهصورت محلی برایتان نصب کند، یا یک DSN به یک سرور موجود را بپذیرد.
در زمان اجرا، بکاند از طریق متغیرهای محیطی انتخاب میشود (نصبکننده این موارد را برای شما در /etc/default/x-ui مینویسد):
XUI_DB_TYPE=postgres
XUI_DB_DSN=postgres://xui:password@127.0.0.1:5432/xui?sslmode=disable
انتقال یک نصب موجود SQLite به PostgreSQL
x-ui migrate-db --dsn "postgres://xui:password@127.0.0.1:5432/xui?sslmode=disable"
# سپس XUI_DB_TYPE و XUI_DB_DSN را در /etc/default/x-ui تنظیم کرده و ریاستارت کنید:
systemctl restart x-ui
فایل اصلی SQLite دستنخورده باقی میماند؛ پس از اطمینان از صحت بکاند جدید، آن را بهصورت دستی حذف کنید.
متغیرهای محیطی
| متغیر | توضیحات | پیشفرض |
|---|---|---|
XUI_DB_TYPE |
بکاند پایگاهداده: sqlite یا postgres |
sqlite |
XUI_DB_DSN |
رشتهی اتصال PostgreSQL (وقتی XUI_DB_TYPE=postgres) |
— |
XUI_DB_FOLDER |
پوشهی فایل پایگاهدادهی SQLite | /etc/x-ui |
XUI_DB_MAX_OPEN_CONNS |
حداکثر اتصالات باز (استخر PostgreSQL) | — |
XUI_DB_MAX_IDLE_CONNS |
حداکثر اتصالات بیکار (استخر PostgreSQL) | — |
XUI_INIT_WEB_BASE_PATH |
مسیر URI اولیه برای پنل وب | / |
XUI_ENABLE_FAIL2BAN |
فعالسازی اعمال محدودیت IP مبتنی بر Fail2ban | true |
XUI_LOG_LEVEL |
سطح گزارشگیری (debug، info، warning، error) |
info |
XUI_DEBUG |
فعالسازی حالت دیباگ | false |
XUI_TUNNEL_HEALTH_MONITOR |
فعالسازی پایشگر سلامت تونل (یک URL را پروب میکند و پس از خطاهای مکرر، xray را ریاستارت میکند؛ یک ریاستارت همهی کلاینتها را قطع میکند) | false |
XUI_TUNNEL_HEALTH_PROXY |
پراکسیای که پروب از طریق آن ارسال میشود؛ آن را به یک اینباند محلی xray اشاره دهید تا پروب خودِ تونل را آزمایش کند (مثلاً socks5://127.0.0.1:1080). خالی بودن یعنی پروب فقط اتصال به هاست را بررسی میکند |
— |
XUI_TUNNEL_HEALTH_URL |
URL ای که برای سلامت تونل پروب میشود | https://www.cloudflare.com/cdn-cgi/trace |
XUI_TUNNEL_HEALTH_INTERVAL |
فاصلهی زمانی بین پروبها | 30s |
XUI_TUNNEL_HEALTH_TIMEOUT |
مهلت زمانی هر پروب | 10s |
XUI_TUNNEL_HEALTH_FAILURES |
تعداد خطاهای متوالی پیش از آنکه یک ریاستارت فعال شود | 3 |
XUI_TUNNEL_HEALTH_COOLDOWN |
حداقل تأخیر بین ریاستارتهای متوالی | 5m |
زبانهای پشتیبانیشده
رابط کاربری پنل به ۱۳ زبان در دسترس است:
English · فارسی · العربية · 中文(简体) · 中文(繁體) · Español · Русский · Українська · Türkçe · Tiếng Việt · 日本語 · Bahasa Indonesia · Português (Brasil)
یادداشتهای توسعهدهنده
این یک فورک شخصی است و بهدنبال مشارکتکنندهی بیرونی نیست، اما CONTRIBUTING.md همچنان دستورالعملهای دقیق و مفیدی برای راهاندازی محیط توسعهی محلی (نسخههای Go/Node، کامپایلر C مورد نیاز CGo، دستورات build/lint/test) دارد، اگر خودتان روی این کدبیس کار میکنید.
قدردانی
این فورک بهطور کامل بر پایهی MHSanaei/3x-ui ساخته شده — تمام پنل، پشتیبانی چندپروتکلی و معماری زیرین کار خودشان است؛ پشتیبانی AmneziaWG تنها چیزی است که اینجا اضافه شده. اگر پروژهی اصلی را مفید یافتید، لینکهای حمایتی نویسندهی اصلی همچنان مکان درستی برای آن است:
پیادهسازی AmneziaWG در این فورک برگرفته از/الهامگرفته از موارد زیر است:
- amnezia-vpn/amneziawg-go — پیادهسازی AmneziaWG در فضای کاربر که این فورک مستقیماً درون پروسهی پنل، روی پشتهی شبکهی gVisor، جاسازی میکند و جایگزین بکاند قدیمی مبتنی بر ماژول کرنل در زیر میشود.
- MHSanaei/3x-ui#6086 — پولریکوئست اصلی AmneziaWG علیه پروژهی اصلی (رویکرد Docker-sidecar)؛ این فورک ساختار schema/UI فرانتاند آن را دوباره استفاده میکند.
- coinman-dev/3ax-ui — یک فورک مستقل که از قبل AmneziaWG نیتیو را در محیط تولید اجرا میکند؛ مدیر قدیمی این فورک مبتنی بر ماژول کرنل (
awg-quick) و تولیدکنندهی پارامتر مبهمسازی AmneziaWG 2.0 پیش از این بازنویسی از پکیجawg/آن برگرفته شده بودند.
تشکر ویژه از
- alireza0
- Iran v2ray rules (مجوز: GPL-3.0): قوانین مسیریابی بهبود یافته v2ray/xray و v2ray/xray-clients با دامنههای ایرانی داخلی و تمرکز بر امنیت و مسدود کردن تبلیغات.
- Russia v2ray rules (مجوز: GPL-3.0): این مخزن شامل قوانین مسیریابی V2Ray بهروزرسانی شده خودکار بر اساس دادههای دامنهها و آدرسهای مسدود شده در روسیه است.
ابزارهای جامعه
ابزارها و یکپارچهسازیهایی که توسط جامعه پیرامون 3x-ui ساخته شدهاند.
- terraform-provider-3x-ui (مجوز: MIT): مدیریت اینباندها، کلاینتها، تنظیمات پنل و پیکربندی Xray بهصورت کد با Terraform / OpenTofu.




