فعالسازی SSL در مرزبان
با فعال کردن SSL در مرزبان، داشبورد و لینک سابسکریپشن از طریق https در دسترس خواهد بود. رویکرد های متفاوتی برای فعالسازی SSL در مرزبان وجود دارد که در زیر به سه روش آن به ترتیب از ساده به پیچیده اشاره میکنیم.
نکته
در تمام مثال های پایین، فایل های docker-compose.yml و .env در مسیر /opt/marzban و xray_config.json در مسیر /var/lib/marzban میتوانید پیدا کنید.
در صورتی که مرزبان را به صورت دستی نصب کردهاید، باید تغییرات مورد نیاز را شخصاً انجام دهید.
فعالسازی SSL با Caddy
در این روش، شما نیازی به ساخت گواهی SSL ندارید، Caddy تمام کار را برای شما انجام میدهد!
- فایل
docker-compose.ymlبه شکل زیر تغییر دهید.
services:
marzban:
image: gozargah/marzban:latest
restart: always
env_file: .env
network_mode: host
volumes:
- /var/lib/marzban:/var/lib/marzban
depends_on:
- caddy
caddy:
image: caddy
restart: always
ports:
- 80:80
- 443:443
volumes:
- /var/lib/marzban:/var/lib/marzban
- ./Caddyfile:/etc/caddy/Caddyfile
- caddy_volume:/data
- caddy_volume:/config
volumes:
caddy_volume:- فایل جدیدی به نام
Caddyfileدر مسیر/opt/marzbanایجاد کنید وYOUR_DOMAINرا به دامنه یا سابدامنهی مورد نظر خود تغییر دهید.
توجه
حرف اول در نام فایل Caddyfile حتما باید C بزرگ باشد.
YOUR_DOMAIN {
reverse_proxy unix//var/lib/marzban/marzban.socket
}توجه
اگر میخواهید دامنه یا سابدامنهی سابسکریپشن از پنل متفاوت باشد، در فایل Caddyfile خود محتوای بالا رو دوبار زیرهم قرار داده و جفت دامنه یا سابدامنهها را بجای YOUR_DOMAIN قرار دهید.
- متغیر های زیر را در فایل
.envمقداردهی کنید.
YOUR_DOMAIN را به دامنه یا سابدامنهی مورد نظر خود تغییر دهید.
UVICORN_UDS = /var/lib/marzban/marzban.socket
XRAY_SUBSCRIPTION_URL_PREFIX = https://YOUR_DOMAIN- مرزبان را ریاستارت کنید.
marzban restartحالا داشبورد مرزبان در آدرس دامنه یا سابدامنهی شما از طریق https در دسترس خواهد بود.
فعالسازی SSL با Uvicorn
مرزبان به صورت پیشفرض به کمک Uvicorn اجرا میشود. همچنین Uvicorn به شما امکان تعریف فایل های گواهی SSL را میدهد.
برای شروع، شما باید فایل های گواهی را برای دامنه یا سابدامنهی خود دریافت کنید. برای این کار، آموزش ساخت گواهی SSL را مشاهده کنید.
بعد از ساخت فایل های گواهی SSL، متغیر های زیر را در فایل
.envمقداردهی کنید.
YOUR_DOMAIN را به دامنه یا سابدامنهی مورد نظر خود تغییر دهید.
UVICORN_PORT = 443
UVICORN_SSL_CERTFILE = "/var/lib/marzban/certs/YOUR_DOMAIN.cer"
UVICORN_SSL_KEYFILE = "/var/lib/marzban/certs/YOUR_DOMAIN.cer.key"
XRAY_SUBSCRIPTION_URL_PREFIX = https://YOUR_DOMAINحالا داشبورد مرزبان در آدرس دامنه یا سابدامنهی شما از طریق https در دسترس خواهد بود.
فعالسازی SSL با HAProxy
HAProxy یکی از بهترین ابزار ها برای انجام این کار هست. در این روش مرزبان را با کمک HAProxy روی https اجرا میکنیم.
برای شروع، شما باید فایل های گواهی را برای دامنه یا سابدامنهی خود دریافت کنید. برای این کار، آموزش ساخت گواهی SSL را مشاهده کنید.
فایل
docker-compose.ymlبه شکل زیر تغییر دهید.
services:
marzban:
image: gozargah/marzban:latest
restart: always
env_file: .env
network_mode: host
volumes:
- /var/lib/marzban:/var/lib/marzban
depends_on:
- haproxy
haproxy:
image: haproxy:latest
restart: always
volumes:
- ./haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg
- /var/lib/marzban:/var/lib/marzban
ports:
- 80:80
- 443:443- فایل جدیدی به نام
haproxy.cfgدر مسیر/opt/marzbanایجاد کنید وYOUR_DOMAINرا به دامنه یا سابدامنهی مورد نظر خود تغییر دهید.
defaults
mode tcp
timeout client 30s
timeout connect 4s
timeout server 30s
global
maxconn 10000000
frontend http_frontend
bind *:80
mode http
redirect scheme https code 301 if !{ ssl_fc }
frontend https_frontend
bind *:443 ssl crt /var/lib/marzban/certs/YOUR_DOMAIN.cer
default_backend marzban_backend
backend marzban_backend
server marzban /var/lib/marzban/marzban.socket- متغیر های زیر را در فایل
.envمقداردهی کنید.
YOUR_DOMAIN را به دامنه یا سابدامنهی مورد نظر خود تغییر دهید.
UVICORN_UDS = /var/lib/marzban/marzban.socket
XRAY_SUBSCRIPTION_URL_PREFIX = https://YOUR_DOMAIN- مرزبان را ریاستارت کنید.
marzban restartحالا داشبورد مرزبان در آدرس دامنه یا سابدامنهی شما از طریق https در دسترس خواهد بود.
