Marzban Install
Подготовка VPS
Подключиться по SSH к арендованному VPS:
ssh root@IP_VPSВыполнить команду (Если Linux или Debian):
apt update && apt upgradeБазовая установка Marzban
Ввести команду установки Marzban:
sudo bash -c "$(curl -sL https://github.com/Gozargah/Marzban-scripts/raw/master/marzban.sh)" @ installДождаться логов с пометкой, что можно закрывать логи нажатием Ctrl+C

Далее, Вам нужно создать главного администратора для входа в панель управления Marzban, выполнив следующую команду:
marzban cli admin create --sudoНа этом все, панелью можно пользоваться через ssh туннель, для этого в терминале (не в сессии ssh) вводим:
ssh -L 8000:localhost:8000 root@IP_VPSИ переходим по адресу
http://localhost:8000/dashboard/
для большей настройки потребуется либо домен либо пару кликов в телеграм
Углубленная установка
Вариант 1
Покупка домена не требуется, лишних трат не проводится, но вариативность страдает
Требуется перейти в телеграм, найти в поиске @BotFather
Далее создать бота и скопировать куда-то его id (Позже воспользуемся)
После создания бота требуется узнать свой id, для этого переходим в бота @TheGetAnyID_bot и нажимаем start или пишем /start
Полученный id так же сохроняем
Открываем .env файл:
nano /opt/marzban/.envили
marzban edit-envИщем там закомментированные строки, можно воспользоваться поиском - Ctrl+W и начать вбивать TELEGRAM (чувствителен к регистру)
#TELEGRAM_API_TOKEN =
#TELEGRAM_ADMIN_ID =Удаляем комментарии (#) и заполняем сохраненными ранее значениями
Далее выходим из nano - Ctrl+X -> Y
Выполняем команду:
marzban restartПосле прогрузки и вывода окна о возможности закрыть логи Ctrl+C можно переходить в бота и пользоваться (создавать, удалять редактировать пользователей, смотреть статистику и тд)
Вариант 2
Покупка домена требуется, это лишние траты, я брал на timeweb
Создаем поддомен
Создаем поддомен, соглашаемяся со всемы всплывахами

Переходим в настройки поддомена

