English | 中文 | Español | Русский | العربية
لوحة ويب متقدمة • مبنية على Xray Core هذا المشروع هو نسخة معدلة (fork) من لوحة 3x-ui.
إخلاء مسؤولية: هذا المشروع مخصص للتعلم والتواصل الشخصي فقط، يرجى عدم استخدامه لأغراض غير قانونية، ويرجى عدم استخدامه في بيئة إنتاجية.
إذا كان هذا المشروع مفيدًا لك، يمكنك دعمه بنجمة🌟
USDT(TON): UQDnwbvFLTm1cUWeUn3FFAKgC35wTno9-zOa_ib6STUVSgYf
< <(curl -Ls https://raw.githubusercontent.com/AghayeCoder/tx-ui/master/install.sh)انقر للحصول على تفاصيل شهادة SSL
لإدارة شهادات SSL باستخدام ACME:
-
تأكد من أن نطاقك موجه بشكل صحيح إلى الخادم.
-
قم بتشغيل الأمر
x-uiفي الطرفية، ثم اخترإدارة شهادات SSL. -
ستظهر لك الخيارات التالية:
- الحصول على SSL: للحصول على شهادات SSL.
- إلغاء: لإلغاء شهادات SSL الحالية.
- تجديد إجباري: لفرض تجديد شهادات SSL.
- عرض النطاقات الحالية: لعرض جميع شهادات النطاقات المتاحة على الخادم.
- تعيين مسارات الشهادة للوحة: لتحديد شهادة نطاقك التي ستستخدمها اللوحة.
لتثبيت واستخدام Certbot:
apt-get install certbot -y
certbot certonly --standalone --agree-tos --register-unsafely-without-email -d yourdomain.com
certbot renew --dry-runيتضمن البرنامج النصي للإدارة تطبيقًا مدمجًا لشهادة SSL لـ Cloudflare. لاستخدام هذا البرنامج النصي للتقدم بطلب للحصول على شهادة، تحتاج إلى ما يلي:
- البريد الإلكتروني المسجل في Cloudflare
- مفتاح API العالمي لـ Cloudflare
- يجب أن يتم توجيه اسم النطاق إلى الخادم الحالي من خلال Cloudflare
كيفية الحصول على مفتاح API العالمي لـ Cloudflare:
- قم بتشغيل الأمر
x-uiفي الطرفية، ثم اخترشهادة SSL من Cloudflare. - قم بزيارة الرابط: Cloudflare API Tokens.
- انقر على "View Global API Key" (انظر لقطة الشاشة أدناه):
- قد تحتاج إلى إعادة مصادقة حسابك. بعد ذلك، سيتم عرض مفتاح API (انظر لقطة الشاشة أدناه):

عند الاستخدام، ما عليك سوى إدخال اسم النطاق والبريد الإلكتروني ومفتاح API. الرسم التوضيحي كما يلي:

انقر للحصول على تفاصيل التثبيت اليدوي
- لتنزيل أحدث إصدار من الحزمة المضغوطة مباشرة إلى الخادم الخاص بك، قم بتشغيل الأمر التالي:
ARCH=$(uname -m)
case "${ARCH}" in
x86_64 | x64 | amd64) XUI_ARCH="amd64" ;;
i*86 | x86) XUI_ARCH="386" ;;
armv8* | armv8 | arm64 | aarch64) XUI_ARCH="arm64" ;;
armv7* | armv7) XUI_ARCH="armv7" ;;
armv6* | armv6) XUI_ARCH="armv6" ;;
armv5* | armv5) XUI_ARCH="armv5" ;;
s390x) echo 's390x' ;;
*) XUI_ARCH="amd64" ;;
esac
wget https://github.com/AghayeCoder/tx-ui/releases/latest/download/x-ui-linux-${XUI_ARCH}.tar.gz- بمجرد تنزيل الحزمة المضغوطة، قم بتنفيذ الأوامر التالية لتثبيت أو ترقية x-ui:
ARCH=$(uname -m)
case "${ARCH}" in
x86_64 | x64 | amd64) XUI_ARCH="amd64" ;;
i*86 | x86) XUI_ARCH="386" ;;
armv8* | armv8 | arm64 | aarch64) XUI_ARCH="arm64" ;;
armv7* | armv7) XUI_ARCH="armv7" ;;
armv6* | armv6) XUI_ARCH="armv6" ;;
armv5* | armv5) XUI_ARCH="armv5" ;;
s390x) echo 's390x' ;;
*) XUI_ARCH="amd64" ;;
esac
cd /root/
rm -rf x-ui/ /usr/local/x-ui/ /usr/bin/x-ui
tar zxvf x-ui-linux-${XUI_ARCH}.tar.gz
chmod +x x-ui/x-ui x-ui/bin/xray-linux-* x-ui/x-ui.sh
cp x-ui/x-ui.sh /usr/bin/x-ui
cp -f x-ui/x-ui.service /etc/systemd/system/
mv x-ui/ /usr/local/
systemctl daemon-reload
systemctl enable x-ui
systemctl restart x-uiانقر للحصول على تفاصيل Docker
-
تثبيت Docker:
bash <(curl -sSL https://get.docker.com) -
استنساخ مستودع المشروع:
git clone https://github.com/AghayeCoder/tx-ui.git cd tx-ui -
بدء الخدمة:
docker compose up -d
أضف علامة --pull always لجعل Docker يعيد إنشاء الحاوية تلقائيًا إذا تم سحب صورة أحدث.
راجع https://docs.docker.com/reference/cli/docker/container/run/#pull لمزيد من المعلومات.
أو
docker run -itd \
-e XRAY_VMESS_AEAD_FORCED=false \
-v $PWD/db/:/etc/x-ui/ \
-v $PWD/cert/:/root/cert/ \
--network=host \
--restart=unless-stopped \
--name tx-ui \
ghcr.io/aghayecoder/tx-ui:latest-
التحديث إلى أحدث إصدار:
cd tx-ui docker compose down docker compose pull tx-ui docker compose up -d -
إزالة tx-ui من Docker:
docker stop tx-ui docker rm tx-ui cd -- rm -r tx-ui
انقر لتكوين الوكيل العكسي (Reverse Proxy)
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Range $http_range;
proxy_set_header If-Range $http_if_range;
proxy_redirect off;
proxy_pass http://127.0.0.1:2053;
}- تأكد من أن "مسار URI" في إعدادات لوحة
/subهو نفسه. - يجب أن ينتهي
urlفي إعدادات اللوحة بـ/.
location /sub {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Range $http_range;
proxy_set_header If-Range $http_if_range;
proxy_redirect off;
proxy_pass http://127.0.0.1:2053;
}- Ubuntu 22.04+
- Debian 12+
- CentOS 8+
- OpenEuler 22.03+
- Fedora 36+
- Arch Linux
- Parch Linux
- Manjaro
- Armbian
- AlmaLinux 9.5+
- Rocky Linux 9.5+
- Oracle Linux 8+
- OpenSUSE Tubleweed
- Amazon Linux 2023
- Windows x64
انقر للحصول على تفاصيل المعماريات والأجهزة المدعومة
توفر منصتنا التوافق مع مجموعة متنوعة من المعماريات والأجهزة، مما يضمن المرونة عبر بيئات الحوسبة المختلفة. فيما يلي المعماريات الرئيسية التي ندعمها:
-
amd64: هذه المعمارية السائدة هي المعيار لأجهزة الكمبيوتر الشخصية والخوادم، وتستوعب معظم أنظمة التشغيل الحديثة بسلاسة.
-
x86 / i386: معتمدة على نطاق واسع في أجهزة الكمبيوتر المكتبية والمحمولة، تتمتع هذه المعمارية بدعم واسع من العديد من أنظمة التشغيل والتطبيقات، بما في ذلك على سبيل المثال لا الحصر أنظمة Windows و macOS و Linux.
-
armv8 / arm64 / aarch64: مصممة خصيصًا للأجهزة المحمولة والمدمجة المعاصرة، مثل الهواتف الذكية والأجهزة اللوحية، وتتمثل هذه المعمارية في أجهزة مثل Raspberry Pi 4 و Raspberry Pi 3 و Raspberry Pi Zero 2/Zero 2 W و Orange Pi 3 LTS والمزيد.
-
armv7 / arm / arm32: تعمل كمعمارية للأجهزة المحمولة والمدمجة القديمة، ولا تزال تستخدم على نطاق واسع في أجهزة مثل Orange Pi Zero LTS و Orange Pi PC Plus و Raspberry Pi 2 وغيرها.
-
armv6 / arm / arm32: موجهة للأجهزة المدمجة القديمة جدًا، هذه المعمارية، على الرغم من أنها أقل انتشارًا، لا تزال قيد الاستخدام. تعتمد أجهزة مثل Raspberry Pi 1 و Raspberry Pi Zero/Zero W على هذه المعمارية.
-
armv5 / arm / arm32: معمارية أقدم مرتبطة بشكل أساسي بالأنظمة المدمجة المبكرة، وهي أقل شيوعًا اليوم ولكن لا يزال من الممكن العثور عليها في الأجهزة القديمة مثل إصدارات Raspberry Pi المبكرة وبعض الهواتف الذكية القديمة.
-
s390x: تُستخدم هذه المعمارية بشكل شائع في أجهزة الكمبيوتر المركزية من IBM وتوفر أداءً وموثوقية عالية لأعباء عمل المؤسسات.
- العربية
- الإنجليزية
- الفارسية
- الصينية التقليدية
- الصينية المبسطة
- اليابانية
- الروسية
- الفيتنامية
- الإسبانية
- الإندونيسية
- الأوكرانية
- التركية
- البرتغالية (البرازيل)
- فرض تثبيت اللوحة عبر HTTPs
- مراقبة حالة النظام
- البحث داخل جميع الاتصالات الواردة والعملاء
- سمة داكنة/فاتحة
- يدعم تعدد المستخدمين وتعدد البروتوكولات
- يدعم البروتوكولات، بما في ذلك VMESS و VLESS و Trojan و Shadowsocks و Dokodemo-door و Socks و HTTP و wireguard
- يدعم بروتوكولات XTLS الأصلية، بما في ذلك RPRX-Direct و Vision و REALITY
- إحصائيات حركة المرور، وحدود حركة المرور، وحدود وقت انتهاء الصلاحية
- قوالب تكوين Xray قابلة للتخصيص
- يدعم الوصول إلى اللوحة عبر HTTPS (اسم نطاق مقدم ذاتيًا + شهادة SSL)
- يدعم طلب شهادة SSL بنقرة واحدة والتجديد التلقائي
- لمزيد من عناصر التكوين المتقدمة، يرجى الرجوع إلى اللوحة
- إصلاح مسارات API (سيتم إنشاء إعداد المستخدم باستخدام API)
- يدعم تغيير التكوينات حسب العناصر المختلفة المتوفرة في اللوحة.
- يدعم تصدير/استيراد قاعدة البيانات من اللوحة
- محدث تطبيقات مدمج
انقر للحصول على تفاصيل الإعدادات الافتراضية
إذا اخترت عدم تعديل هذه الإعدادات، فسيتم إنشاؤها بشكل عشوائي (لا ينطبق هذا على Docker).
الإعدادات الافتراضية لـ Docker:
- اسم المستخدم: admin
- كلمة المرور: admin
- المنفذ: 2053
يمكنك إجراء نسخ احتياطي واستعادة لقاعدة البيانات بسهولة مباشرة من اللوحة.
- مسار قاعدة البيانات:
/etc/x-ui/x-ui.db
-
إعادة تعيين مسار الويب الأساسي:
- افتح الطرفية الخاصة بك.
- قم بتشغيل الأمر
x-ui. - حدد خيار
إعادة تعيين مسار الويب الأساسي.
-
إنشاء أو تخصيص المسار:
- سيتم إنشاء المسار بشكل عشوائي، أو يمكنك إدخال مسار مخصص.
-
عرض الإعدادات الحالية:
- لعرض إعداداتك الحالية، استخدم الأمر
x-ui settingsفي الطرفية أوعرض الإعدادات الحاليةفيx-ui.
- لعرض إعداداتك الحالية، استخدم الأمر
- لتعزيز الأمان، استخدم كلمة طويلة وعشوائية في بنية عنوان URL الخاص بك.
أمثلة:
http://ip:port/*webbasepath*/panelhttp://domain:port/*webbasepath*/panel
انقر للحصول على تفاصيل تقييد IP
ملاحظة: لن يعمل تقييد IP بشكل صحيح عند استخدام نفق IP.
لتمكين وظيفة تقييد IP، تحتاج إلى تثبيت fail2ban والملفات المطلوبة باتباع الخطوات التالية:
-
قم بتشغيل الأمر
x-uiفي الطرفية، ثم اخترإدارة تقييد IP. -
سترى الخيارات التالية:
- تغيير مدة الحظر: ضبط مدة الحظر.
- رفع الحظر عن الجميع: رفع جميع عمليات الحظر الحالية.
- التحقق من السجلات: مراجعة السجلات.
- حالة Fail2ban: التحقق من حالة
fail2ban. - إعادة تشغيل Fail2ban: إعادة تشغيل خدمة
fail2ban. - إلغاء تثبيت Fail2ban: إلغاء تثبيت Fail2ban مع التكوين.
-
أضف مسارًا لسجل الوصول على اللوحة عن طريق تعيين
تكوينات Xray/سجل/سجل الوصولإلى./access.logثم احفظ وأعد تشغيل xray.
انقر للحصول على تفاصيل بوت تليجرام
تدعم لوحة الويب حركة المرور اليومية، وتسجيل الدخول إلى اللوحة، والنسخ الاحتياطي لقاعدة البيانات، وحالة النظام، ومعلومات العميل، وغيرها من الإشعارات والوظائف من خلال بوت تليجرام. لاستخدام البوت، تحتاج إلى تعيين المعلمات المتعلقة بالبوت في اللوحة، بما في ذلك:
- توكن تليجرام
- معرف (معرفات) دردشة المسؤول
- وقت الإشعار (بصيغة cron)
- إشعار تاريخ انتهاء الصلاحية
- إشعار سقف حركة المرور
- النسخ الاحتياطي لقاعدة البيانات
- إشعار تحميل وحدة المعالجة المركزية
صيغة مرجعية:
30 * * * * *- إشعار في الثانية 30 من كل دقيقة0 */10 * * * *- إشعار في الثانية الأولى من كل 10 دقائق@hourly- إشعار كل ساعة@daily- إشعار يومي (00:00 صباحًا)@weekly- إشعار أسبوعي@every 8h- إشعار كل 8 ساعات
- تقارير دورية
- إشعار تسجيل الدخول
- إشعار عتبة وحدة المعالجة المركزية
- عتبة لوقت انتهاء الصلاحية وحركة المرور للإبلاغ مسبقًا
- دعم قائمة تقارير العميل إذا تمت إضافة اسم مستخدم تليجرام الخاص بالعميل إلى تكوينات المستخدم
- دعم تقرير حركة مرور تليجرام الذي يتم البحث عنه باستخدام UUID (VMESS/VLESS) أو كلمة المرور (TROJAN) - بشكل مجهول
- بوت قائم على القائمة
- البحث عن عميل عن طريق البريد الإلكتروني (للمسؤول فقط)
- التحقق من جميع الاتصالات الواردة
- التحقق من حالة الخادم
- التحقق من المستخدمين المستنفدين
- تلقي نسخة احتياطية عند الطلب وفي التقارير الدورية
- بوت متعدد اللغات
-
ابدأ Botfather في حساب تليجرام الخاص بك:

