13 KiB
Русский | English | 中文 | Türkmençe
3DP-MANAGER
ابزاری برای تولید خودکار inbound برای پنل 3x-ui، ساخت اشتراکهای یکپارچه، مدیریت چندین نود 3x-ui و پیکربندی relay forwarding از سرورهای واسط به سرورهای اصلی. از نسخه 2.0.0 به بعد، پروژه دارای رابط گرافیکی و تنظیمات ساده کاربری است.
حمایت از پروژه
- انتقال بانکی:
- 💳 کارت MIR:
2204320436318077 - 💳 کارت MasterCard:
5395452209474530
- 💳 کارت MIR:
- کیف پول الکترونیکی:
- 💰 YooMoney:
4100116897060652 - 💰 PayPal:
vasiljevdenisx@gmail.com
- 💰 YooMoney:
- رمزارز:
- 🪙 USDT | ETH (ERC20 | BEP20):
0x6fe140040f6Cdc1E1Ff2136cd1d60C0165809463 - 🪙 USDT | TRX (TRC20):
TEWxXmJxvkAmhshp7E61XJGHB3VyM9hNAb - 🪙 Bitcoin:
bc1qctntwncsv2yn02x2vgnkrqm00c4h04c0afkgpl - 🪙 TON:
UQCZ3MiwyYHXftPItMMzJRYRiKHugr16jFMq2nfOQOOoemLy - 🪙 Bybit ID:
165292278
- 🪙 USDT | ETH (ERC20 | BEP20):
توضیحات
هدف اصلی ابزار این است که ترافیک شما یکسان به نظر نرسد. 3DP-MANAGER در بازه زمانی تعیینشده، مجموعهای از اتصالها با پارامترهای متفاوت تولید میکند:
- پروتکلها:
vless,vmess,shadowsocks,hysteria2,trojan; - پورتها:
443و8443بهصورت ثابت، و پورتهای تصادفی از بازه10000-60000; - transport:
tcp,websocket,grpc,xhttp; - SNI از whitelist دامنهها انتخاب میشود یا بهصورت دستی تنظیم میگردد؛
- نود، relay server، پورت و پرچم را میتوان برای هر inbound جداگانه تنظیم کرد.
همه اتصالها در یک اشتراک با URL ثابت ترکیب میشوند. 3DP-MANAGER با پنل 3x-ui از طریق API عمومی آن کار میکند و مستقیماً در بخش داخلی پنل دخالت نمیکند.
هدف دوم پایداری اتصال است: کلاینت چند گزینه اتصال دریافت میکند و میتواند هرکدام را انتخاب کند. در یک اشتراک میتوان inboundهای مربوط به نودهای مختلف، relay serverها و لینکهای خارجی آماده را بهعنوان اتصال custom قرار داد.
همچنین 3DP-MANAGER را میتوان در سناریوی زنجیرهای استفاده کرد. سرویس forwarding، هدایت اشتراک و ترافیک را به نود انتخابشده پیکربندی میکند.
توصیهها:
- برای اشتراک از HTTPS استفاده کنید (دامنه + گواهی SSL).
- فاصله تولید را حداقل 10 دقیقه تنظیم کنید؛ برای پایداری، یکبار در روز (1440 دقیقه) توصیه میشود.
- در کلاینت، بهروزرسانی خودکار را دفعات بیشتری تنظیم کنید، مثلاً هر ساعت، تا با سرور همگام بماند.
قابلیتها
- تولید اتصالهای متنوع برای یک یا چند اشتراک
- ساخت اشتراک یکپارچه با URL ثابت
- مدیریت چندین نود
3x-ui - پشتیبانی از احراز هویت نود با login/password یا token
- تشخیص خودکار IP، کشور و پرچم نود از URL پنل
- انتخاب نود، relay server، پرچم، SNI و پورت برای هر inbound
- پشتیبانی از پورت ثابت یا مقدار
random - پشتیبانی از اتصالهای custom: افزودن لینک خارجی آماده به اشتراک
- امکان تعیین مسیرهای جداگانه
fullchain.pemوprivkey.pemبرای Hysteria2 UDP - پشتیبانی از
whitelistدامنه سفارشی - تنظیم خودکار relay forwarding بهصورت اختیاری
- نصب Web UI از طریق HTTP یا HTTPS: Let's Encrypt، self-signed یا گواهیهای خودتان
نیازمندیها
- Ubuntu 20.04 یا جدیدتر، Debian 12.11 یا جدیدتر
- پنل
3x-uiنسخه v2.8.4 یا جدیدتر - دسترسی root روی سرور
- Docker و Docker Compose؛ اگر نصب نباشند، اسکریپت نصب تلاش میکند آنها را خودکار نصب کند
- دامنه + گواهی SSL (اختیاری)
نصب
پنل مدیریتی 3x-ui باید از قبل نصب شده باشد. میتوانید آن را با این دستور نصب کنید: bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)
پروژه را روی سرور نصب کنید:
bash <(curl -fsSL https://raw.githubusercontent.com/denpiligrim/3dp-manager/main/install.sh)
در زمان نصب، اسکریپت:
- سیستمعامل، دسترسی root، Docker و Docker Compose را بررسی میکند؛
- اگر RAM کم باشد و swap وجود نداشته باشد، یک فایل swap با حجم 2 GB میسازد؛
- حالت دسترسی Web UI را میپرسد:
- HTTPS با Let's Encrypt؛
- HTTPS با گواهی self-signed؛
- HTTPS با گواهیهای خودتان؛
- HTTP بدون رمزنگاری؛
- یک پورت تصادفی برای Web UI ایجاد میکند؛
- login و password مدیر را ایجاد میکند؛
- کانتینرهای
postgres,backendوfrontendرا اجرا میکند.
پس از پایان نصب، URL، login و password در ترمینال نمایش داده میشود. بلافاصله password را در تنظیمات 3DP-MANAGER تغییر دهید.
توضیح کوتاه: اسکریپت نصب تعاملی را اجرا میکند، محیط را آماده میسازد و کانتینرهای پروژه را راهاندازی میکند.
بهروزرسانی
بهروزرسانی به آخرین نسخه:
bash <(curl -fsSL https://raw.githubusercontent.com/denpiligrim/3dp-manager/main/update.sh)
توضیح کوتاه: آخرین تغییرات را دریافت میکند، اصلاحات سازگار پیکربندی را اعمال میکند، کانتینرها را بهروزرسانی کرده و سرویس را راهاندازی مجدد میکند.
حذف
حذف کامل سرویس:
bash <(curl -fsSL https://raw.githubusercontent.com/denpiligrim/3dp-manager/main/delete.sh)
توضیح کوتاه: کانتینرها و فایلهای پیکربندی را حذف میکند و سیستم را به وضعیت پیش از نصب بازمیگرداند.
اولین ورود
login و password مدیر در پایان نصب نمایش داده میشود. برای مشاهده دوباره:
grep -E "ADMIN_LOGIN|ADMIN_PASSWORD" /opt/3dp-manager/docker-compose.yml | sed 's/^[ \t]*//; s/^- //'
Web UI در آدرسی که نصبکننده نمایش داده قابل دسترسی است، برای مثال:
https://example.com:PORTبرای HTTPS؛http://SERVER_IP:PORTبرای HTTP.
اگر ufw فعال باشد، نصبکننده بازههای پورت کاری inbound را برای TCP/UDP باز میکند: 443, 8443 و 10000-60000.
نودها
بخش نودها امکان اتصال یک یا چند پنل 3x-ui را فراهم میکند.
برای هر نود مشخص میشود:
- نام؛
- URL پنل
3x-ui؛ - IP نود؛
- پرچم/کشور؛
- نوع احراز هویت:
passwordیاtoken؛ - اینکه نود اصلی است یا خیر.
پس از وارد کردن URL، برنامه تلاش میکند IP و کشور نود را خودکار تشخیص دهد. پرچم در نام اتصالها داخل اشتراک استفاده میشود تا تشخیص سرورها در کلاینت سادهتر باشد.
Note
نود اصلی بهعنوان مقدار پیشفرض برای اشتراکها، inboundها و relay serverها استفاده میشود.
اشتراکها
بخش اشتراکها URLهای ثابت اشتراک و ترکیب inboundها را مدیریت میکند.
برای هر inbound میتوانید تنظیم کنید:
- نوع اتصال؛
- نود؛
- relay server؛
- پرچم؛
- پورت: عدد مشخص از
1-65535یاrandom؛ - SNI: دامنه مشخص یا
random؛ - لینک خارجی آماده برای نوع
custom.
برای hysteria2-udp میتوانید مسیرهای جداگانه گواهی و کلید را مشخص کنید:
certificateFile، برای مثال/root/cert/example.com/fullchain.pem;keyFile، برای مثال/root/cert/example.com/privkey.pem.
اگر پورت یا SNI برابر random باشد، مقدار هنگام روتیشن از بازه موجود یا whitelist دامنهها انتخاب میشود.
نصب سرویس forwarding
Warning
سرویس forwarding روی سرور واسط اجرا میشود
سرویس forwarding پورتهای ورودی سرور واسط را به نود انتخابشده proxy میکند. در Web UI این سرورها در بخش Relay serverها تنظیم میشوند و میتوانند به یک نود مشخص متصل شوند.
Relay server را میتوان با IP یا دامنه اضافه کرد. اگر دامنه وارد شود، backend تلاش میکند IP آن را خودکار resolve کند.
برای نصب دستی forwarding روی سرور واسط، IP_ADDRESS را با IP نود اصلی جایگزین کنید:
sudo ORIGIN_IP="IP_ADDRESS" bash -c "$(curl -sSL https://raw.githubusercontent.com/denpiligrim/3dp-manager/main/forwarding_install.sh)"
توضیح کوتاه: قوانین forwarding را اضافه میکند.
حذف forwarding
bash <(curl -fsSL https://raw.githubusercontent.com/denpiligrim/3dp-manager/main/forwarding_delete.sh)
توضیح کوتاه: قوانین forwarding را حذف میکند. پس از حذف، برای اعمال تغییرات firewall را با ufw reload بارگذاری مجدد کنید و سیستم را با reboot ریاستارت کنید.
جمعآوری دامنهها از چند اشتراک
این ابزار دامنهها را از اشتراکها استخراج میکند و برای generator یک whitelist میسازد.
node get_domains.js
توضیح کوتاه: لینک چند اشتراک را در اسکریپت اضافه کنید و دستور را اجرا کنید. خروجی، فهرست دامنهها خواهد بود. برای اجرای اسکریپت به Node.js نیاز است.
نکات و محدودیتهای فعلی
- فهرست عمومی دامنهها با همه ارائهدهندگان کار نمیکند، بنابراین توصیه میشود whitelist خودتان را بسازید و استفاده کنید.
مشارکت
از هرگونه مشارکت در توسعه پروژه استقبال میشود! روند ساده برای مشارکتکنندگان:
- مخزن را در GitHub fork کنید.
- شاخهای با نام معنادار بسازید، مثل
feature/add-READMEیاfix/whitelist-load. - تغییرات را اعمال کنید و توضیح کوتاهی در commit بنویسید.
- در صورت وجود، بررسیهای محلی را اجرا کنید.
- شاخه را به fork خود push کنید و در مخزن اصلی Pull Request بسازید.
نکته: تغییرات، هدف و مراحل تست را در PR توضیح دهید. اگر تغییرات بزرگ هستند، آنها را به commitهای کوچک تقسیم کنید.
گفتگو
- تلگرام: @denpiligrim_web
- بخش Issues در همین مخزن
