Когда Telegram у людей начинает открываться через раз, многие делают одно и то же: нагуглили пару команд, запустили MTProxy, получили ссылку tg://proxy и выдохнули. А потом приходит реальность: после ребута всё умерло, у части пользователей не коннектится, кто-то прислал скрин с бесконечным «Подключение…», а ты уже ковыряешься в логах и материшься. 😅
Проблема не в самом MTProto. Проблема в том, что его часто поднимают как одноразовый костыль, а не как маленький сервис. Если сделать всё по‑человечески — с автозапуском, базовой защитой, понятной диагностикой и обновлением конфига — это вполне рабочий инструмент для быстрого доступа к Telegram. 🛠️
Сразу важный тезис: MTProto хорош именно как решение для Telegram. Не как «вечный обход всего на свете», не как универсальный VPN и не как магическая таблетка. Его сила в другом: быстро поднять, быстро раздать людям, быстро понять, что сломалось, если что-то пошло не так.
Начинаем с базового запуска. На чистом VPS ставим зависимости, клонируем официальный репозиторий Telegram и собираем бинарник:
sudo apt update
sudo apt install -y git curl build-essential libssl-dev zlib1g-dev
sudo mkdir -p /opt/mtproxy && cd /opt/mtproxy
sudo git clone https://github.com/TelegramMessenger/MTProxy.git src
cd /opt/mtproxy/src && make
После сборки переходим в каталог с бинарником и подтягиваем два служебных файла Telegram:
cd /opt/mtproxy/src/objs/bin
curl -s https://core.telegram.org/getProxySecret -o proxy-secret
curl -s https://core.telegram.org/getProxyConfig -o proxy-multi.conf
Теперь создаём свой secret для пользователей:
SECRET=$(head -c 16 /dev/urandom | xxd -ps -c 32)
PUBLIC_SECRET="dd<SECRET_HEX>"
Префикс dd — это не украшение. Он включает режим с padding, то есть добавляет «шум» в пакеты. По официальному репозиторию MTProxy это как раз тот режим, который полезен, когда провайдеры пытаются определять прокси по размеру пакетов. 🔐
Пробный запуск выглядит так:
./mtproto-proxy -u nobody -p 8888 -H 8443 -S <PUBLIC_SECRET> --aes-pwd proxy-secret proxy-multi.conf -M 1
Что здесь важно:
- -H 8443 — внешний порт для клиентов;
- -p 8888 — локальный порт статистики;
- -M 1 — число воркеров;
- -u nobody — запуск не от root, а от обычного системного пользователя.
Ссылку для подключения отдаём в таком виде:
tg://proxy?server=YOUR_DOMAIN_OR_IP&port=8443&secret=dd...
И вот здесь типовая ошибка номер один: увидели, что на своём телефоне подключилось, и решили, что работа закончена. Нет. Это только проверка, что мотор вообще заводится. Если оставить всё в таком виде, после первого ребута сервера ты снова будешь вспоминать, из какой папки запускал бинарник и почему теперь ничего не работает.
Поэтому следующий обязательный шаг — переводим MTProto в systemd. Иначе это не сервис, а времянка.
Создаём файл:
sudo nano /etc/systemd/system/mtproxy.service
И вставляем туда:
[Unit]
Description=MTProxy
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/mtproxy/src/objs/bin
ExecStart=/opt/mtproxy/src/objs/bin/mtproto-proxy -u nobody -p 8888 -H 8443 -S ddYOUR_SECRET --aes-pwd /opt/mtproxy/src/objs/bin/proxy-secret /opt/mtproxy/src/objs/bin/proxy-multi.conf -M 1
Restart=on-failure
RestartSec=3
[Install]
WantedBy=multi-user.target
Дальше активируем сервис:
sudo systemctl daemon-reload
sudo systemctl enable --now mtproxy
sudo systemctl status mtproxy
Если статус показывает active (running) — уже отлично. Теперь после ребута VPS прокси поднимется сам. Вот с этого места MTProto перестаёт быть игрушкой и становится нормальным сервисом. ✅
Следующий слой — базовая защита. Тут не надо изображать паранойю, но и халтурить нельзя.
Во‑первых, наружу должен смотреть только клиентский порт и SSH. Если используешь 8443, значит именно он и открыт.
Во‑вторых, порт статистики 8888 должен оставаться локальным. Его смысл в том, чтобы ты сам мог посмотреть состояние прокси, а не чтобы он торчал наружу.
В‑третьих, запуск от nobody, а не от root — это нормальная гигиена.
В‑четвёртых, proxy-multi.conf надо обновлять, потому что Telegram меняет конфигурацию.
В‑пятых, после изменений надо проверять не «ну вроде открывается», а конкретный статус сервиса и логи.
Самый простой рабочий сценарий обновления такой:
cd /opt/mtproxy/src/objs/bin
cp proxy-multi.conf proxy-multi.conf.bak
curl -fsS https://core.telegram.org/getProxyConfig -o proxy-multi.conf.new && mv proxy-multi.conf.new proxy-multi.conf
sudo systemctl restart mtproxy
А если хочешь более вменяемое обновление с быстрой проверкой и откатом, логика должна быть такая: скачал новый конфиг, перезапустил сервис, убедился, что он жив, и только после этого считаешь обновление успешным. Если сервис не поднялся — возвращаешь proxy-multi.conf.bak и снова делаешь systemctl restart mtproxy. Это и есть твой мини‑rollback, то есть быстрый откат на прошлую рабочую версию.
Теперь о самом частом вопросе: почему MTProto «то работает, то нет»? Ответ обычно куда банальнее, чем кажется. 🚑
Ломается одно из пяти:
1. сервис вообще не запущен;
2. внешний порт не слушается или закрыт;
3. в ссылке клиентам битый secret;
4. proxy-multi.conf устарел;
5. проблема вообще не в MTProto, а в сети между клиентом и сервером.
Поэтому нормальный чек‑лист диагностики должен быть коротким и тупо рабочим:
systemctl status mtproxy
journalctl -u mtproxy -n 100 --no-pager
ss -lntup | grep 8443
curl http://127.0.0.1:8888/stats
Если сервис жив, порт слушается, статистика отвечает, а клиенты всё равно не подключаются — значит уже проверяешь ссылку, secret и внешний доступ до порта. Вот и всё. Без шаманства, без «давай ещё раз наугад всё перезапустим».
Есть и ещё один трезвый вывод. MTProto — отличный рабочий контур для Telegram, когда нужно быстро дать людям доступ с минимальным количеством действий. Но если ты видишь, что его начали массово душить, он всё чаще требует ручной магии и у всё большего числа людей отваливается без понятной причины, не надо превращать свою жизнь в бесконечный ремонт. Значит, MTProto должен оставаться только одним из инструментов, а не единственной ставкой.
Нормальная схема в 2026 выглядит так: MTProto как быстрый и удобный доступ к Telegram, плюс заранее продуманный fallback, если условия сети ухудшились. Умный админ не влюбляется в один инструмент. Он держит рабочий план Б. 🧠
Итог тут простой. Хороший MTProto‑прокси — это не просто команда запуска и красивая ссылка для клиента. Это связка из пяти вещей: быстрый старт, systemd, минимальная защита, понятная диагностика и вменяемое обновление с возможностью отката. Если сделать именно так, прокси перестаёт быть хрупкой времянкой и превращается в понятный, обслуживаемый сервис. А это уже совсем другой уровень комфорта — и для тебя, и для людей, которым ты этот доступ даёшь. 🚀
Если тебе интересны такие практические разборы без хайпа — заходи в наш Telegram-канал: https://t.me/pro_it_news
Там мы разбираем AI, инфраструктуру, VPN, GitHub, self-hosted-инструменты и реальные рабочие кейсы: где технология действительно экономит время и деньги.
Официальные ссылки:
https://github.com/TelegramMessenger/MTProxy
https://core.telegram.org/getProxySecret
https://core.telegram.org/getProxyConfig
https://core.telegram.org/mtproto/mtproto-transports
https://t.me/MTProxybot