Серия «X-ray и компания»

25

Marzban - Еще одна панель для управления proxy на базе XRay-core

Сегодня поговорим о такой панели управления как Marzban

Marzban - это программное обеспечение (веб-приложение) для управления прокси-серверами. Это программное обеспечение вдохновлено Xray-core и реализовано с использованием Python и React.

Плюсы

  1. Простая установка и настройка.

  2. Не нужно думать и создавать кучу входящих соединений на разных протоколах и поддерживать это для каждого пользователя, достаточно выбрать какие протоколы включить или выключить и для каждого уже созданного пользователя или вновь создаваемого пользователя конфиги сразу будут достпны.

  3. Rest API

  4. Возможна масштабируемость на несколько серверов, для поддержки нескольких локаций

  5. Хорошая документация на русском языке

Минусы

Можно конечно попридераться, но все исправимо, что-то легче, что-то сложнее. То что исправляется легко я исправил своим скриптом, все остальное не так критично.

Установка:

Вам понадобится чистый сервер с минимум 1 CPU и 1 Gb RAM, 10 Gb на диске.
ОС Ubuntu 20
Любой ssh клиент установленный на вашем домашнем ПК
Доменное имя, подойдет сабдомен от duckdns, как его получить рассказывал в паре прошлых статей (тыц туц). А если у вас еще нет сервера, вы его хотите и возможно вы захотите сказать спасибо мне за статью, то приобретайте сервер у компании VEESP по моей реферальной ссылке, бесплатное доменное имя третьего уровня можно будет выбрать при заказе VPS.

Итак, подключаемся к серверу по ssh с пользователем root и выполняем команды:
wget https://raw.githubusercontent.com/mozaroc/bash-hooks/main/in...
chmod +x install_marzban.sh
./install_marzban.sh ВАШЕ_ДОМЕННОЕ_ИМЯ

Что сделает скрипт:
1. Установит докер
2. Установит вебсервер caddy для реверспроксирования и автоматического получения и продления SSL сертифика
3. Подготовит конфиги для marzban (перенос на 127.0.0.1 что бы не светить http в свет, ссылка для подписки, сгенерирует пароль администратора)
4. Подготовит конфиг для кадди (автоматическое получение и продление сертификата, реверспроксирование на внутренний адрес и порт для marzban, рандомный порт на котором caddy будет принимать подключения в панель)

Скрипт выполняется 3-5 минут а в конце, если все хорошо, выдаст следующее:

Marzban installation finished, it is running now...

###############################################

username: admin

password: ЧЧXXcxCCasfg

###############################################

The panel is available at https://ВАШЕ_ДОМЕННОЕ_ИМЯ:64125/dashboard

###############################################

Копируем адрес, и идем авторизовываться c указанными логином и паролем.

Перед созданием подкючений ищем какой-либо домен в сети провайдера, которым будем прикрываться.

Ищем программой https://github.com/XTLS/RealiTLScanner/releases
скачиваем, распаковываем и запускаем из cmd командой:
.\RealiTLScanner-windows-64.exe -addr 1.1.1.1 -port 443 -thread 100 -timeOut 5
где 1.1.1.1 IP адрес вашего VPS сервера.

Идея! У некоторых хостеров есть собственные зеркала Linux, это как раз тот домен который можно безопасно использовать для фейкового домена, проверить можно так - просто вбивайте в браузере https://mirror.ДОМЕНХОСТЕРА
Если что-то открывается то отлично, смело используйте это доменное имя.

Далее идем в настройки ядра и настраиваем протокол VLESS TCP REALITY

В появившемся окне мотаем до нужного протокола (VLESS TCP REALITY)

Значение порт меняем на 443
Значение dest меняем на найденный нами сайт
И проматываем еще чуть ниже и меняем еще два занчения в serverNames

В качестве второго можно указать сайт вашего хостера. Далее сохраняем и перезапускаем ядро:

Далее можно переходить к настройкам пользователей.
Нажимаем Create User

В появившемся окне заполняем поле Username
Далее по трем точкам настраиваем протокол Vless, нужно обязательно указать Flow как указано на скриншоте. И нажимаем Create User для сохранения.

Остальные протоколы оставляем как есть, т.к. они если и будут использоваться то в качестве резерва.

