Настройка собственного VPN + X-RAY

𝙱𝚁𝙰𝙱𝚄𝚂

𝙰𝙼𝙾𝚁 𝙵𝙰𝚃𝙸 🖤
Регистрация
01.06.2025
Сообщения
3 199
Реакции
4 102
Баллы
113
Очень актуальная тема в наше время - собственный VPN, да ещё и такой, чтобы не заблокировали на уровне протокола, как openvpn и wireguard. Сейчас в России стали популярны протоколы Shadowsocks и Vless, которые давно уже используются в Китае для обхода их местных блокировок, и, по моему опыту, довольно эффективно справляются с данной задачей.
В сети сейчас появилось огромное количество мелких VPN на данных протоколах, бОльшая часть из них работает на базе бесплатного решения с открытым кодом - Marzban, т.к. решение довольно простое в установке, особенно для персонального использования.
Github проекта -
https://github.com/Gozargah/Marzban

Для установки надо будет арендовать сервер, на котором будет работать VPN, в моем случае это Hetzner, т.к. дает за адекватные деньги неплохие VPS, если тоже решите брать сервера у Hetzner, то учитывайте, что они требуют верификацию, верификация по документам РФ не проходит, да и лучше не давать им свои реальные данные, услугу по верификации аккаунта Hetzner можно купить на специализированных площадках. Сервера у Hetzner рекомендую брать в Финляндии, т.к. в Германии может прилететь репорт, если через этот сервер будут скачиваться торренты (по законам Германии использование торрентов расценивается, как нарушение авторского права и наказывается штрафом)

Когда VPS арендован, надо подключиться к нему по SSH:
Код:

ssh root@сюда_надо_вписать_ip_сервера
Команду эту надо вводить либо в терминале Linux, либо в командной строке Windows 10/11
Установка Marzban делается 1ой командой:
Код:

sudo bash -c "$(curl -sL https://github.com/Gozargah/Marzban-scripts/raw/master/marzban.sh)" @ install
После успешной установки надо нажать Ctrl+C и добавить пользователя с правами администратора, чтобы зайти в панель Marzban:
Код:

marzban cli admin create --sudo
В файле /opt/marzban/.env можно сконфигурирровать Marzban:



ФункцияОписание
SUDO_USERNAMEИмя пользователя с правами администратор
SUDO_PASSWORDПароль пользователя с правами администратора
SQLALCHEMY_DATABASE_URLСсылка на базу данных
UVICORN_HOSTIP хоста
UVICORN_PORTПорт панели Marzban
UVICORN_UDSUNIX домен
UVICORN_SSL_CERTFILESSL сертификат для работы по https
UVICORN_SSL_KEYFILESSL ключ для работы по https
UVICORN_SSL_CA_TYPEТип сертификата (нормальный или самоподписный) public/private
XRAY_JSONПуть до JSON-конфига Xray
XRAY_EXECUTABLE_PATHПуть до исполняемого файла Xray
XRAY_ASSETS_PATHПуть до файлов Xray
XRAY_SUBSCRIPTION_URL_PREFIXПрефикс для подписки
XRAY_FALLBACKS_INBOUND_TAGТэг для fallbacks
XRAY_EXCLUDE_INBOUND_TAGSTags of the inbounds that shouldn't be managed and included in links by application
CUSTOM_TEMPLATES_DIRECTORYПользовательские шаблоны для оформления
CLASH_SUBSCRIPTION_TEMPLATEПользовательские шаблоны для оформления подписки CLASH
SUBSCRIPTION_PAGE_TEMPLATEПользовательские шаблоны для оформления подписки
HOME_PAGE_TEMPLATEПользовательские шаблоны для оформления домашней страницы
TELEGRAM_API_TOKENAPI телеграм-бота
TELEGRAM_ADMIN_IDTelegram ID админа
TELEGRAM_PROXY_URLПрокси для телеграм-бота
JWT_ACCESS_TOKEN_EXPIRE_MINUTESВремя жизни токенов
DOCSВключение/выключение API
DEBUGРежим отладки
WEBHOOK_ADDRESSАдрес webhook
WEBHOOK_SECRETКлюч webhook
NUMBER_OF_RECURRENT_NOTIFICATIONSКоличество попыток отправить уведомление
RECURRENT_NOTIFICATIONS_TIMEOUTВремя для повторной попытки отправить уведомление
NOTIFY_REACHED_USAGE_PERCENT% нагрузки при котором отправляется уведомление
NOTIFY_DAYS_LEFTКоличество оставшихся дней работы подключения для отправки уведомления
USERS_AUTODELETE_DAYSУдалять просроченный подключения
USER_AUTODELETE_INCLUDE_LIMITED_ACCOUNTSУдалять аккаунты с исчерпаным лимитом трафика
USE_CUSTOM_JSON_DEFAULTВключить кастомные JSON-конфиги для всех клиентов
USE_CUSTOM_JSON_FOR_V2RAYNGВключить кастомные JSON-конфиги для v2rayNG
USE_CUSTOM_JSON_FOR_STREISANDВключить кастомные JSON-конфиги для Streisand
USE_CUSTOM_JSON_FOR_V2RAYNВключить кастомные JSON-конфиги для v2rayN

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

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