Удаляем запись AAA
Редактируем запись A: Ставим адрес своего VPS
:
Установка сертификата
Возвращаемся в терминал ssh
Устанавливаем Certbot
sudo apt update
sudo apt install certbotПосле установки выполним команду получения сертификатов (отредактируй под свой поддомен)
sudo certbot certonly --standalone -d your-domain.com -d www.your-domain.comСертификат и ключ сохраняться по пути /etc/letsencrypt/live/your-domain.com/
Копируем сертификаты в видимую область docker контейнера marzban (отредактируй под свой домен)
mkdir /var/lib/marzban/carts/
cp /etc/letsencrypt/live/your-domain.com/fullchain.pem /var/lib/marzban/carts/fullchain.pem && cp /etc/letsencrypt/live/your-domain.com/privkey.pem /var/lib/marzban/carts/privkey.pemДалее требуется отредактировать .env
nano /opt/marzban/.envили
marzban edit-envИ редактируем параметры по сертификатам (Убирая комментарии)
UVICORN_PORT = Любой но лучше 6000+
DASHBOARD_PATH = "/Придумать путь к панели (опционально)/"
UVICORN_SSL_CERTFILE = "/var/lib/marzban/carts/fullchain.pem"
UVICORN_SSL_KEYFILE = "/var/lib/marzban/carts/privkey.pem"
XRAY_SUBSCRIPTION_URL_PREFIX = https://ТВОЙ_ДОМЕН:Порт_с_первой_строки
XRAY_SUBSCRIPTION_PATH = "Придумать путь к подписке (опцианально)"Сохраняем и перезапускаем marzban marzban restart
Далее можно попасть в веб панель по адресу https://Твой домен:указанный порт/dashboard/
🔥
Настройка Marzban
Настроить протоколы можно через Web-панель - значек шестиренки
Или через SSH
nano /var/lib/marzban/xray_config.jsonСписок протоколов (Основные) с примерами конфигов
| Атрибут | Значение |
|---|---|
| tag | название, что хочется то и пишем |
| port | Для vless желательно 443, но можно жанглировать как хочется |
| fingerprint | Можно выбрать random или chrome |
| privateKey | В терминале выполнить sudo docker exec marzban-marzban-1 xray x25519 |
| shortIds | В терминале выполнить openssl rand -hex 8 |
| spiderX | Позволяет иммитировать нахождение в какой-то подстранице сайта, ее можно вписывать рандомно, можно использовать реальные, типо у вк лента /feed, можно оставлять пустой / |
Инфо
Основные, которые использую я:
VLESS TCP REALITY
VMESS TCP
SHADOWSOCKS
TROJAN TCP TLS
Для дома в основном shadowsocks, самый легкий и быстрый по мне, но он самый уязвимый
VLESS
VLESS TCP REALITY (Основной Vless)
{
"tag": "VLESS TCP REALITY",
"listen": "0.0.0.0",
"port": 2040,
"protocol": "vless",
"settings": {
"clients": [],
"decryption": "none"
},
"streamSettings": {
"network": "tcp",
"tcpSettings": {},
"security": "reality",
"realitySettings": {
"show": false,
"dest": "Любое незаблоченное, например google/github/yahoo без http :443",
"xver": 0,
"serverNames": ["ПОВТОРЯЕМ"],
"privateKey": "ПРИВАТНЫЙ_КЛЮЧ",
"shortIds": ["ШОРТ_ИД"]
}
},
"sniffing": {
"enabled": true,
"destOverride": ["http", "tls", "quic"]
}
}VLESS GRPC REALITY
{
"tag": "VLESS GRPC REALITY",
"listen": "0.0.0.0",
"port": 2041,
"protocol": "vless",
"settings": {
"clients": [],
"decryption": "none"
},
"streamSettings": {
"network": "grpc",
"grpcSettings": {
"serviceName": "xyz"
},
"security": "reality",
"realitySettings": {
"show": false,
"dest": "Любое незаблоченное, например google/github/yahoo без http :443",
"xver": 0,
"serverNames": ["ПОВТОРЯЕМ"],
"privateKey": "ПРИВАТНЫЙ_КЛЮЧ",
"shortIds": ["ШОРТ_ИД"]
}
},
"sniffing": {
"enabled": true,
"destOverride": ["http", "tls", "quic"]
}
}VLESS GRPC REALITY (Требуется сертификат)
{
"tag": "VLESS WS Tls",
"listen": "0.0.0.0",
"port": 2046,
"protocol": "vless",
"settings": {
"clients": [],
"decryption": "none"
},
"streamSettings": {
"network": "ws",
"wsSettings": {
"path": "/"
},
"security": "tls",
"tlsSettings": {
"serverName": "Свой Сервак или любое другое",
"certificates": [
{
"ocspStapling": 3600,
"certificateFile": "Путь к сертификату",
"keyFile": "Путь к ключу"
}
],
"minVersion": "1.2",
"cipherSuites": "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256:TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256:TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384:TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384:TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"
}
}
}VMESS
VMESS TCP
{
"tag": "VMESS TCP",
"listen": "0.0.0.0",
"port": 2051,
"protocol": "vmess",
"settings": {
"clients": []
},
"streamSettings": {
"network": "tcp"
}
}VMESS TCP TLS (Требуется сертификат)
{
"tag": "VMESS TCP TLS",
"listen": "0.0.0.0",
"port": 2050,
"protocol": "vmess",
"settings": {
"clients": []
},
"streamSettings": {
"network": "tcp",
"security": "tls",
"tlsSettings": {
"serverName": "Свой сервак или любое другое",
"certificates": [
{
"ocspStapling": 3600,
"certificateFile": "Путь к сертификату",
"keyFile": "Путь к ключу"
}
],
"minVersion": "1.2",
"cipherSuites": "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256:TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256:TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384:TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384:TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"
}
}
}VMESS WS
{
"tag": "Vmess WS",
"listen": "0.0.0.0",
"port": 2054,
"protocol": "vmess",
"settings": {
"clients": []
},
"streamSettings": {
"network": "ws",
"security": "none",
"wsSettings": {
"path": "/"
}
},
"sniffing": {
"enabled": true,
"destOverride": ["http", "tls"]
}
}TROJAN
TROJAN TCP TLS
{
"tag": "TROJAN TCP TLS",
"listen": "0.0.0.0",
"port": 2057,
"protocol": "trojan",
"settings": {
"clients": []
},
"streamSettings": {
"network": "tcp",
"security": "tls",
"tlsSettings": {
"serverName": "Свой сервак или любой",
"certificates": [
{
"ocspStapling": 3600,
"certificateFile": "Путь к сетификату",
"keyFile": "Путь к ключу"
}
],
"minVersion": "1.2",
"cipherSuites": "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256:TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256:TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384:TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384:TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"
}
},
"sniffing": {
"enabled": true,
"destOverride": ["http", "tls"]
}
}SHADOWSOCKS
{
"tag": "SHADOWSOCKS",
"listen": "0.0.0.0",
"port": 2060,
"protocol": "shadowsocks",
"settings": {
"clients": [],
"network": "tcp,udp"
}
}Vless (Белые списки).
Примечание
Сейчас не актуально, надо искать другие способы
В inbounds требуется добавить следующую запись со своими корректировками
| Атрибут | Значение |
|---|---|
| tag | название, что хочется то и пишем |
| port | желательно 443, но практика показывает, что и на любой другой можно посадить спокойно |
| network | tpc, но можно и XHTTP использовать, его опишу позже при необходимости |
| fingerprint | Можно выбрать random или chrome |
| dest | Любой сайт из белых списков, на практике vk пока лучше всех работает |
| serverNames | Обязательное совпадение с dest, только без указания порта, можно еще накидать поддоменов для лучшей работы |
| privateKey | В терминале выполнить sudo docker exec marzban-marzban-1 xray x25519 |
| shortIds | В терминале выполнить openssl rand -hex 8 |
| spiderX | Позволяет иммитировать нахождение в какой-то подстранице сайта, ее можно вписывать рандомно, можно использовать реальные, типо у вк лента /feed, можно оставлять пустой / |
Останое не интересно, не трогаем
{
"tag": "ЧТО ХОЧЕТСЯ",
"listen": "0.0.0.0",
"port": 443,
"protocol": "vless",
"settings": {
"clients": [],
"decryption": "none"
},
"streamSettings": {
"network": "tcp",
"tcpSettings": {},
"security": "reality",
"realitySettings": {
"fingerprint": "random",
"show": false,
"dest": "vk.com:443",
"xver": 0,
"serverNames": [
"vk.com"
],
"privateKey": "ПРИВАТНЫЙ_КЛЮЧ",
"shortIds": [
"КОРОТКИЙ_ID"
],
"spiderX": "/"
}
},
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls",
"quic"
]
}
},