Теперь мы видим нашего пользователя в списке, справа в строчке мы можем скопировать сылку на подписку, скопировать все конфиги ссылка и показать QR-code для сканирования

В QR кодах, левый это код для ссылки подписки, а првые можно полистать, это коды ссылок отдельных протоколов. К сожалению они не подписаны, поэтому не очень понятно какой и где, но это не так важно, т.к. подписка всегда удобней.

По щелчку на самого пользователя мы попадем в меню редактирования, в котором можно подправить настройки протоколов для пользователя, посмотреть и сбросить статистику использвоания, а так же удалить его.

Теперь ссылку на подписку можно скармливать клиентам, для некобокс это делается копипастом в интерфейс, возможно потребуется удалить уже настроенный профайл, в мобильных клиентах это отдельные разделы. Для nekoray - Копируем ссылку в панели для пользователя, запускаем приложение, и просто по Ctrl+V вставляем, нажимаем ОК

Самые рабочие подключения у нас это VLESS, через 443 порт, выбираем его, запускаем, проверяем

Для FoXray - Заходим в раздел Subscriptions и добавляем по плюсику, переслать и скопировать ссылку можно через какой-либо мессенджер.

Далее заполняем имя, вводим URL и нажимаем Add

Теперь в списке доступных подключений видим что все создалось, находим VLESS-tcp reality, запускаем, проверяем

Для Android открываем приложение v2rayNG на телефоне, в правом верхнем углу тыкаем на плюсик и выбираем Импорт профиля из QR-кода

Выбираем отсканировать или открыть код из файла

Сканируем QR-код подписки, но сразу подключение не добавится, нужно дать команду на обновление подписки. Жмем по трем точкам в правом верхнем углу и выбираем Обновить подписку

Наше подключение появится и можно его запускать. Далее если произошли какие-то изменения в настройках подключения для пользователя со стороны сервера эти обновления автоматически скачаются.

И конечно не забываем настроить маршрутизацию трафика, что бы не гонять локальные сайты через VPN, да и так трафик вашего устройства будет больше похож на лигитимный, т.к. не весь трафик пойдет в стороны VPN сервера.

Как это сделать можно посмотреть в одной из моих прошлых статей

Как итог, панель достаточно простая и удобная в использовании. Почитав документацию, посидев немного в чате на русском, очень сильно похоже что панель создается програмистами для програмистов, т.к. на ее базе очень хорошо создавать полукоммерческие решения для продажи VPN, что конечно говорит в ее пользу. Но к сожалению некоторые вещи с ней настроить будет сложнее, т.к. нужно будет сразу лезть в голую конфигурацию ядра.

На это все, спасибо за внимание.

Копия статьи в телеграф

Ссылка на телеграм канал где в каментах можно задавать вопросы

Ну и традиционный промокод OCTOBER2023 на приобретение VPS на хостинге veesp.com по моей реферальной ссылке

Показать полностью 18
40

Hiddify - альтернативная панель для X-ray и не только

Недавно наткнулся на эту панель для управления прокси на базе X-ray и после пары дней тестирования понял что она замечательная, поэтому сразу делюсь с вами.

Hiddify - это панель управления для простого создания прокси на базе X-ray и singbox, разрабатывается Иранскими и Китайскими разработчиками. Есть собственные клиенты. Но так же прекрасно работают и сторонние.

Плюсы:

  1. Простая установка и настройка.

  2. Не нужно думать и создавать кучу входящих соединений на разных протоколах и поддерживать это для каждого пользователя, достаточно выбрать какие протоколы включить или выключить и для каждого уже созданного пользователя или вновь создаваемого пользователя конфиги сразу будут достпны.

  3. Если у вас есть домен панель сама запросит SSL сертификат и будет поддерживать его в актуальном состоянии.

  4. Встроенный DoH сервер (DNS over HTTPS).

  5. Встроенные MTProxy и SSH proxy.

  6. Прямые ссылки на скачивание клиентов прямо из панели со страниц пользователей.

  7. Встроенные видео инструкции (это плюс с минусом, а о них ниже).

  8. Активная разарботка.

Минусы:

