Пошаговая инструкция установки MTProto прокси через Service Node + VLESS

от автора

Если вы когда-нибудь пытались поднять прокси для Telegram на сервере, то знаете, что такое «мессенджер не грузит». Прямые MTProto-прокси живут недолго — это факт.

В этой инструкции я предлагаю рассмотреть подробную, пошаговую установку MTproto, при помощи MTProto Panel и MTProto Node и для VLESS+REALITY используем 3x-ui.

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

Что требуется для начала работ?

  1. Нам потребуется домен. Любой, с ним будет проще.

  2. Сервера в РФ и зарубежом.

Как это работает:

  • В России стоит лёгкий сервер-нода. Он не знает, где настоящий Telegram.

  • Он берёт трафик от клиента и упаковывает его в VLESS (с Reality) — современный протокол, который маскируется под обычный HTTPS.

  • Отправляет этот трафик на зарубежный сервер.

  • А зарубежный сервер уже ходит в настоящий Telegram.

Для клиента всё выглядит как обычный MTProto прокси. Он вставляет ссылку tg://proxy, и Telegram работает. Никаких дополнительных приложений, никаких танцев с бубном. При этом ваш российский IP не светится подозрительным трафиком, а VLESS-туннель не детектится стандартными системами анализа.

Шаг 1. Установка 3x-ui

Для установки нам потребуется у домена прописать NS-запись «А» с IP-адресов на ваш сервер зарубежом. Ждем 2-3 часа и через консоль проверяем применилась ли запись.

ping example.com

Как только в ответе будет IP-адрес сервера вашего, то переходим дальше.

Теперь мы можем подключаться к нашему серверу по ssh.

Для установки панели вводим команду

bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)

Во время установки вас спросят про порт панели — можете просто нажать enter или указать свой.

Далее вас спросят, какой метод использовать, выбираем 1 и жмем enter, и вводим свой домен, ждем установку и в конце вы получите, доступ к панели.

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

{  "id": 3,  "userId": 0,  "up": 0,  "down": 0,  "total": 0,  "allTime": 0,  "remark": "",  "enable": true,  "expiryTime": 0,  "trafficReset": "never",  "lastTrafficResetTime": 0,  "listen": "",  "port": 443,  "protocol": "vless",  "settings": "{\n  \"clients\": [\n    {\n      \"comment\": \"\",\n      \"created_at\": 1609459200000,\n      \"email\": \"proxy@example.com\",\n      \"enable\": true,\n      \"expiryTime\": 0,\n      \"flow\": \"\",\n      \"id\": \"33dcbf89-2eaa-4a9e-99d5-6eed8c6f5be6\",\n      \"limitIp\": 0,\n      \"reset\": 0,\n      \"subId\": \"\",\n      \"tgId\": 0,\n      \"totalGB\": 0,\n      \"updated_at\": 1776334844000\n    }\n  ],\n  \"decryption\": \"none\",\n  \"encryption\": \"none\"\n}",  "streamSettings": "{\n  \"network\": \"tcp\",\n  \"security\": \"reality\",\n  \"externalProxy\": [],\n  \"realitySettings\": {\n    \"show\": false,\n    \"xver\": 0,\n    \"target\": \"ads.x5.ru:443\",\n    \"serverNames\": [\n      \"ads.x5.ru\"\n    ],\n    \"privateKey\": \"\",\n    \"minClientVer\": \"\",\n    \"maxClientVer\": \"\",\n    \"maxTimediff\": 0,\n    \"shortIds\": [\n      \"977446db\",\n      \"99ab773e92\",\n      \"714718c2decd\",\n      \"28c466dc7e68ea\",\n      \"38\",\n      \"4c21\",\n      \"32e0d4b6eeac39da\",\n      \"f97a1f\"\n    ],\n    \"mldsa65Seed\": \"\",\n    \"settings\": {\n      \"publicKey\": \"\",\n      \"fingerprint\": \"chrome\",\n      \"serverName\": \"\",\n      \"spiderX\": \"/\",\n      \"mldsa65Verify\": \"\"\n    }\n  },\n  \"tcpSettings\": {\n    \"acceptProxyProtocol\": false,\n    \"header\": {\n      \"type\": \"none\"\n    }\n  }\n}",  "tag": "inbound-443",  "sniffing": "{\n  \"enabled\": false,\n  \"destOverride\": [\n    \"http\",\n    \"tls\",\n    \"quic\",\n    \"fakedns\"\n  ],\n  \"metadataOnly\": false,\n  \"routeOnly\": false\n}",  "clientStats": [    {      "id": 13,      "inboundId": 3,      "enable": true,      "email": "proxy@example.com",      "uuid": "33dcbf89-2eaa-4a9e-99d5-6eed8c6f5be6",      "subId": "",      "up": 0,      "down": 0,      "allTime": 0,      "expiryTime": 0,      "total": 0,      "reset": 0,      "lastOnline": 0    }  ]}

