The vpn:// share-link fix and the live-Speed-for-sidecar-protocols fix (both shipped a few days ago) never got their changelog bullet despite the fork's own standing rule to always document fork-specific changes here. Also documents the bin/-preservation fix on install.sh, shipped today and proposed upstream as MHSanaei/3x-ui#6152. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
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 طراحی شده — همان تونل، اما تونلی که روی سیم شبیه تونل به نظر نمیرسد.
- نیتیو، نه Docker. AmneziaWG بهعنوان یک اینترفیس واقعی کرنل روی هاست اجرا میشود، با
awg-quick/awgبالا و پایین میآید — همان رویکرد ماژول کرنل DKMS که یک اینترفیس نیتیوwg0دارد. هیچ کانتینر سایدکار ممتازی لازم نیست. - یک پروتکل درجهیک. یک اینباند 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انجام میشود: یک جاب پسزمینه اینترفیس در حال اجرا را با آنچه در پایگاهداده ذخیره شده هماهنگ نگه میدارد، و تغییرات پیر را از طریقawg syncconfبهجای ریاستارت کامل اینترفیس، در جایی که ممکن باشد، اعمال میکند. - لینکهای اشتراکگذاری واقعی
vpn://— لینک کپی/QR هر کلاینت و endpoint سابسکریپشن اکنون همان طرح واقعیvpn://را که اپ رسمی AmneziaVPN انتظار دارد تولید میکنند (base64url یک فایل.confساده)، نه یک فرمت URI ساختگی که آن اپ نمیتوانست وارد کند.
سایر تغییرات این فورک
بهبودهای کوچکتر مخصوص این فورک، فراتر از 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 این فورک این کار را نمیکند — همهچیز اینجا سرورها/روترهای لینوکسی را هدف قرار میدهد، و AmneziaWG در هر صورت به یک ماژول کرنل لینوکس نیاز دارد.)
معماریها: amd64 · 386 · arm64 (aarch64) · armv7 · armv6 · armv5 · s390x.
AmneziaWG بهطور خاص به یک کرنل واقعی لینوکس با ماژول DKMS مربوط به AmneziaWG نیاز دارد — روی Windows بالا نخواهد آمد، و install_amneziawg امروز فقط نصب ماژول کرنل را روی Ubuntu/Debian/Armbian خودکار میکند (به بخش تفاوت این فورک مراجعه کنید).
گزینههای پایگاهداده
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 در این فورک برگرفته از/الهامگرفته از موارد زیر است:
- MHSanaei/3x-ui#6086 — پولریکوئست اصلی AmneziaWG علیه پروژهی اصلی (رویکرد Docker-sidecar)؛ این فورک ساختار schema/UI فرانتاند آن را دوباره استفاده میکند اما بکاند را با یک مدیر نیتیو و بدون Docker جایگزین میکند.
- 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.




