Marzban - панель для создания конфигов подключения к прокси различных протоколов, таких как VLESS, VMESS, Trojan, Shadowsocks. В данной инструкции мы рассмотрим подключение по протоколу VLESS.
Для установки Marzban подключитесь к серверу через консоль и выполните следующую команду:
bash -c "$(curl -sL https://github.com/Gozargah/Marzban-scripts/raw/master/marzban.sh)" @ install
На скриншоте выше можно наблюдать установленный и запущенный Marzban, для выхода нажмите CTRL+C
Далее создаем пользователя панели Marzban
marzban cli admin create --sudo
Пользователь панели успешно создан
В связи с последними обновлениями безопасности, есть два варианта доступа в панель:
- Через SSH-Туннель
- Через привязку доменного имени к серверу и получении SSL сертификата
Рассмотрим оба случая
Для входа в панель без использования SSL сертификата и доменного имени, нам требуется создать туннель.
Команда для создания туннеля строится следующим образом:
ssh -L [локальный порт]:[удалённый хост]:[удалённый порт] [пользователь]@[адрес сервера]
В нашем случае команда выглядит следующим образом:
ssh -L 8000:localhost:8000 root@IP сервера
Для Windows систем команду необходимо вводить в командной строке (cmd).
Для Linux и MacOS - в терминале.
После ввода данной команды, подтверждаем подключение вводом "Yes" и затем вводим пароль от сервера, после подключения к серверу доступ к панели должен появиться с браузера вашего устройства.
Теперь панель должна быть доступна в браузере по ссылке: http://127.0.0.1:8000/dashboard/
Далее можете переходить к следующему шагу
Нам потребуется программа Termius - Android
https://apps.apple.com/ru/app/termius-terminal-ssh-client/id549039908 - IOS и MacOS
После установки переходим в нее и первый раз авторизуемся на сервере через SSH, после чего выходим в главное меню и выбираем вкладку "Port Forwarding"
В нижнем углу нажимаем "+" после чего выбираем Local и нажимаем Continue
![]() |
![]() |
---|---|
Выбираем сервер из списка, после чего указываем следующие данные:
Задаем имя данному туннелю и нажимаем на "Галочку" чтобы сохранить настройки:
Активируем туннель путем нажатия на данное правило:
Теперь панель должна быть доступна в браузере по ссылке: http://127.0.0.1:8000/dashboard/
После входа мы увидим главную страницу панели:
Далее можете переходить к следующему шагу
Для входа в панель Marzban через браузер без настройки SSH Туннелей требуется:
Вы можете быстро и легко приобрести домен у нас на сайте за несколько минут - https://my.aeza.net/order/domain
Если доменное имя уже имеется либо приобретено в другом месте, нужно добавить A-запись направленую на сервер с панелью Marzban
Правильно добавленная А-запись выглядит следующим образом:
После установки А-записи, необходимо дождаться обновления данных в глобальной сети:
Обычно это происходит в течении 5-15 минут, но иногда время обновления DNS-записей занимает до 24 часов.
Проверить обновление данных в сети можно в различных сервисах, например: https://dnschecker.org
После глобального обновления доменного имени, переходим в SSH-консоль сервера и выпустим SSL-сертификат с использованием скрипта Acme.sh
Ниже пошагово указаны команды для получения SSL-сертфиката через Acme.sh:
apt install cron socat
curl https://get.acme.sh | sh -s email=Ваша почта
mkdir -p /var/lib/marzban/certs/
В команде ниже необходимо обязательно указать Ваше используемое доменное имя после параметра -d
~/.acme.sh/acme.sh --set-default-ca --server letsencrypt --issue --standalone -d Ваше_доменное_имя \
--key-file /var/lib/marzban/certs/key.pem \
--fullchain-file /var/lib/marzban/certs/fullchain.pem
После выполнения команд вы увидите подобное сообщение о успешном выпуске сертификата:
Данный сертификат действует 3 месяца. Для автоматического продления его через cron, требуется оставить открытым 80 порт.
Откроем конфигурационный файл панели через редактор nano и укажем пути до SSL-сертификата:
nano /opt/marzban/.env
После внесения изменений, сохраняем файл и перезагружаем панель командой:
marzban restart
После перезапуска переходим в браузер по ссылке https://доменное_имя:8000/dashboard
и наблюдаем окно входа в панель Marzban:
После входа мы увидим главную страницу панели:
Для качественной работы данного протокола необходимо:
{
"tag": "VLESS TCP REALITY",
"listen": "0.0.0.0",
"port": 8443,
"protocol": "vless",
"settings": {
"clients": [],
"decryption": "none"
},
"streamSettings": {
"network": "tcp",
"tcpSettings": {},
"security": "reality",
"realitySettings": {
"show": false,
"dest": "заменить:443",
"xver": 0,
"serverNames": [
"заменить"
],
"privateKey": "заменить",
"shortIds": [
"заменить"
]
}
},
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls",
"quic"
]
}
},
После добавления протокола, конфигурация должна выглядеть данным образом
После добавления протокола Vless TCP Reality требуется изменить значения:
Подбор Server Name и Dest рекомендуем выполнять командой ping
Чем ниже пинг до определенного сайта, тем меньше задержка при работающем соединении
Необходимо выбирать надежные сайты, если сайт будет недоступен, соединения не будет.
Обязательно выбирайте не популярные но надежные сайты в качестве Server Name и Dest для вашей конфигурации Vless TCP Reality.
**Требования к сайту:
ping сайт -c 4
Если вы не нашли сайт подходящий под данные требования, можно использовать сайты указанные ниже:
**
Лучше подходит для серверов в Швеции:**
teamdocs.su
Лучше подходит для серверов в Германии:
wikiportal.su
Лучше подходит для серверов в Москве:
docscenter.su
В данном случае ping до сайта teamdocs.su оказался самым низким, выберем его в качестве Server Name и Dest, укажем их в данные строки
Сгенерируем новые ключи шифрования и параметр shortIds в командной строке вашего сервера командами
docker exec marzban_marzban_1 xray x25519
Если вышла ошибка, попробуйте другую команду:
docker exec marzban-marzban-1 xray x25519
shortIds:
openssl rand -hex 8
Нам необходимо скопировать параметры Private key и shortIds после чего заменить их в панели
После внесения изменений, необходимо сохранить изменения, перезагрузить ядро и перезагрузить страницу в браузере
На данном моменте Vless TCP Reality настроен.
С тем как подключить клиентов к вашему серверу вы можете ознакомиться в следующей статье
Возвращаемся в конфигурацию панели и находим пункт "Routing"
Вставляем следующее правило в самое начало блока rules после квадратной скобки
{
"outboundTag": "DIRECT",
"domain": [
"full:cp.cloudflare.com",
"domain:msftconnecttest.com",
"domain:msftncsi.com",
"domain:connectivitycheck.gstatic.com",
"domain:captive.apple.com",
"full:detectportal.firefox.com",
"domain:networkcheck.kde.org",
"full:*.gstatic.com"
],
"type": "field"
},
После внесения изменений, необходимо их сохранить и перезагрузить ядро
Готово! Ошибка должна пропасть.