English · فارسی · Tiếng Việt · 简体中文 · 繁體中文 · Русский
یک پنل وب sing-box با نگهداری فعال برای مدیریت پراکسی چندپروتکلی، ارائه اشتراک، پایش ترافیک و استقرار خودمیزبان.
سلب مسئولیت: این پروژه تنها برای یادگیری و تبادل نظر شخصی است؛ لطفاً از آن برای مقاصد غیرقانونی استفاده نکنید و آن را در محیط تولیدی (production) به کار نگیرید.
اگر فکر میکنید این پروژه برای شما مفید است، شاید بد نباشد یک ستاره بدهید🌟
مایل به مشارکت هستید؟ برای راهاندازی محیط توسعه، قراردادهای کدنویسی، تست و فرایند pull request به CONTRIBUTING.md مراجعه کنید.
2S-UI بر پایه alireza0/s-ui ساخته شده و بهعنوان یک fork ادامهدار نگهداری میشود. این پروژه مسیر اصلی پنل را حفظ میکند و در همان حال پشتیبانی sing-box، قابلیتهای چندپروتکلی، اسکریپتهای استقرار و رفع اشکالات مستمر را بهروزرسانی میکند. با تشکر از نویسنده اصلی و مشارکتکنندگان.
| امکانات | فعال؟ |
|---|---|
| چندپروتکلی | ✔️ |
| چندزبانه | ✔️ |
| چند کلاینت/ورودی | ✔️ |
| رابط پیشرفته مسیریابی ترافیک | ✔️ |
| وضعیت کلاینت و ترافیک و سیستم | ✔️ |
| لینک اشتراک (link/json/clash + info) | ✔️ |
| HTTPS خودکار (ACME / Let's Encrypt) ✨ | ✔️ |
| تم تیره/روشن | ✔️ |
| رابط API | ✔️ |
| پلتفرم | معماری | وضعیت |
|---|---|---|
| Linux | amd64, arm64, armv7, armv6, armv5, 386, s390x | ✅ پشتیبانیشده |
| Windows | amd64, 386, arm64 | ✅ پشتیبانیشده |
| macOS | amd64, arm64 | 🚧 آزمایشی |
- پورت پنل: 2095
- مسیر پنل: /app/
- پورت اشتراک: 2096
- مسیر اشتراک: /sub/
- نام کاربری/رمز عبور: admin
bash <(curl -Ls https://raw.githubusercontent.com/shenaba/2s-ui/main/install.sh)- آخرین نسخه ویندوز را از GitHub Releases دانلود کنید
- فایل ZIP را استخراج کنید
install-windows.batرا بهعنوان Administrator اجرا کنید- مراحل جادوگر نصب (wizard) را دنبال کنید
گام ۱: برای نصب نسخه قدیمی موردنظرتان، نسخه را به انتهای دستور نصب اضافه کنید. برای مثال نسخه 1.0.0:
VERSION=1.0.0 && bash <(curl -Ls https://raw.githubusercontent.com/shenaba/2s-ui/$VERSION/install.sh) $VERSION- آخرین نسخه 2S-UI متناسب با سیستمعامل/معماری خود را از GitHub دریافت کنید: https://github.com/shenaba/2s-ui/releases/latest
- اختیاری آخرین نسخه
s-ui.shرا دریافت کنید https://raw.githubusercontent.com/shenaba/2s-ui/main/s-ui.sh - اختیاری
s-ui.shرا در/usr/bin/s-uiکپی کنید وchmod +x /usr/bin/s-uiرا اجرا کنید. - فایل tar.gz مربوط به s-ui را در دایرکتوری دلخواه استخراج کنید و به دایرکتوریای که فایل tar.gz را در آن استخراج کردهاید بروید.
- فایلهای *.service را در /etc/systemd/system/ کپی کنید و
systemctl daemon-reloadرا اجرا کنید. - اجرای خودکار را فعال کرده و سرویس 2S-UI را با
systemctl enable s-ui --nowراهاندازی کنید - سرویس sing-box را با
systemctl enable sing-box --nowراهاندازی کنید
- آخرین نسخه ویندوز را از GitHub دریافت کنید: https://github.com/shenaba/2s-ui/releases/latest
- بسته مناسب ویندوز را دانلود کنید (برای مثال
s-ui-windows-amd64.zip) - فایل ZIP را در دایرکتوری دلخواه استخراج کنید
install-windows.batرا بهعنوان Administrator اجرا کنید- مراحل جادوگر نصب (wizard) را دنبال کنید
- به پنل از طریق http://localhost:2095/app دسترسی پیدا کنید
sudo -i
systemctl disable s-ui --now
rm -f /etc/systemd/system/sing-box.service
systemctl daemon-reload
rm -fr /usr/local/s-ui
rm /usr/bin/s-uiبرای جزئیات کلیک کنید
گام ۱: نصب Docker
curl -fsSL https://get.docker.com | shگام ۲: نصب 2S-UI
روش Docker compose
mkdir 2s-ui && cd 2s-ui
wget -q https://raw.githubusercontent.com/shenaba/2s-ui/main/docker-compose.yml
docker compose up -dاستفاده از docker
mkdir 2s-ui && cd 2s-ui
docker run -itd \
-p 2095:2095 -p 2096:2096 -p 443:443 \
-v $PWD/db/:/app/db/ \
-v $PWD/cert/:/root/cert/ \
--name s-ui --restart=unless-stopped \
ghcr.io/shenaba/2s-ui:latestساخت image اختصاصی خودتان
git clone https://github.com/shenaba/2s-ui
git submodule update --init --recursive
docker build -t 2s-ui .برای جزئیات کلیک کنید
./runSUI.sh# clone repository
git clone https://github.com/shenaba/2s-ui
# clone submodules
git submodule update --init --recursiveبرای کد frontend به 2s-ui-frontend مراجعه کنید
لطفاً ابتدا یکبار frontend را بسازید!
برای ساخت backend:
# remove old frontend compiled files
rm -fr web/html/*
# apply new frontend compiled files
cp -R frontend/dist/ web/html/
# build
go build -o sui main.goبرای اجرای backend (از پوشه ریشه مخزن):
./sui- انگلیسی
- فارسی
- ویتنامی
- چینی (سادهشده)
- چینی (سنتی)
- روسی
- پروتکلهای پشتیبانیشده:
- عمومی: Mixed, SOCKS, HTTP, HTTPS, Direct, Redirect, TProxy
- مبتنی بر V2Ray: VLESS, VMess, Trojan, Shadowsocks
- سایر پروتکلها: ShadowTLS, Hysteria, Hysteria2, Naive, TUIC
- پشتیبانی از پروتکلهای XTLS
- رابطی پیشرفته برای مسیریابی ترافیک، شامل PROXY Protocol، پراکسی External و Transparent، گواهی SSL و پورت
- رابطی پیشرفته برای پیکربندی inbound و outbound
- سقف ترافیک و تاریخ انقضای کلاینتها
- نمایش کلاینتهای آنلاین، inboundها و outboundها همراه با آمار ترافیک، و پایش وضعیت سیستم
- سرویس اشتراک با قابلیت افزودن لینکها و اشتراکهای خارجی
- HTTPS برای دسترسی امن به پنل وب و سرویس اشتراک (دامنه شخصی + گواهی SSL)
- گواهیهای SSL خودکار — کافی است یک دامنه وارد کنید و 2S-UI بهصورت خودکار یک گواهی رایگان Let's Encrypt را برای شما صادر و تمدید میکند (بدون certbot، بدون cron job)
- تم تیره/روشن
برای جزئیات کلیک کنید
| متغیر | نوع | پیشفرض |
|---|---|---|
| SUI_LOG_LEVEL | "debug" | "info" | "warn" | "error" |
"info" |
| SUI_DEBUG | boolean |
false |
| SUI_BIN_FOLDER | string |
"bin" |
| SUI_DB_FOLDER | string |
"db" |
| SINGBOX_API | string |
- |
کافی است یک دامنه را در تنظیمات پنل وارد کنید (حالت گواهی ← ACME) و
2S-UI بهصورت خودکار یک گواهی رایگان Let's Encrypt را صادر و تمدید میکند — بدون certbot،
بدون cron job. پنل وب و سرویس اشتراک را میتوان بهصورت مستقل فعال کرد.
پس از انجام این کار، پنل از طریق https://<your-domain>:2095/app در دسترس خواهد بود.
نیازمند دسترسپذیری پورت TCP 80 از اینترنت است (چالش HTTP-01). برای انتشار پورت ۸۰ در Docker: در روش docker compose خط
80:80را درdocker-compose.ymlاز حالت کامنت خارج کنید، یا در روش docker run گزینه-p 80:80را اضافه کنید. گواهیها در پوشهcert/ذخیره میشوند و پس از راهاندازی مجدد باقی میمانند. اگر دامنه/پورت نادرست پیکربندی شده باشد، 2S-UI به HTTP بازمیگردد.
ترجیح میدهید گواهیها را خودتان مدیریت کنید؟ (Certbot)
snap install core; snap refresh core
snap install --classic certbot
ln -s /snap/bin/certbot /usr/bin/certbot
certbot certonly --standalone --register-unsafely-without-email --non-interactive --agree-tos -d <Your Domain Name>