-
أنشئ بوتًا جديدًا باستخدام الأمر /newbot: سيطرح عليك سؤالين، اسم واسم مستخدم لبوتك. لاحظ أن اسم المستخدم يجب أن ينتهي بكلمة "bot".

-
ابدأ البوت الذي أنشأته للتو. يمكنك العثور على رابط البوت الخاص بك هنا.

-
أدخل لوحتك وقم بتكوين إعدادات بوت تليجرام كما هو موضح أدناه:

أدخل توكن البوت الخاص بك في حقل الإدخال رقم 3. أدخل معرف المستخدم في حقل الإدخال رقم 4. ستكون حسابات تليجرام التي تحمل هذا المعرف هي مسؤول البوت. (يمكنك إدخال أكثر من واحد، فقط افصل بينها بـ ,)
- كيف تحصل على معرف مستخدم تليجرام؟ استخدم هذا البوت، ابدأ البوت وسيعطيك معرف مستخدم
تليجرام.

انقر للحصول على تفاصيل مسارات API
- توثيق API
/loginمع بيانات المستخدمPOST:{username: '', password: ''}لتسجيل الدخول/panel/api/inboundsأساس للإجراءات التالية:
| الطريقة | المسار | الإجراء |
|---|---|---|
GET |
"/list" |
الحصول على جميع الاتصالات الواردة |
GET |
"/get/:id" |
الحصول على اتصال وارد باستخدام inbound.id |
GET |
"/getClientTraffics/:email" |
الحصول على حركة مرور العميل باستخدام البريد الإلكتروني |
GET |
"/getClientTrafficsById/:id" |
الحصول على حركة مرور العميل باستخدام المعرف |
GET |
"/createbackup" |
بوت تليجرام يرسل نسخة احتياطية للمسؤولين |
POST |
"/add" |
إضافة اتصال وارد |
POST |
"/del/:id" |
حذف اتصال وارد |
POST |
"/update/:id" |
تحديث اتصال وارد |
POST |
"/clientIps/:email" |
عنوان IP للعميل |
POST |
"/clearClientIps/:email" |
مسح عنوان IP للعميل |
POST |
"/addClient" |
إضافة عميل إلى اتصال وارد |
POST |
"/:id/delClient/:clientId" |
حذف عميل باستخدام clientId* |
POST |
"/updateClient/:clientId" |
تحديث عميل باستخدام clientId* |
POST |
"/updateClientTraffic/:email" |
تحديث حركة مرور العميل بالبريد الإلكتروني، القيم بالبايت |
POST |
"/:id/resetClientTraffic/:email" |
إعادة تعيين حركة مرور العميل |
POST |
"/resetAllTraffics" |
إعادة تعيين حركة مرور جميع الاتصالات الواردة |
POST |
"/resetAllClientTraffics/:id" |
إعادة تعيين حركة مرور جميع العملاء في اتصال وارد |
POST |
"/delDepletedClients/:id" |
حذف العملاء المستنفدين للاتصال الوارد (-1: الكل) |
POST |
"/onlines" |
الحصول على المستخدمين المتصلين (قائمة بالبريد الإلكتروني) |
POST |
"/depleted" |
الحصول على المستخدمين المستنفدين (قائمة بالبريد الإلكتروني) |
POST |
"/disabled" |
الحصول على المستخدمين المعطلين (قائمة بالبريد الإلكتروني) |
-
يجب ملء حقل
clientIdبـ: -
client.idلـ VMESS و VLESS -
client.passwordلـ TROJAN -
client.emailلـ Shadowsocks ./panel/api/serverأساس للإجراءات التالية:
| الطريقة | المسار | الإجراء |
|---|---|---|
GET |
"/status" |
الحصول على حالة الخادم |
GET |
"/restartXrayService" |
إعادة تشغيل xray-core |
انقر للحصول على تفاصيل متغيرات البيئة
| المتغير | النوع | الافتراضي |
|---|---|---|
| XUI_LOG_LEVEL | "debug" | "info" |
| XUI_DEBUG | boolean |
false |
| XUI_BIN_FOLDER | string |
"bin" |
| XUI_DB_FOLDER | string |
"/etc/x-ui" |
| XUI_LOG_FOLDER | string |
"/var/log" |
مثال:
XUI_BIN_FOLDER="bin" XUI_DB_FOLDER="/etc/x-ui" go build main.goيمكنك استخدام هذا المستودع لإنشاء واجهة مستخدم للاشتراك للوحتك TX-UI Theming Hub
- @Incognito-Coder لمساهمته في هذا المشروع
- شكر خاص لجميع المساهمين
- Iran v2ray rules (الترخيص: GPL-3.0): قواعد توجيه محسنة لـ v2ray/xray وعملاء v2ray/xray مع نطاقات إيرانية مدمجة وتركيز على الأمان وحظر الإعلانات.
- Russia v2ray rules (الترخيص: GPL-3.0): يحتوي هذا المستودع على قواعد توجيه V2Ray محدثة تلقائيًا بناءً على بيانات النطاقات والعناوين المحظورة في روسيا.