Если привиредничать, то к минусам наверное можно отнести машинный перевод с фарси на английский, дизайн и видео инструкции на фарси. Но не для нас же делали, первая целевая аудитория панели это все таки Иран и Китай, так что при наборе популярности панели в РФ я думаю подключатся и наши разработчики и нашему глазу станет приятней. А разобраться во всем этом можно и не так уж сложно. Так что приступим к установке.

Установка:

Вам понадобится чистый сервер с минимум 1 CPU и 1 Gb RAM, 10 Gb на диске.
ОС Ubuntu 20 или 22.
Любой ssh клиент установленный на вашем домашнем ПК.
Доменное имя, подойдет сабдомен от duckdns, как его получить рассказывал в паре прошлых статей.

Приступим

  1. Подключаемся к серверу по SSH

  2. Выполняем команду:
    apt update&&sudo apt install curl&& sudo bash -c "$(curl -Lfo- https://raw.githubusercontent.com/hiddify/hiddify-config/mai...)"

  3. Пока работает инсталятор, завариваем себе чай или кофе, установка занимает минут 5-10

  4. В конце установки инсталятор покажет вам ссылку на доступ в панель, она будет длинной. Ссылку эту необходимо сохранить, т.к. доступ в панель осуществляется только по этим сгенерированным случайным образом ссылкам, восстановить ее можно через ssh, но приятней когда она будет всегда под рукой.

У данной панели нет привычной авторизации по логину и паролю, все доступы осуществляются по ссылкам, т.е. панель считает что если человек знает ссылку то и доступ имеет, поэтому если не разбрасываться ссылками на админку где попало то и зайти туда не получится. Ссылку подобрать не реально, т.к. она состоит из пары сгенерированных длинных строк. А все что приходит на сервер не по ссылкам улетает либо в ошибку, либо перенаправляется на сторонние сайты которыми панель прикрывается.

Настройка:

Переходим по ссылке которую дал инсталятор и сразу попадаем на страницу быстрой настройки, здесь нам нужно выбрать язык панели управления, выбираем английский а в поле страна выбираем Others, нажимаем Submit.

Мотаем чуть ниже, в поле Domain указываем наш домен, включаем фаервол
Отключаем блокировку домашних сайтов, т.к. это работает только для Ирана
Отключаем VMess, т.к. по сообщению создателей панели данные протоколы уже блокируются, не очень понятно как с этим в РФ, но можно поэксперементировать конечно.
Указываем фейковый сайт который будет открываться если кто-то будет заходить на ваш домен напрямую. Внимание, я указал pikabu только для примера, не используйте его. Подберите любой другой сайт, желательно без авторизации, еще более желательно что бы этот сайт вы ни когда не посещали и посещать не собираетесь.

После этого панель уйдет на переконфигурацию и т.к. вы сменили домен, то предложит вам скопировать новые ссылки для досутпа.

Хоть панель и утверждает что если вы потеряете ссылку то восстановить ее не получится, вы сможете восстановить эту ссылку зайдя на сервер по ssh, после входа автоматически запустится меню, один из пунктов которого предлагает вам эту самую ссылку показать.

Продолжаем настройку. Сразу идем в Settings -> Settings -> Http configuration и отключаем возможность подключиться к серверу по http

Теперь можем переходить к созданию пользователей, идем в Users, нажимаем Create

В поле Name вводим имя нашего пользователя, поле Usage Limit добиваем нолями, полу Mode выбираем Daily(это нужно для того что бы сброс лимитов происходил ежедневно), включаем переключатели резетов и сохраняем

Вновь созданного пользователя видно в таблице и можно переходить на его домашнюю страницу

Эту ссылку можно передать пользователю, она всегда будет доступна пока не заблокирован домен и IP вашего сервера. На этой странице он сможет скачать клиенты и скачать настройки. Если установлены нужные клиенты то при щелчке на QR код рядом с названием клиента приложение автоматически откроется и импортирует нужные настройки. Так же эта страница прекрасно выглядит в мобильных браузерах.

Я потестировал работу сервера на клиентах о которых рассказывал в прошлых инструкциях, на всех устройствах все завелось с пол оборота через механизм подписки, в этой панели управления он автоматически активируется и всегда доступен. Что бы получить ссылку на подписку, идем в All configs, находим Subscription Link, жемем по серому значку qr-кода слева от надписи и в появившемся окне жмем Copy и вставляем в тот же nekoray для пк, либо сканируем мобильным устройством.

