🤩Развертывание прокси протокола VLESS с помощью Marzban
Marzban - удобная панель для создания конфигов подключения к прокси различных протоколов, таких как VLESS, VMESS, Trojan, Shadowsocks. В данной инструкции мы рассмотрим подключение по протоколу VLESS.
Для начала подготовим сервер с установленным пакетом Marzban. Это можно сделать двумя разными способами. Вы можете выбрать наиболее подходящий для Вас.
1.1 Покупка необходимого тарифа с предустановленным Marzban
Для этого нам потребуется купить необходимый сервер в желаемой локации. В нашем случае это будет базовый тариф SWEs-1 в Швеции
Переходим в раздел «Предустановленного ПО»
В предустановленном ПО выбираем скрипт Marzban
Установка ОС будет произведена согласно указанной ОС в скрипте предустановленного ПО, в данном случае будет установлен Ubuntu 22.04 + Marzban
Выбираем желаемый срок аренды сервера, при необходимости отключаем услугу «Бекапы» и жмём кнопку "Оплатить":
Отлично. Теперь заказанный сервер будет активирован с установкой на него ОС и скрипта Marzban, после чего сервер будет готов к настройке панели и созданию конфига для подключения. Об этом подробно расскажем в пункте 2.
1.2 Переустановка существующего сервера с выполнением установки скрипта Marzban:
Перейдём в раздел услуг и нажмём иконку троеточия справа от уже купленного сервера, выберем пункт переустановить
Вы увидите данное меню, в котором перейдем во вкладку «Предустановленного ПО»
Выбираем скрипт Marzban, указываем новый пароль от сервера, нажимаем переустановить
Переустановка ОС будет произведена согласно указанной ОС в скрипте предустановленного ПО, в данном случае будет установлен Ubuntu 22.04 + Marzban
Отлично. Теперь ОС на сервере будет переустановлена с установкой скрипта Marzban, после чего сервер будет готов к настройке панели и созданию конфига для подключения. Об этом подробно расскажем в пункте 2.
Вы так же можете обратиться в поддержку для помощи в установке данного ПО.
2. Получение данных для входа в Marzban
Подключаемся к серверу посредством WinSCP (или другого удобного вам SFTP клиента) и указанием IP, логина и пароля из личного кабинета, либо письма с вашей почты.
В корневом каталоге необходимо открыть файл "marzban.txt" с данными для подключения к панели управления Marzban:
В связи с последними обновлениями безопасности, есть два варианта доступа в панель:
1. Через SSH-Туннель
2. Через привязку доменного имени к серверу и получении SSL сертификата
Рассмотрим оба случая
2.1 Вход в панель через SSH-Туннель
Для входа в панель без использования SSL сертификата и доменного имени, нам требуется создать туннель.
Команда для создания туннеля строится следующим образом:
ssh -L [локальный порт]:[удалённый хост]:[удалённый порт] [пользователь]@[адрес сервера]
В нашем случае команда выглядит следующим образом:
ssh -L 8000:localhost:8000 root@IP сервера
Для Windows систем команду необходимо вводить в командной строке (cmd).
Для Linux и MacOS - в терминале.
После ввода данной команды, подтверждаем подключение вводом "Yes" и затем вводим пароль от сервера, после подключения к серверу доступ к панели должен появиться с браузера вашего устройства.
Если пароль из файла marzban.txt не подошел, необходимо создать юзера командой ниже, после чего введите имя пользователя и пароль, остальные пункты можно пропустить клавишей Enter.
sudo marzban cli admin create --sudo
После входа мы увидим главную страницу панели:
2.2 Вход в панель Marzban через HTTPS
Для входа в панель Marzban через браузер без настройки SSH Туннелей требуется:
1. Приобрести и привязать доменное имя к серверу с панелью Marzban (возможно использование собственного доменного имени)
2. Выпустить SSL сертификат для доменного имени и указать сертификат в конфигурации панели Marzban
Если доменное имя уже имеется либо приобретено в другом месте, нужно добавить A-запись направленую на сервер с панелью Marzban
Правильно добавленная А-запись выглядит следующим образом:
После установки А-записи, необходимо дождаться обновления данных в глобальной сети:
Обычно это происходит в течении 5-15 минут, но иногда время обновления DNS-записей занимает до 24 часов.
Проверить обновление данных в сети можно в различных сервисах, например: https://dnschecker.org
После глобального обновления доменного имени, переходим в SSH-консоль сервера и выпустим SSL-сертификат с использованием скрипта Acme.sh
Ниже пошагово указаны команды для получения SSL-сертфиката через Acme.sh:
sudo apt install cron socat
curl https://get.acme.sh | sh -s email=Ваша почта
sudo mkdir -p /var/lib/marzban/certs/
В команде ниже необходимо обязательно указать Ваше используемое доменное имя после параметра -d
После выполнения команд вы увидите подобное сообщение о успешном выпуске сертификата:
Данный сертификат действует 3 месяца. Для автоматического продления его через cron, требуется оставить открытым 80 порт.
Откроем конфигурационный файл панели через редактор nano и укажем пути до SSL-сертификата:
nano /opt/marzban/.env
После внесения изменений, сохраняем файл и перезагружаем панель командой:
marzban restart
После перезапуска переходим в браузер по ссылке https://доменное_имя:8000/dashboard и наблюдаем окно входа в панель Marzban:
Если пароль из файла marzban.txt не подошел, необходимо создать юзера командой ниже, после чего введите имя пользователя и пароль, остальные пункты можно пропустить клавишей Enter.
sudo marzban cli admin create --sudo
После входа мы увидим главную страницу панели:
2.3 Настройка протокола Vless TCP Reality в панели Marzban и создание пользователя
Для качественной работы данного протокола необходимо:
1. Добавить протокол Vless TCP Reality в панель Marzban
2. Сменить Server Names ( по умолчанию установлен example.com)
3. Сменить Dest ( по умолчанию установлен example.com:443)
4. Смена ключа шифрования и параметра shortIds
5. Фикс ошибки Timeout при подключении через приложение Hiddify
6. Создание пользователя
Дальнейшие изменения будут проводиться в настройках, которые находятся в правом верхнем углу (знак настройки)
Начнем с добавления протокола Vless TCP Reality
Открываем данные настройки
Наблюдаем что в блоке "Inbounds" только Shadowsocks TCP, добавим Vless TCP Reality в начало блока после квадратной скобки
После добавления протокола, конфигурация должна выглядеть данным образом
После добавления протокола Vless TCP Reality требуется изменить значения:
1. ServerNames
2. Dest
3. Privatekey
4. shortIds
Сменим Server Name и Dest
Подбор Server Name и Dest рекомендуем выполнять командой ping
Чем ниже пинг до определенного сайта, тем меньше задержка при работающем соединении
Необходимо выбирать надежные сайты, если сайт будет недоступен, соединения не будет.
Обязательно выбирайте не популярные но надежные сайты в качествеServer Name и Dest для вашей конфигурации Vless TCP Reality.
Требования к сайту:
1. TLS 1.3
2. HTTP/2
3. Не должен находиться за CDN сервисом
Проверить ping можно командой:
ping сайт -c 4
Если вы не нашли сайт подходящий под данные требования, можно использовать сайты указанные ниже:
teamdocs.su
wikiportal.su
s3.aeza.net
В данном случае ping до сайта s3.aeza.net оказался самым низким, выберем его в качестве Server Name и Dest, укажем их в данные строки
Сгенерируем новые ключи шифрования и параметр shortIds в командной строке вашего сервера командами
docker exec marzban_marzban_1 xray x25519
Если вышла ошибка, попробуйте другую команду:
docker exec marzban-marzban-1 xray x25519
openssl rand -hex 8
Нам необходимо скопировать параметры Private key и shortIds после чего заменить их в панели
После внесения изменений, необходимо сохранить изменения, перезагрузить ядро и перезагрузить страницу в браузере
На данном моменте Vless TCP Reality настроен.
Нам осталось убрать ошибку "Таймаут" при подключении через программу Hiddify
Возвращаемся в конфигурацию панели и находим пункт "Routing"
Вставляем следующее правило в самое начало блока rules после квадратной скобки
После внесения изменений, необходимо их сохранить и перезагрузить ядро
Создадим пользователя в панели Marzban и выберем протокол Vless TCP Reality
Копируем ключ подключения к нашему серверу данным образом и переходим в третий пункт "Подключение ключа в клиент VLESS"
Готово. Вы создали пользователя для подключения к Вашему серверу, применили обязательные параметры, исправили ошибку "Таймаут"
3. Подключение ключа в клиент VLESS
Для ключей Vless есть несколько приложений для подключения:
1. Hiddify (Для Операционных систем Windows, Android, Linux)
2. Streisand (MacBook на процессорах от M1 и выше, Iphone, Ipad)
Рассмотрим подключение для каждого приложения из списка.