English | فارسی | 中文 | Español | Русский
یک پنل وب پیشرفته • ساخته شده بر پایه Xray Core
سلب مسئولیت: این پروژه صرفاً برای اهداف آموزشی و تحقیقاتی است. استفاده از آن برای مقاصد غیرقانونی یا در محیطهای عملیاتی ممنوع است.
اگر این پروژه برای شما مفید بوده، میتوانید با دادن یک🌟 از آن حمایت کنید.
- USDT (TRC20):
TXncxkvhkDWGts487Pjqq1qT9JmwRUz8CC
- MATIC (polygon):
0x41C9548675D044c6Bfb425786C765bc37427256A
- LTC (Litecoin):
ltc1q2ach7x6d2zq0n4l0t4zl7d7xe2s6fs7a3vspwv
bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)
برای نصب نسخه خاصی از دستور زیر استفاده کنید. مثال برای نسخه v1.7.9
:
VERSION=v1.7.9 && bash <(curl -Ls "https://raw.githubusercontent.com/mhsanaei/3x-ui/$VERSION/install.sh") $VERSION
جزئیات گواهی SSL
برای مدیریت گواهیهای SSL با استفاده از ACME:
-
اطمینان حاصل کنید دامنه شما به درستی به سرور متصل است.
-
دستور
x-ui
را در ترمینال اجرا کرده و گزینهمدیریت گواهی 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 API Tokens مراجعه کنید.
- روی "View Global API Key" کلیک کنید:
- پس از احراز هویت، کلید 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/MHSanaei/3x-ui/releases/latest/download/x-ui-linux-${XUI_ARCH}.tar.gz
- نصب یا ارتقا:
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/MHSanaei/3x-ui.git cd 3x-ui
-
راهاندازی سرویس:
docker compose up -d
یا
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 3x-ui \ ghcr.io/mhsanaei/3x-ui:latest
-
بهروزرسانی:
cd 3x-ui docker compose down docker compose pull 3x-ui docker compose up -d
-
حذف:
docker stop 3x-ui docker rm 3x-ui cd -- rm -r 3x-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 Path" در تنظیمات پنل یکسان باشد.
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 20.04+
- Debian 11+
- CentOS 8+
- OpenEuler 22.03+
- Fedora 36+
- Arch Linux
- Parch Linux
- Manjaro
- Armbian
- AlmaLinux 8.0+
- Rocky Linux 8+
- Oracle Linux 8+
- OpenSUSE Tubleweed
- Amazon Linux 2023
- Windows x64
جزئیات معماریها و دستگاهها
- amd64: معماری استاندارد برای کامپیوترهای شخصی و سرورها
- x86 / i386: سیستمهای دسکتاپ و لپتاپ
- armv8 / arm64 / aarch64: دستگاههای موبایل و embedded مانند Raspberry Pi 4
- armv7 / arm / arm32: دستگاههای قدیمی مانند Orange Pi Zero
- armv6 / arm / arm32: دستگاههای بسیار قدیمی مانند Raspberry Pi 1
- armv5 / arm / arm32: سیستمهای embedded قدیمی
- s390x: کامپیوترهای IBM mainframe
- انگلیسی
- فارسی
- چینی سنتی
- چینی سادهشده
- ژاپنی
- روسی
- ویتنامی
- اسپانیایی
- اندونزیایی
- اوکراینی
- ترکی
- پرتغالی (برزیل)
- مانیتورینگ وضعیت سیستم
- جستجو در بین inboundها و کلاینتها
- تم تاریک/روشن
- پشتیبانی از چند کاربر و پروتکل
- پروتکلهای VMESS، VLESS، Trojan، Shadowsocks، Dokodemo-door، Socks، HTTP، WireGuard
- پشتیبانی از XTLS شامل RPRX-Direct، Vision، REALITY
- آمار ترافیک، محدودیت ترافیک، محدودیت زمانی
- تنظیمات سفارشی Xray
- پشتیبانی از HTTPS برای پنل
- دریافت خودکار گواهی SSL
- مسیرهای API اصلاح شده
- پشتیبانی از تغییر تنظیمات از طریق پنل
- امکان export/import دیتابیس
جزئیات تنظیمات پیشفرض
در صورت عدم تغییر، این موارد به صورت تصادفی ایجاد میشوند (به جز Docker).
تنظیمات پیشفرض Docker:
- نام کاربری: admin
- رمز عبور: admin
- پورت: 2053
امکان Backup و Restore دیتابیس از طریق پنل.
- مسیر دیتابیس:
/etc/x-ui/x-ui.db
-
بازنشانی مسیر:
- اجرای دستور
x-ui
- انتخاب گزینه
Reset Web Base Path
- اجرای دستور
-
ساخت یا تنظیم مسیر:
- مسیر به صورت تصادفی ساخته شده یا قابل تنظیم است
-
مشاهده تنظیمات فعلی:
- استفاده از دستور
x-ui settings
یاView Current Settings
درx-ui
- استفاده از دستور
توصیه امنیتی:
- استفاده از مسیرهای طولانی و تصادفی برای افزایش امنیت
مثال:
http://ip:port/*webbasepath*/panel
http://domain:port/*webbasepath*/panel
جزئیات WARP
برای نسخههای v2.1.0
و جدیدتر:
WARP به صورت داخلی پشتیبانی میشود. تنها نیاز به فعالسازی در پنل است.
جزئیات محدودیت IP
توجه: محدودیت IP در صورت استفاده از IP Tunnel کار نمیکند.
- تا نسخه
v1.6.1
:- محدودیت IP به صورت داخلی در پنل وجود دارد
برای نسخههای v1.7.0
و جدیدتر:
برای فعالسازی نیاز به نصب fail2ban
است:
-
اجرای دستور
x-ui
و انتخابمدیریت محدودیت IP
-
گزینههای موجود:
- تغییر مدت زمان Ban
- حذف تمام Banها
- مشاهده لاگها
- وضعیت Fail2ban
- راهاندازی مجدد Fail2ban
- حذف Fail2ban
-
تنظیم مسیر
Access log
در پنل به./access.log
و ذخیره و راهاندازی مجدد Xray
-
قبل از نسخه
v2.1.3
:-
تنظیم دستی
access.log
در تنظیمات Xray:"log": { "access": "./access.log", "dnsLog": false, "loglevel": "warning" },
-
-
از نسخه
v2.1.3
:- امکان تنظیم
access.log
از طریق پنل
- امکان تنظیم
جزئیات ربات تلگرام
ربات تلگرام برای اطلاعرسانی ترافیک، ورود به پنل، Backup دیتابیس و ... استفاده میشود. نیازمند تنظیم:
- توکن تلگرام
- Chat ID ادمینها
- زمان اطلاعرسانی (Cron syntax)
- اطلاعرسانی انقضا
- اطلاعرسانی ترافیک
- Backup دیتابیس
- اطلاعرسانی مصرف CPU
سینتکس نمونه:
30 \* \* \* \* \*
- اطلاع در ثانیه 30 هر دقیقه@hourly
- هر ساعت@daily
- هر روز
- گزارش دورهای
- اطلاع ورود به پنل
- اطلاع مصرف CPU
- اطلاع پیشاز موعد انقضا و ترافیک
- گزارش ترافیک کلاینتها
- منوی مبتنی بر دستور
- جستجوی کلاینت بر اساس ایمیل
- بررسی inboundها
- بررسی وضعیت سرور
- دریافت Backup
- چندزبانه
-
شروع Botfather در تلگرام:
وارد کردن توکن و Chat ID (دریافت از این ربات):
جزئیات API
- مستندات API
/login
باPOST
داده کاربر:{username: '', password: ''}
Method | مسیر | عملکرد |
---|---|---|
GET |
"/list" |
دریافت تمام inboundها |
GET |
"/get/:id" |
دریافت inbound بر اساس id |
POST |
"/add" |
افزودن inbound |
POST |
"/del/:id" |
حذف inbound |
جزئیات متغیرها
متغیر | نوع | پیشفرض |
---|---|---|
XUI_LOG_LEVEL | "debug" | "info" | "warn" | "error" |
"info" |
XUI_DEBUG | boolean |
false |
XUI_BIN_FOLDER | string |
"bin" |
مثال:
XUI_BIN_FOLDER="bin" XUI_DB_FOLDER="/etc/x-ui" go build main.go
![3x-ui](/Wolf6470/3x-ui/raw/main/media/01-overview-light.png)
![3x-ui](/Wolf6470/3x-ui/raw/main/media/02-inbounds-light.png)
- Iran v2ray rules (مجوز: GPL-3.0)
- Russia v2ray rules (مجوز: GPL-3.0)