Skip to content

Latest commit

 

History

History
527 lines (388 loc) · 16.1 KB

README.fa_IR.md

File metadata and controls

527 lines (388 loc) · 16.1 KB

English | فارسی | 中文 | Español | Русский

3x-ui

یک پنل وب پیشرفته • ساخته شده بر پایه Xray Core

GO Version Downloads License

سلب مسئولیت: این پروژه صرفاً برای اهداف آموزشی و تحقیقاتی است. استفاده از آن برای مقاصد غیرقانونی یا در محیط‌های عملیاتی ممنوع است.

اگر این پروژه برای شما مفید بوده، می‌توانید با دادن یک🌟 از آن حمایت کنید.

Image

  • 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

برای مدیریت گواهی‌های SSL با استفاده از ACME:

  1. اطمینان حاصل کنید دامنه شما به درستی به سرور متصل است.

  2. دستور x-ui را در ترمینال اجرا کرده و گزینه مدیریت گواهی SSL را انتخاب کنید.

  3. گزینه‌های زیر نمایش داده می‌شوند:

    • دریافت SSL: دریافت گواهی SSL
    • لغو: لغو گواهی‌های موجود
    • تمدید اجباری: تمدید اجباری گواهی‌ها
    • نمایش دامنه‌های موجود: نمایش تمام دامنه‌های دارای گواهی
    • تنظیم مسیر گواهی برای پنل: تنظیم مسیر گواهی برای دامنه شما

Certbot

نصب و استفاده از Certbot:

apt-get install certbot -y
certbot certonly --standalone --agree-tos --register-unsafely-without-email -d yourdomain.com
certbot renew --dry-run

Cloudflare

اسکریپت داخلی برای دریافت گواهی SSL از Cloudflare. نیازمند:

  • ایمیل ثبت‌شده در Cloudflare
  • کلید API جهانی Cloudflare
  • دامنه باید از طریق Cloudflare به سرور متصل باشد

دریافت کلید API جهانی Cloudflare:

  1. دستور x-ui را اجرا و گزینه گواهی SSL کلادفلر را انتخاب کنید.
  2. به لینک Cloudflare API Tokens مراجعه کنید.
  3. روی "View Global API Key" کلیک کنید:
  4. پس از احراز هویت، کلید API نمایش داده می‌شود:

در هنگام استفاده، نام دامنه، ایمیل و کلید API را وارد کنید:

نصب دستی و ارتقا

جزئیات نصب دستی

استفاده

  1. دریافت آخرین نسخه از سرور:
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
  1. نصب یا ارتقا:
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

استفاده

  1. نصب Docker:

    bash <(curl -sSL https://get.docker.com)
  2. کلون پروژه:

    git clone https://github.com/MHSanaei/3x-ui.git
    cd 3x-ui
  3. راه‌اندازی سرویس:

    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
  4. به‌روزرسانی:

    cd 3x-ui
    docker compose down
    docker compose pull 3x-ui
    docker compose up -d
  5. حذف:

    docker stop 3x-ui
    docker rm 3x-ui
    cd --
    rm -r 3x-ui

تنظیمات Nginx

پیکربندی Reverse Proxy

Nginx 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;
}

مسیر فرعی در Nginx

  • اطمینان حاصل کنید "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

مسیر پایه وب

  1. بازنشانی مسیر:

    • اجرای دستور x-ui
    • انتخاب گزینه Reset Web Base Path
  2. ساخت یا تنظیم مسیر:

    • مسیر به صورت تصادفی ساخته شده یا قابل تنظیم است
  3. مشاهده تنظیمات فعلی:

    • استفاده از دستور x-ui settings یا View Current Settings در x-ui

توصیه امنیتی:

  • استفاده از مسیرهای طولانی و تصادفی برای افزایش امنیت

مثال:

  • http://ip:port/*webbasepath*/panel
  • http://domain:port/*webbasepath*/panel

پیکربندی WARP

جزئیات WARP

استفاده

برای نسخه‌های v2.1.0 و جدیدتر:

WARP به صورت داخلی پشتیبانی می‌شود. تنها نیاز به فعال‌سازی در پنل است.

محدودیت IP

جزئیات محدودیت IP

استفاده

توجه: محدودیت IP در صورت استفاده از IP Tunnel کار نمی‌کند.

  • تا نسخه v1.6.1:
    • محدودیت IP به صورت داخلی در پنل وجود دارد

برای نسخه‌های v1.7.0 و جدیدتر:

برای فعال‌سازی نیاز به نصب fail2ban است:

  1. اجرای دستور x-ui و انتخاب مدیریت محدودیت IP

  2. گزینه‌های موجود:

    • تغییر مدت زمان Ban
    • حذف تمام Banها
    • مشاهده لاگ‌ها
    • وضعیت Fail2ban
    • راه‌اندازی مجدد Fail2ban
    • حذف Fail2ban
  3. تنظیم مسیر 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 در تلگرام: Botfather

  • ساخت ربات جدید با دستور /newbot: Create new bot

  • شروع ربات ساخته شده: token

  • تنظیمات پنل: Panel Config

وارد کردن توکن و Chat ID (دریافت از این ربات): User ID

مسیرهای API

جزئیات API

استفاده

Method مسیر عملکرد
GET "/list" دریافت تمام inboundها
GET "/get/:id" دریافت inbound بر اساس id
POST "/add" افزودن inbound
POST "/del/:id" حذف inbound
  • Run In Postman

متغیرهای محیطی

جزئیات متغیرها

استفاده

متغیر نوع پیش‌فرض
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 3x-ui

قدردانی ویژه از

تشکر و قدردانی

Stargazers over Time

Stargazers over time