مرزبان نود
مرزبان نود (Marzban Node) به شما اجازه میدهد تا بار ترافیکی را میان سرورهای مختلف پخش کنید و همچنین امکان استفاده از سرورهایی با لوکیشنهای متفاوت را فراهم میکند. به کمک مطالب این صفحه شما میتوانید مرزبان نود را روی یک یا چندین سرور جانبی پیکربندی و راهاندازی کرده، و آنها را به پنل مرزبان متصل کنید تا بتوانید از این سرورها در کانفیگهای خود استفاده نمایید. در ادامه نیز نحوه اتصال نود به چند پنل مرزبان را مشاهده خواهید کرد.
نصب سریع (پیشنهادی)
- با دستور زیر مرزبان نود را روی سرور خود نصب کنید.
sudo bash -c "$(curl -sL https://github.com/Gozargah/Marzban-scripts/raw/master/marzban-node.sh)" @ install
- با دستور زیر مرزبان نود را با اسم دلخواه خودتان روی سرور نصب کنید.
sudo bash -c "$(curl -sL https://github.com/Gozargah/Marzban-scripts/raw/master/marzban-node.sh)" @ install --name marzban-node2
- با دستور زیر فقط اسکریپت را نصب کنید تا کامندهای مرزبان نود را داشته باشید.
sudo bash -c "$(curl -sL https://github.com/Gozargah/Marzban-scripts/raw/master/marzban-node.sh)" @ install-script
نکته
- برای دیدن همه کامندهای مرزبان نود از کامند زیر استفاده کنید.
marzban-node help
نکته
توضیحات کامندهای مرزبان نود در داکیومنت اسکریپت مرزبان وجود دارند.
نصب دستی (پیشرفته)
- پس از وارد شدن به ترمینال سرور نود، ابتدا با دستور زیر سرور را آپدیت و برنامههای مورد نیاز را نصب کنید.
apt-get update; apt-get install curl socat git -y
- داکر را نصب کنید.
curl -fsSL https://get.docker.com | sh
- مرزبان نود را کلون کرده و سپس فولدر آن را ایجاد کنید.
git clone https://github.com/Gozargah/Marzban-node
mkdir /var/lib/marzban-node
- برای برقراری ارتباط امن میان نود و پنل مرزبان، لازم است در فایل
docker-compose.yml
تغییراتی اعمال شود. پس وارد فولدر اصلی مرزبان نود شده، و این فایل را برای ویرایش باز کنید.
cd ~/Marzban-node
nano docker-compose.yml
نکته
فایلdocker-compose.yml
به راستای خطوط و فاصلهگذاریها حساس است. برای صحتسنجی پیکربندی خود میتوانید از ابزار yamlchecker کمک بگیرید.
با حذف
#
از پشت عبارتSSL_CLIENT_CERT_FILE
آن را از حالت کامنت خارج کنید و این خط را با خط بالا در یک راستا قرار دهید. در صورت تمایل میتوانید دو خط مربوط بهSSL_CERT_FILE
وSSL_KEY_FILE
را حذف کنید.اگر از نسخه 0.4.4 و جدیدتر مرزبان استفاده میکنید، میتوانید با فعالسازی پروتکل
rest
پایداری اتصال نودها را بهبود دهید. برای این کار با حذف#
خط مربوطه را از حالت کامنت خارج کنید.
پس از ذخیره تغییرات، در نهایت محتویات فایل شما به این صورت خواهد بود:
services:
marzban-node:
# build: .
image: gozargah/marzban-node:latest
restart: always
network_mode: host
# env_file: .env
environment:
SSL_CERT_FILE: "/var/lib/marzban-node/ssl_cert.pem"
SSL_KEY_FILE: "/var/lib/marzban-node/ssl_key.pem"
SSL_CLIENT_CERT_FILE: "/var/lib/marzban-node/ssl_client_cert.pem"
SERVICE_PROTOCOL: "rest"
volumes:
- /var/lib/marzban-node:/var/lib/marzban-node
نکته
اگر قصد تغییر پورتهای اتصال نود به مرزبان را دارید، میتوانید دو متغیر XRAY_API_PORT
و SERVICE_PORT
را به بخش environment
در این فایل اضافه کنید و پورتهای مد نظر خود را قرار دهید. (مشاهده نمونه پیکربندی)
استفاده از فایل .env
(اختیاری)
در صورت تمایل میتوانید متغیرهای محیطی مرزبان نود را از فایل .env
تنظیم کنید.
یک کپی از فایل .env.example
بسازید، آن را برای ویرایش باز کنید و تغییرات مورد نیاز را در این فایل انجام دهید.
cp .env.example .env
nano .env
فایل docker-compose.yml
را به صورت زیر تنظیم کنید.
services:
marzban-node:
# build: .
image: gozargah/marzban-node:latest
restart: always
network_mode: host
env_file: .env
volumes:
- /var/lib/marzban-node:/var/lib/marzban-node
اکنون در پنل خود از طریق منو وارد بخش
Node Settings
شوید. سپس با کلیک بر رویAdd New Mazrban Node
یک نود جدید اضافه کنید.با کلیک بر روی دکمه
Show Certificate
سرتیفیکیت مورد نیاز برای اتصال نود را مشاهده خواهید کرد. این سرتیفیکیت را کپی کنید و ادامه مراحل را از ترمینال سرور نود دنبال نمایید.
- با دستور زیر فایل سرتیفیکیت را ایجاد کرده و محتوای کپی شده را را درون آن قرار دهید.
nano /var/lib/marzban-node/ssl_client_cert.pem
- سپس مرزبان نود را اجرا کنید.
docker compose up -d
- به پنل مرزبان بازگردید و بخشهای مختلف را به صورت زیر تکمیل کنید:
- در قسمت
Name
یک نام دلخواه برای نود انتخاب کنید. - در قسمت
Address
آیپی سرور نود را قرار دهید. - پورتهای پیشفرض اتصال نود شامل
Port
وAPI Port
را بدون تغییر باقی بگذارید. مقدار پیشفرض به ترتیب62050
و62051
است. - در قسمت
Usage Ratio
میتوانید ضریب مصرف نود را تغییر دهید. مقدار پیشفرض1
است. - در صورتی که میخواهید آیپی سرور نود برای همه اینباندها به عنوان یک هاست اضافه شود، تیک
Add this node as a new host for every inbound
را فعال کنید.
نکته
شما میتوانید این تیک را غیرفعال کرده و از سرور نود تنها برای اینباندهای مورد نیاز در بخش Host Settings
استفاده کنید.
- در نهایت با کلیک بر روی
Add Node
نود را اضافه کنید. حالا مرزبان نود آماده استفاده است. شما میتوانید با مدیریت هاستهای خود در بخشHost Settings
سرور نود را برای اینباندهای مورد نظر به کار بگیرید.
توجه
در صورتی که در سرور نود فایروال فعال کردهاید، لازم است پورتهای اتصال نود به پنل و همچنین پورتهای اینباندها را در فایروال سرور نود باز کنید.
اتصال مرزبان نود به چند پنل
در صورتی که نیاز دارید یک سرور نود را به چند پنل مرزبان متصل کنید، لازم است در فایل docker-compose.yml
به ازای هر پنل، یک سرویس نود اضافه نمایید. این کار به دو حالت قابل انجام است.
نکته
شما میتوانید در هر دو حالت پیکربندی، پورتهای استفاده شده در نمونه فایلهای docker-compose.yml
را مطابق نیاز خود تغییر دهید. همچنین میتوانید در این فایل به تعداد مورد نیاز، سرویس نود اضافه کنید.
حالت اول: با استفاده از Host Network
در این حالت شما در اینباندهای خود امکان استفاده از تمامی پورتهای در دسترس را دارید. توجه داشته باشید که در این حالت تمامی پورتهای استفاده شده در Xray-Core پنلها، در سرور نود Listen خواهند شد. این بدین معناست که در صورت وجود پورت تکراری در هستهی Xray پنلها، امکان اختلال در اتصال نود و یا کانفیگها وجود دارد. برای مواجه نشدن با این مشکل میتوانید در صورت لزوم کانفیگهای خود را تکپورت کنید، و یا از حالت دوم اقدام نمایید.
- از نمونه زیر برای اضافه کردن دو سرویس نود به فایل
docker-compose.yml
استفاده کنید.
نمونه پیکربندی فایل docker-compose.yml
services:
marzban-node-1:
# build: .
image: gozargah/marzban-node:latest
restart: always
network_mode: host
environment:
SERVICE_PORT: 2000
XRAY_API_PORT: 2001
SSL_CLIENT_CERT_FILE: "/var/lib/marzban-node/ssl_client_cert_1.pem"
SERVICE_PROTOCOL: "rest"
volumes:
- /var/lib/marzban-node:/var/lib/marzban-node
- /var/lib/marzban:/var/lib/marzban
marzban-node-2:
# build: .
image: gozargah/marzban-node:latest
restart: always
network_mode: host
environment:
SERVICE_PORT: 3000
XRAY_API_PORT: 3001
SSL_CLIENT_CERT_FILE: "/var/lib/marzban-node/ssl_client_cert_2.pem"
SERVICE_PROTOCOL: "rest"
volumes:
- /var/lib/marzban-node:/var/lib/marzban-node
- /var/lib/marzban:/var/lib/marzban
- سپس سرتیفیکیت مورد نیاز را از پنلها دریافت نموده و هر کدام را در مسیری که در نمونه مشخص شده است قرار دهید.
- مرزبان نود را اجرا کنید.
docker compose up -d
- پورتهای اتصال نود به پنلها و پورتهای قابل استفاده در اینباندها به شرح زیر خواهد بود:
متغیر | پنل اول | پنل دوم |
---|---|---|
Port | 2000 | 3000 |
API Port | 2001 | 3001 |
Inbound Ports | دلخواه | دلخواه |
حالت دوم: با استفاده از Port Mapping
در این حالت، فقط پورتهای معین شده قابل استفاده هستند و از وجود پورتهای تکراری در سرور نود جلوگیری خواهد شد. توجه داشته باشید که شما باید پورتهای مورد استفاده در اینباندهای خود را در فایل docker-compose.yml
مانند نمونه قرار دهید.
- از نمونه زیر برای اضافه کردن دو سرویس نود به فایل
docker-compose.yml
استفاده کنید.
نمونه پیکربندی فایل docker-compose.yml
services:
marzban-node-1:
image: gozargah/marzban-node:latest
restart: always
environment:
SSL_CLIENT_CERT_FILE: "/var/lib/marzban-node/ssl_client_cert_1.pem"
SERVICE_PROTOCOL: "rest"
volumes:
- /var/lib/marzban-node:/var/lib/marzban-node
- /var/lib/marzban:/var/lib/marzban
ports:
- 2000:62050
- 2001:62051
- 2053:2053
- 2054:2054
marzban-node-2:
image: gozargah/marzban-node:latest
restart: always
environment:
SSL_CLIENT_CERT_FILE: "/var/lib/marzban-node/ssl_client_cert_2.pem"
SERVICE_PROTOCOL: "rest"
volumes:
- /var/lib/marzban-node:/var/lib/marzban-node
- /var/lib/marzban:/var/lib/marzban
ports:
- 3000:62050
- 3001:62051
- 2096:2096
- 2097:2097
پس از دریافت سرتیفیکیتهای مورد نیاز از پنلها و قرار دادن آنها در مسیرهای مشخص شده، مرزبان نود را اجرا کنید.
پورتهای اتصال نود به پنلها و پورتهای قابل استفاده در اینباندها به شرح زیر خواهد بود:
متغیر | پنل اول | پنل دوم |
---|---|---|
Port | 2000 | 3000 |
API Port | 2001 | 3001 |
Inbound Ports | 2053 2054 | 2096 2097 |
نکته
اگر در سرور نود قصد استفاده از وارپ دارید و فایل docker-compose.yml
را با حالت Port Mapping
پیکربندی کردهاید، میبایست وارپ را با هسته Xray
فعال کنید. در صورت استفاده از هسته Wireguard
وارپ در سرور نود کار نخواهد کرد.
آپدیت مرزبان نود
برای آپدیت مرزبان نود، دستورات زیر را به ترتیب اجرا کنید.
cd ~/Marzban-node
docker compose pull
docker compose down --remove-orphans; docker compose up -d
نکات تکمیلی
نکته اول
در صورت اعمال تغییر در فایل docker-compose.yml
با دستور زیر مرزبان نود را ریاستارت کنید.
cd ~/Marzban-node
docker compose down --remove-orphans; docker compose up -d
برای مشاهده لاگهای مرزبان نود از دستور زیر استفاده کنید.
cd ~/Marzban-node
docker compose logs -f
نکته دوم
برای تغییر نسخه Xray-core
مرزبان نود، به آموزش تغییر ورژن Xray-core رجوع کنید.
نکته سوم
برای مدیریت بهتر بر دسترسی کاربران به نودهای مختلف، میتوانید برای هر نود یک اینباند مجزا با Tag
و Port
متفاوت در Core Settings
اضافه کنید و اینباند مد نظر را برای کاربر فعال یا غیرفعال کنید.
نکته چهارم
چنانچه قصد استفاده از کانفیگهای TLSدار را دارید، میبایست برای دامنه خود در سرور نود سرتیفیکیت گرفته، سپس آن را به سرور اصلی منتقل کنید و مسیر فایلهای سرتیفیکیت را در اینباند وارد نمایید. همچنین به جای چند سرتیفیکیت برای چند سابدامین، میتوانید یک سرتیفیکیت Wildcard
برای دامنه اصلی خود بگیرید تا برای همه سابدامینها مورد استفاده قرار گیرد.
پیکربندی
لیست متغیرهای محیطی مرزبان نود را در این قسمت مشاهده میکنید. شما میتوانید تمام این متغیرها در فایل docker-compose.yml
و یا .env
مربوط به مرزبان نود مقداردهی کنید.
Environment Variables
SERVICE_PORT
- مقدار پیشفرض:
62050
پورت سرویس مرزبان نود
XRAY_API_PORT
- مقدار پیشفرض:
62051
پورت Xray Api
XRAY_EXECUTABLE_PATH
- مقدار پیشفرض:
/usr/local/bin/xray
آدرس فایل اجرایی xray
XRAY_ASSETS_PATH
- مقدار پیشفرض:
/usr/local/share/xray
آدرس پوشه فایل های asset برای xray (فایل های geoip.dat
و geosite.dat
)
SSL_CERT_FILE
- مقدار پیشفرض:
/var/lib/marzban-node/ssl_cert.pem
آدرس فایل certificate گواهی SSL
SSL_KEY_FILE
- مقدار پیشفرض:
/var/lib/marzban-node/ssl_key.pem
آدرس فایل key گواهی SSL
SSL_CLIENT_CERT_FILE
آدرس فایل certificate کاربر
DEBUG
- مقدار پیشفرض:
False
فعالسازی حالت توسعه (development)
SERVICE_PROTOCOL
- مقدار پیشفرض:
rpyc
پروتکل سرویس مرزبان نود