В результате получаем список из нескольких подключений. Нас интересует подключение в свойствах или названии которого есть слово reality, как самое надежное на данный момент. Если оно не работает, то всегда можно попробовать какое-либо другое из этого списка, что-то да заведется, довольно неплохо работают trojan. У меня заработало около 10 подключений из 14 автоматически созданных.

Я не буду отдельно рассказывать как добавить подписку в клиенты, что бы не раздувать пост, это можно посмотреть в прошлой статье серии.

Как итог, панель крутая и перспективная, так же товарищи развивают собственные клиенты для всех ОС, сейчас в списке поддерживаемых есть все кроме iOS. Для разработки клиента на iOS они ищут помощника.

Я сконтачился с разработчиками и предложил им помощь в переводе панели на русский язык, уже работаю над этим, поэтому думаю через пару версий уже будет хотя бы вылизанный машинный перевод.

Мое шило не позволило мне протестировать собственные клиенты Hiddify, поэтому о них в следующеем посте.

Спасибо за внимание!

Копия статьи в телеграф

Так же подписывайтесь на канал https://t.me/crazy_day_admin в комментах к статье всегда можно задать вопросы

Попробовать сервер с доменным именем можно по моей реферальной ссылке на хостинге veesp (тестовый период доступен по запросу в техническую поддержку) а если понравилось то вот промокод на 10% OCTOBER2023 на любой период оплаты.

Показать полностью 11
40

Настройка 3xui. part 21

В прошлой статье мы говорили об установке и настройке 3xui панели для Xray, сегодня внесем еще некоторые настройки которые позволят использовать панель чуть более удобно, а так же разрулим трафик, что бы не гонять лишний через прокси.

Подписка(Subscription)

Подписка нужна для того что бы клиенты автоматически скачивали обновления для подключений, без дополнительной перенастройки или пересоздания подключения. В каждой подписке будут сгенерированы все подключения для пользователя, т.к. их может быть несколько с разными настройками. А все распространенные клиентские приложения могут это использовать и скачивать себе обновления настроек для подключений и при каких-либо изминениях не придется заново рассылать везде конфиги.

Для активации подписки я настоятельно советую завести доменное имя для сервера, т.к. гонять вот так конфиги с самоподписным сертификатом это совсем не хорошо. И инструкция работает для серверов с действительным доменным именем.

Для собственных нужд подойдет бесплатный саб домен третьего уровня, как его получить я рассказывал в одной из прошлый статей на пикабу, если коротко то:

- идем на сайт duckdns.org

- авторизуемся/регистрируемся

- добавляем домен и закрепляем за ним IP вашего сервера.

