راه حل یکپارچه برای مدیریت پروتکل های مختلف. قدرت گرفته از Xray
English / فارسی / 简体中文 / Русский
#
فهرست مطالب
بررسی اجمالی چرا مرزبان؟ امکانات
راهنمای نصب تنظیمات استفاده از API پشتیبان گیری از مرزبان ربات تلگرام رابط خط فرمان (CLI) مرزبان ارسال اعلانها به آدرس وبهوک کمک مالی لایسنس مشارکت در توسعه
#
بررسی اجمالی
مرزبان یک نرم افزار (وب اپلیکیشن) مدیریت پروکسی است که امکان مدیریت چند صد حساب پروکسی را با قدرت و دسترسی بالا فراهم میکند. مرزبان از Xray-core قدرت گرفته و با Python و React پیاده سازی شده است.
#
چرا مرزبان؟
مرزبان دارای یک رابط کاربری ساده است که قابلیت های زیادی دارد. مرزبان امکان ایجاد چند نوع پروکسی برای کاربر ها را فراهم میکند بدون اینکه به تنظیمات پیچیده ای نیاز داشته باشید. به کمک رابط کاربری تحت وب مرزبان، شما میتوانید کاربران را مانیتور، ویرایش و در صورت نیاز، محدود کنید.
#
امکانات
- رابط کاربری تحت وب آماده
- به صورت REST API پیاده سازی شده
- پشتیبانی از پروتکل های Vmess, VLESS, Trojan و Shadowsocks
- امکان فعالسازی چندین پروتکل برای هر یوزر
- امکان ساخت چندین کاربر بر روی یک inbound
- پشتیبانی از چندین inbound بر روی یک port (به کمک fallbacks)
- محدودیت بر اساس مصرف ترافیک و تاریخ انقضا
- محدودیت ترافیک دوره ای (به عنوان مثال روزانه، هفتگی و غیره)
- پشتیبانی از Subscription link سازگار با V2ray (مثل نرم افزار های V2RayNG, OneClick, Nekoray و...) و Clash
- ساخت لینک اشتراک گذاری و QRcode به صورت خودکار
- مانیتورینگ منابع سرور و مصرف ترافیک
- پشتیبانی از تنظیمات xray
- پشتیبانی از TLS
- ربات تلگرام
- رابط خط فرمان (CLI) داخلی
- قابلیت ایجاد چندین مدیر (تکمیل نشده است)
#
راهنمای نصب
برای نصب کافیه دستور زیر رو اجرا کنید
sudo bash -c "$(curl -sL https://github.com/Gozargah/Marzban-scripts/raw/master/marzban.sh)" @ install
وقتی نصب تمام شد:
- شما لاگ های مرزبان رو مشاهده میکنید که میتوانید با بستن ترمینال یا فشار دادن
Ctrl+Cاز آن خارج شوید - فایل های مرزبان در پوشه
/opt/marzbanقرار میگیرند - فایل تنظیمات در مسیر
/opt/marzban/.envقرار میگیرد (تنظیمات را مشاهده کنید) - فایل های مهم (اطلاعات) مرزبان در مسیر
/usr/lib/marzbanقرار میگیرند - شما از طریق آدرس
http://YOUR_SERVER_IP:8000/dashboard/میتوانید وارد داشبورد مرزبان شوید (YOUR_SERVER_IP را با آیپی سرور خود عوض کنید)
در مرحله بعد, باید یک ادمین سودو بسازید
marzban cli admin create --sudo
تمام! حالا با این اطلاعات میتوانید وارد مرزبان شوید
برای مشاهده راهنمای اسکریپت مرزبان دستور زیر را اجرا کنید
marzban --help
اگر مشتاق هستید که مرزبان رو با پایتون و به صورت دستی اجرا کنید، مراحل زیر را مشاهده کنید
نصب به صورت دستی (پیچیده)
لطفا xray را نصب کنید. شما میتواند به کمک Xray-install این کار را انجام دهید.
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install
پروژه را clone کنید و dependency ها را نصب کنید. دقت کنید که نسخه پایتون شما Python>=3.8 باشد.
git clone https://github.com/Gozargah/Marzban.git
cd Marzban
wget -qO- https://bootstrap.pypa.io/get-pip.py | python3 -
python3 -m pip install -r requirements.txt
همچنین میتواند از , Python Virtualenv هم استفاده کنید.
سپس کامند زیر را اجرا کنید تا دیتابیس تنظیم شود.
alembic upgrade head
اگر می خواهید از marzban-cli استفاده کنید، باید آن را به یک فایل در $PATH خود لینک و قابل اجرا (executable) کنید. سپس تکمیل خودکار (auto-completion) آن را نصب کنید:
sudo ln -s $(pwd)/marzban-cli.py /usr/bin/marzban-cli
sudo chmod +x /usr/bin/marzban-cli
marzban-cli completion install
حالا یک کپی از .env.example با نام .env بسازید و با یک ادیتور آن را باز کنید و تنظیمات دلخواه خود را انجام دهید. یه عنوان مثال نام کاربری و رمز عبور را می توانید در این فایل تغییر دهید.
cp .env.example .env
nano .env
برای اطلاعات بیشتر بخش
تنظیمات را مطالعه کنید.
در انتها, مرزبان را به کمک دستور زیر اجرا کنید.
python3 main.py
اجرا با استفاده از systemctl در لینوکس
systemctl enable /var/lib/marzban/marzban.service
systemctl start marzban
اجرا با nginx
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
location ~* /(dashboard|api|docs|redoc|openapi.json) {
proxy_pass http://0.0.0.0:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
or
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name marzban.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
location / {
proxy_pass http://0.0.0.0:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
به صورت پیشفرض مرزبان در آدرس http://localhost:8000/dashboard اجرا میشود. شما میتوانید با تغییر UVICORN_HOST و UVICORN_PORT، هاست و پورت را تغییر دهید.
#
تنظیمات
متغیر های زیر در فایل
envیا.envاستفاده میشوند. شما می توانید با تعریف و تغییر آن ها، تنظیمات مرزبان را تغییر دهید.
#
استفاده از API
مرزبان به توسعه دهندگانAPI REST ارائه می دهد. برای مشاهده اسناد API در قالب Swagger UI یا ReDoc، متغیر DOCS=True را در تنظیمات خود ست کنید و در مرورگر به مسیر /docs و /redoc بروید.
#
پشتیبان گیری از مرزبان
بهتر است همیشه از فایل های مرزبان خود نسخه پشتیبان تهیه کنید تا در صورت خرابی سیستم یا حذف تصادفی اطلاعات از دست نروند. مراحل تهیه نسخه پشتیبان از مرزبان به شرح زیر است:
- به طور پیش فرض، تمام فایل های مهم مرزبان در
/var/lib/marzbanذخیره می شوند (در نسخه داکر). کل پوشه/var/lib/marzbanرا در یک مکان پشتیبان مورد نظر خود، مانند هارد دیسک خارجی یا فضای ذخیره سازی ابری کپی کنید. - علاوه بر این، مطمئن شوید که از فایل env خود که حاوی متغیرهای تنظیمات شما است و همچنین فایل پیکربندی Xray خود نسخه پشتیبان تهیه کنید.
با انجام این مراحل، می توانید اطمینان حاصل کنید که از تمام فایل ها و داده های مرزبان خود یک نسخه پشتیبان تهیه کرده اید. به خاطر داشته باشید که نسخه های پشتیبان خود را به طور مرتب به روز کنید تا آنها را به روز نگه دارید.
#
ربات تلگرام
مرزبان دارای یک ربات تلگرام داخلی است که می تواند مدیریت سرور، ایجاد و حذف کاربر و ارسال نوتیفیکیشن را انجام دهد. این ربات را می توان با انجام چند مرحله ساده به راحتی فعال کرد
برای فعال کردن ربات تلگرام:
- در تنظیمات، متغیر
TELEGRAM_API_TOKENرا به API TOKEN ربات تلگرام خود تنظیم کنید. - همینطور، متغیر
TELEGRAM_ADMIN_IDرا به شناسه عددی حساب تلگرام خود تنظیم کنید. شما میتوانید شناسه خود را از @userinfobot دریافت کنید.
#
رابط خط فرمان (CLI) مرزبان
مرزبان دارای یک رابط خط فرمان (Command Line Interface / CLI) داخلی است که به مدیران اجازه می دهد با مرزبان ارتباط مستقیم داشته باشند.
اگر از Docker برای مرزبان استفاده می کنید، بهتر است از دستور های docker exec یا docker-compose exec استفاده کنید تا به پوسته (shell) تعاملی کانتینر مرزبان دسترسی پیدا کنید.
برای مثال، به پوشه ی docker-compose.yml مرزبان بروید و دستور زیر را اجرا کنید:
$ sudo docker-compose exec -it marzban bash
رابط خط فرمان (CLI) مرزبان از طریق دستور marzban-cli هرکجا در دسترس خواهد بود!
برای کسب اطلاعات بیشتر می توانید مستندات CLI مرزبان را مطالعه کنید.
#
ارسال اعلانها به آدرس وبهوک
شما میتوانید آدرسی را برای مرزبان فراهم کنید تا تغییرات کاربران را به صورت اعلان برای شما ارسال کند.
اعلانها به صورت یک درخواست POST به آدرسی که در WEBHOOK_ADDRESS فراهم شده به همراه مقدار تعیین شده در WEBHOOK_SECRET به عنوان x-webhook-secret در header درخواست ارسال میشوند.
نمونهای از درخواست ارسال شده توسط مرزبان:
Headers:
Host: 0.0.0.0:9000
User-Agent: python-requests/2.28.1
Accept-Encoding: gzip, deflate
Accept: */*
Connection: keep-alive
x-webhook-secret: something-very-very-secret
Content-Length: 107
Content-Type: application/json
Body:
{"username": "marzban_test_user", "action": "user_updated", "enqueued_at": 1680506457.636369, "tries": 0}
انواع مختلف actionهایی که مرزبان ارسال میکند: user_created, user_updated, user_deleted, user_limited, user_expired, user_disabled, user_enabled
#
کمک مالی
اگر مرزبان را برای شما مفید بوده و میخواهید از توسعه آن حمایت کنید، میتوانید در یکی از طریق یکی از شبکه های کریپتو زیر کمک مالی کنید:
- شبکه TRON (TRX):
TX8kJoDcowQPBFTYHAJR36GyoUKP1Xwzkb - شبکه ETH، BNB، MATIC:
0xFdc9ad32454FA4fc4733270FCc12ddBFb68b83F7 - شبکه بیت کوین:
bc1qpys2nefgsjjgae3g3gqy9crsv3h3rm96tlkz0v - شبکه Dogecoin:
DJAocBAu8y6LwhDKUktLAyzV8xyoFeHH6R - شبکه TON:
EQAVf-7hAXHlF-jmrKE44oBwN7HGQFVBLAtrOsev5K4qR4P8
از حمایت شما متشکرم!
#
لایسنس
توسعه یافته شده در [ناشناس!] و منتشر شده تحت لایسنس AGPL-3.0.
#
مشارکت در توسعه
این ❤️🔥 تقدیم به همهی کسایی که در توسعه مرزبان مشارکت میکنند! اگر میخواهید مشارکت داشته باشید، لطفاً دستورالعملهای مشارکت ما را بررسی کنید و در صورت تمایل Pull Request ارسال کنید یا یک Issue باز کنید. همچنین از شما برای پیوستن به گروه تلگرام ما برای حمایت یا کمک به راهنمایی استقبال می کنیم.
لطفا اگر امکانش رو دارید، با بررسی لیست کار ها به ما در بهبود مرزبان کمک کنید. کمک های شما با آغوش باز پذیرفته میشه.
با تشکر از همه همکارانی که به بهبود مرزبان کمک کردند:
ساخته شده با contrib.rocks