ssh -L 8000:localhost:8000 root@сюда_надо_вписать_ip_сервера

Теперь в браузере надо ввести ссылку http://127.0.0.1:8000/dashboard

На сайте ввести имя и пароль созданного ранее пользователя

1.png

Вот так выглядит панель Marzban:

2.png



Справа вверху надо нажать на значок шестеренки:
5.png



В Configuration надо вписать свой конфиг, можно взять готовый, написать самому или сгенерировать в онлайн-конфигураторе
https://azavaxhuman.github.io/DDS-Xray-Inbound-Generator/
https://azavaxhuman.github.io/Marzban-Reality-Generator/

Вот пример inbound'а с Vless Reality:

Код с оформлением (BB-коды):
{<br>      "tag": "yahoo.com",<br>      "listen": "0.0.0.0",<br>      "port": 7606,<br>      "protocol": "vless",<br>      "settings": {<br>        "clients": [],<br>        "decryption": "none"<br>      },<br>      "streamSettings": {<br>        "network": "tcp",<br>        "tcpSettings": {},<br>        "security": "reality",<br>        "realitySettings": {<br>          "show": false,<br>          "dest": "yahoo.com:443",<br>          "xver": 0,<br>          "serverNames": [<br>            "yahoo.com"<br>          ],<br>          "privateKey": "MMX7m0Mj3faUstoEm5NBdegeXkHG6ZB78xzBv2n3ZUA",<br>          "shortIds": [<br>            "",<br>            "6ba85179e30d4fc2"<br>          ]<br>        }<br>      },<br>      "sniffing": {<br>        "enabled": true,<br>        "destOverride": [<br>          "http",<br>          "tls"<br>        ]<br>      }<br>    },

После изменения конфигурации нажимаем Save и Restart Xray

Теперь нажимаем Create User и создаем пользователя:
 
Теперь нажимаем Create User и создаем пользователя:

3.png



После создания пользователя он появится в списке пользователей и можно будет скопировать ссылку на подключение или показать QR-код:
4.png



Подключаться можно через любые приложения, которые поддерживают Xray, например Nekoray, v2rayNG, Streisand и т.д.

Я показал самые базовые настройки Marzban, на самом деле он дает довольно широкие возможности
Вот полезные ссылки для углубленного изучения:
https://github.com/jomertix/awesome-marzban?tab=readme-ov-file
https://gozargah.github.io/marzban/en/docs/introduction
https://marzban-docs.sm1ky.com/
 
О надо попробовать
 
Обидно что такое практически перестало работать
 
Назад
Верх