По этому доменному имени сразу станет доступна и сама панель. Теперь нам нужно выпустить для него сертификат, для этого нужно зайти по доменному имени и порту,(https://ваш_домен:ваш_порт) и веб сервер получит его автоматически. При заходе будет небольшая задержка.

Веб сервер caddy хранит сертификаты по следующему пути, зайдите на сервер по ssh и проверьте что все на месте, т.к. они нам понадобятся:
/var/lib/caddy/.local/share/caddy/certificates/acme-v02.api.letsencrypt.org-directory/ваш_домен/

Проверили - продолжаем. Идем в панель, авторизуемся и заходим в Настройки -> Подписка

Включаем службу, выбираем шифровать конфиги, адрес для прослушивания оставляем пустым, порт нужно поменять на любой другой, главное не пересечься с уже используемыми портами. Посмотреть на сервере список используемых портов можно командой ss -ntlp.

Указываем путь до SSL сертификата, лежит в указанной выше директории, называется ваш_домен.crt и его ключа в той же директории ваш_домен.key.

Даллее нужно открыть порт на фаерволе сервера

ufw allow ПОРТ_КОТОРЫЙ_ВЫ_ВЫБРАЛИ_ДЛЯ_ПОДПИСКИ/tcp

Далее сохраняем конфиг панели и перезапускаем ее.

Теперь в настройках каждого клиента появится поле Subscription, где можно указать для каждого пользователя уникальное значение, по которому будет формироваться ссылка на подписку

При этом если для пользователя будет несколько клиентских подключений, нужно указывать всегда это уникальное значение, и они все будут доступны ему по сгенерированной ссылке.

Ссылку можно посмотреть и скопировать в разделе Информация у каждого пользовательского подключения

К сожалению т.к. подписка сделана напрямую без реверспроксирования, x-ui нужно будет переодически перезагружать, сделать это можно по крону или добавив пару строк в systemd юнит x-ui. Я уже плотно перешел на использование юнитов и таймеров systemd поэтому покажу пример для нее

Открываем файл /etc/systemd/system/x-ui.service

nano /etc/systemd/system/x-ui.service

и в секцию [Service] добавляем строчку
RuntimeMaxSec=86400s

а строчку Restart меняем на

Restart=always

Сохраняем, выходим и говорим systemd перечитать изменения и перезапускаем x-ui

systemctl daemon-reload
systemctl restart x-ui

Теперь ссылку на подписку можно скармливать клиентам, для некобокс это делается так же копипастом в интерфейс, возможно потребуется удалить уже настроенный профайл, в мобильных клиентах это отдельные разделы. Для nekoray - Копируем ссылку в панели для пользователя, запускаем приложение, и просто по Ctrl+V вставляем, нажимаем ОК

Наше подклчение получено по подписке, можно запускать и пользоваться

Для FoXray - Заходим в раздел Subscriptions и добавляем по плюсику, переслать и скопировать ссылку можно через какой-либо мессенджер.

Теперь про Android - я немного опростоволосился, и не смог добавить ни подписку ни правила маршрутизации(о которых ниже) в приложении NecoboxForAndroid, решил попробовать в приложении v2rayNG и там все получилось в пару нажатий. Это приложение можно поставить из магазина напрямую. Поэтому далее инструкция для него. В панели открываем QR-код пользователя, его можно скопировать и отправить на телефон, или сразу же отсканировать устройством, после активации подписки будет показываться два кода, один для подключения, один для подписки.

Далее открываем приложение v2rayNG на телефоне, в правом верхнем углу тыкаем на плюсик и выбираем Импорт профиля из QR-кода

Далее выбираем отсканировать или открыть код из файла

Сканируем QR-код подписки, но сразу подключение не добавится, нужно дать команду на обновление подписки. Жмем по трем точкам в правом верхнем углу и выбираем Обновить подписку

Наше подключение появится и можно его запускать. Далее если произошли какие-то изменения в настройках подключения для пользователя со стороны сервера эти обновления автоматически скачаются.

Маршрутизация

Теперь хорошо бы сделать что бы трафик до российских доменов напрямую, для этого открываем nekoray, идем в Preferences - Routing settings - Simple route - Custom route

И в появившемся окне Json Editor прописываем следующее:
{
"rules": [
{
"domain_suffix": [
".ru"
],
"outbound": "direct"
}
]
}

Сохраняем, проверяем, например сайт https://2ip.ru должен теперь показывать ваш домашний адрес, а https://whatismyipaddress.com/ адрес вашего сервера

Для FoXray все чуть проще, нужные правила там уже есть, осталось их только активировать. В самом верху главной страницы приложения заходим в Routing & DNS

Тут уже создан первый набор правил, называется он Simple проваливаемся в него и приводим к следующему виду и не забываем сохранить

Далее активируем набор правил и сохраняем

Можно активировать и подключение и проверить опять же на сайтах https://2ip.ru и https://whatismyipaddress.com/

Для v2rayNG все так же не сложно

Идем в настройки, и мотаем до блока с маршрутизацией, сразу меняем Доменную стратегую на AsIs и заходим в Пользовательские правила

В правилах переходим на вкладку Прямые и вводим domain:ru и не забываем сохранить нажатием на галочку

Далее возвращаемся на главный экран, перезапускаем подключение и проверяем.

На этом на сегодня все, спасибо за внимание

На случай если когда-нибудь статью удалят, в связи с изменениями в законодательстве, то вот вам ссылка на телеграм канал где так же будут появлятся гайды и обновления по этой теме

https://t.me/crazy_day_admin

И копия статьи в телеграф

А если вы хотите сказать спасибо за статью, вы можете приобрести сервер по моей реферальной ссылке у компании veesp https://secure.veesp.com/?affid=860 со скидкой 15% по промокоду OCTOBER2023

Показать полностью 19
Отличная работа, все прочитано!