Сохраняем. Появится новое подключение, нажимаете на + и иконку qr кода. Нажимаете и копируете ссылку и записываете себе отдельно.

Шаг 2. Установка MTProto Panel

Эта панель станет «мозгом» нашей системы. Устанавливается она одной командой, которая сама проверит наличие Docker, скачает все необходимые компоненты и запросит первоначальные настройки .

Установку делаем на РФ сервере.

  1. Выполните следующую команду:

    bash <(wget -qO- https://raw.githubusercontent.com/danielVNru/mtproto-panel/master/install.sh)
  2. В процессе установки скрипт задаст несколько вопросов:

    • Порт панели: Рекомендую оставить порт по умолчанию 80, просто нажмите Enter.

    • Логин администратора: Придумайте и введите имя пользователя для входа в веб-интерфейс.

    • Пароль администратора: Придумайте и введите надёжный пароль, после чего подтвердите его.

  3. Дождитесь окончания установки. После её завершения откройте браузер и перейдите по адресу http://<IP-адрес вашего сервера>:<Порт> (например, http://192.168.1.1:80). Вы должны увидеть страницу входа в панель управления .

Шаг 3. Установка MTProto Node

Теперь нам нужно установить связующее звено — сервис-ноду на сервере в РФ. Эта нода будет принимать подключения от клиентов Telegram и передавать их в зашифрованный туннель.

  1. Выполните команду для установки ноды.

    bash <(wget -qO- https://raw.githubusercontent.com/danielVNru/mtproto-node/master/install.sh)
  2. После завершения установки скрипт выведет на экран самое важное — токен ноды. Обязательно сохраните его, он понадобится на следующем шаге. Если вы потеряли токен, его можно посмотреть в логах контейнера ноды или в её конфигурационном файле .

Шаг 4: Добавление ноды в панель управления

Осталось «подружить» панель управления и сервис-ноду.

  1. Вернитесь в веб-интерфейс MTProto Panel и авторизуйтесь.

  2. Найдите раздел для управления нодами (обычно он называется «Ноды»).

  3. Нажмите кнопку «Добавить ноду» и заполните поля:

    • IP-адрес: Публичный IP-адрес вашего российского сервера.

    • Порт: Порт, который слушает сервис-нода (по умолчанию используется 8080).

    • Токен: Вставьте сюда тот самый токен, который вы сохранили на предыдущем шаге.

  4. Сохраните конфигурацию. Если всё сделано верно, статус ноды в панели изменится на «Работает».

Шаг 5. Создание прокси с VPN-туннелированием

Когда нода добавится и её статус сменится на «Работает», можно создавать само прокси:

  1. Перейдите в раздел «Прокси» и нажмите «Создать прокси».

  2. Заполните основные поля:

    • Нода: Выберите только что добавленный российский сервер.

    • Secret (секрет): Оставьте поле пустым, чтобы секрет сгенерировался автоматически.

  3. Самое важное — настройка туннеля: найдите поле «VLESS-подписка» .

  4. Вставьте в это поле полную ссылку на ваше VLESS Reality подключение из панели 3x-ui (она начинается с vless://). Панель автоматически подхватит её и настроит проброс трафика на зарубежный сервер.

  5. Сохраните конфигурацию.

После сохранения в списке прокси появится готовая ссылка формата tg://proxy?server=..., которую можно раздавать пользователям. Весь трафик клиентов будет идти на российский IP, а оттуда по зашифрованному VLESS-туннелю — за рубеж .

Вывод

Мы прошли весь путь: от установки mtproto-panel и Service Node на российском сервере до связки с зарубежным VLESS-туннелем. В результате получили прозрачный MTProto-прокси, который для пользователя выглядит стандартной tg://-ссылкой, но внутри гонит трафик через зашифрованный канал, не боящийся DPI.

Что мы имеем на выходе?

  • Российский сервер выступает точкой входа — он быстрый и дешёвый.

  • Зарубежный сервер (с VLESS/Reality) делает основную работу и скрывает реальный трафик.

  • Панель mtproto-panel даёт удобное управление: можно создавать несколько прокси, ставить лимиты, смотреть статистику подключений.

  • Клиентское приложение (Telegram) подключается по стандартному протоколу без доработок.

Итог

Предложенная схема не панацея от всех блокировок, но рабочий, проверенный способ MTProto-прокси в российских сетях. Она требует всего два сервера и час времени. При этом даёт гибкость: вы можете менять зарубежную часть (хоть на 3x-ui, хоть на чистый Xray), а для пользователей ничего не поменяется — они по-прежнему используют ту же самую tg://-ссылку.

Послесловие

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

Внимание есть реф. ссылки!

Если у кого-то будут проблемы, можете написать мне в ЛС, постараюсь помочь.

ссылка на оригинал статьи https://habr.com/ru/articles/1024164/