Установка TeleMT на свой VPS: рабочая инструкция

910
Установка TeleMT на свой VPS: рабочая инструкция

TeleMT — это open-source MTProto-прокси на Rust, который полностью повторяет официальный алгоритм прокси Telegram. На чистом Debian или Ubuntu вся установка укладывается в 10–15 минут: скачать бинарник, прописать telemt.toml, поднять службу systemd, забрать готовую ссылку через локальный API. Для совсем нетерпеливых в репозитории есть скрипт install.sh, который делает то же самое одной командой.

Прежде чем тратить вечер, главное ограничение середины 2026 года. В российских сетях эффективность MTProxy заметно просела. С 1 апреля ТСПУ научились выделять Fake-TLS по отпечатку клиента, а в конце мая пошли массовые отказы. Свой прокси ставится легко. Работает он уже не везде и не всегда. Дальше будет и инструкция, и разбор, где она упирается в стену.

Зачем поднимать собственный MTProto-прокси

Прокси встроен в саму архитектуру Telegram, поэтому свой сервер не ломает протокол, а использует штатный механизм. Типичный сценарий: оператор режет скорость до серверов мессенджера, и прямое соединение начинает захлёбываться на загрузке фото и видео. Прокси прокидывает трафик через арендованный VPS и возвращает нормальную скорость.

TeleMT написан на Rust поверх Tokio, держит десятки тысяч одновременных подключений и потребляет мало памяти. Ставится как обычный systemd-сервис, без Docker и лишних обвязок. Для одного человека или семьи хватает самой дешёвой виртуалки.

Что нужно перед установкой

Список короткий, но без любого пункта дальше не поедет:

  • Сервер на Debian-подобной системе: Debian, Ubuntu, Mint, Kali. Root-доступ обязателен.
  • Свободный порт. Лучше 443 — его сложнее заблокировать выборочно, потому что под ним живёт весь HTTPS.
  • Домен для маскировки (tls_domain). Подойдёт любой реально существующий сайт с валидным TLS, под который прокси будет притворяться.
  • Утилита jq для разбора ответа API: apt install jq.

Установка TeleMT: бинарник и служба systemd

Скачайте готовую сборку под вашу архитектуру. Команда сама определяет процессор и тип libc:

wget -qO- "https://github.com/telemt/telemt/releases/latest/download/telemt-$(uname -m)-linux-$(ldd --version 2>&1 | grep -iq musl && echo musl || echo gnu).tar.gz" | tar -xz
 mv telemt /bin
 chmod +x /bin/telemt

Альтернатива в одну строку — официальный установщик. Он удобен, но это curl | sh, то есть вы запускаете чужой код от root, не глядя. Прочитайте скрипт перед запуском:

curl -fsSL https://raw.githubusercontent.com/telemt/telemt/main/install.sh | sh

Сгенерируйте секрет — 16 байт в шестнадцатеричном виде. Сохраните результат, он понадобится в конфиге:

openssl rand -hex 16

Создайте директорию и сам конфиг:

mkdir /etc/telemt
 nano /etc/telemt/telemt.toml

Минимальный рабочий telemt.toml выглядит так. Замените tls_domain на свой сайт, а секрет — на тот, что выдал OpenSSL:

[general]
 use_middle_proxy = false
 
 [general.modes]
 classic = false
 secure = false
 tls = true
 
 [server]
 port = 443
 
 [server.api]
 enabled = true
 
 [censorship]
 tls_domain = "example.ru"
 
 [access.users]
 user1 = "ваш_секрет_32_hex"

Заведите отдельного пользователя под службу и отдайте ему права на конфиг:

useradd -d /opt/telemt -m -r -U telemt
 chown -R telemt:telemt /etc/telemt

Создайте unit systemd:

nano /etc/systemd/system/telemt.service
[Unit]
 Description=Telemt
 After=network-online.target
 Wants=network-online.target
 
 [Service]
 Type=simple
 User=telemt
 Group=telemt
 WorkingDirectory=/opt/telemt
 ExecStart=/bin/telemt /etc/telemt/telemt.toml
 Restart=on-failure
 LimitNOFILE=65536
 AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
 CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
 NoNewPrivileges=true
 
 [Install]
 WantedBy=multi-user.target

Строки с AmbientCapabilities здесь не для красоты: без CAP_NET_BIND_SERVICE непривилегированный пользователь не сможет занять 443-й порт. Перечитайте конфигурацию systemd и запустите службу:

systemctl daemon-reload
 systemctl start telemt
 systemctl status telemt
 systemctl enable telemt

Если статус зелёный, прокси уже слушает порт. Осталось получить ссылку.

Конфиг telemt.toml: режимы dd и ee, маскировка под домен

В секции [general.modes] три переключателя, и важен только один. Режим classic мёртв. Режим secure (он же dd) заворачивает трафик в мусор по образцу Shadowsocks, но у него заметный паттерн, который DPI давно вылавливает. Рабочий вариант на 2026 год — tls = true, режим ee, или Fake-TLS.

Fake-TLS оборачивает соединение так, что его начало выглядит как обычное TLS 1.3-рукопожатие к домену из tls_domain. Для системы фильтрации это похоже на заход в интернет-банк или на крупный сайт. Поэтому домен берут безобидный и желательно «слишком важный, чтобы его рубить целиком».

Параметр use_middle_proxy для личного прокси держите выключенным. Он нужен только если вы цепляете спонсорский канал и статистику через бота, и заодно немного меняет маршрут трафика. Для доступа к самому Telegram он не требуется.

Получение рабочей ссылки и подключение

Ссылку отдаёт локальный API, а не вы руками. Запросите её так:

curl -s http://127.0.0.1:9091/v1/users | jq

В ответе будет строка вида tg://proxy?server=...&port=443&secret=ee.... Откройте её на устройстве с Telegram, и прокси добавится сам. Секрет в режиме ee начинается с ee — это и есть Fake-TLS.

Здесь живёт популярное заблуждение. Бот @MTProxybot тоже выдаёт ссылку, и многие копируют именно её. Она не подключится. Бот нужен только для привязки рекламного канала (ad_tag); рабочую ссылку формирует исключительно ваш сервер через API. Хотите домен вместо IP в ссылке — пропишите public_host в секции [general.links].

По умолчанию одной ссылкой пользуется сколько угодно человек. Ограничить число уникальных IP на пользователя можно через user_max_unique_ips, а несколько отдельных ссылок завести, добавив пользователей в [access.users].

Ограничения и реальные риски, о которых молчат гайды

Самая честная часть. MTProxy создавался против блокировок по IP: Telegram менял адреса быстрее, чем регулятор успевал их вносить в реестр. Этот этап давно пройден. Теперь фильтрация смотрит не на адрес сервера, а на поведение трафика.

1 апреля 2026 года произошёл перелом. По данным разборов SecurityLab и Хабра, ТСПУ начали распознавать Fake-TLS по отпечаткам JA3/JA4 — хешам параметров TLS ClientHello. Telegram-клиент «здоровается» с сервером чуть иначе, чем Chrome или Safari, и именно на эту разницу нацелились новые правила. Разработчики TeleMT утверждают, что проблема отпечатка закрыта в свежих версиях клиентов Telegram, и советуют обновить приложение.

Но картина не сходится в одну точку. В конце мая пользователи снова столкнулись с массовыми отказами MTProto-прокси; источники «Кода Дурова» предположили новую уязвимость в механизме, а провайдеры заговорили о блокировке отпечатков Chrome и частично протокола TCP-RAW. Эти детали не получили подтверждения в крупных изданиях, так что относитесь к ним как к версии, а не как к доказанному факту. Параллельно, по сообщениям, фильтрация сместилась с отдельных адресов на целые ASN-подсети и задела не только MTProxy, но и VLESS, WireGuard и ряд других протоколов.

Что из этого следует для вас. Свой TeleMT почти наверняка поднимется без проблем и будет работать на «домашнем» провайдере и за рубежом. В мобильных сетях РФ он может отваливаться, и единого рецепта, который держится месяцами, сейчас нет. Часть людей вытягивает связь каскадом через российский сервер, выводя трафик уже с зарубежного — конфиг это позволяет через [[upstreams]]. Гарантий это не даёт.

Ещё одно ограничение, не связанное с блокировками: звонки через MTProxy не идут. Telegram гоняет голос через SOCKS5, который замаскировать нельзя, и прокси их попросту не обслуживает.

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

Частые вопросы

Нужен ли домен для TeleMT?

Обязателен только параметр tls_domain — это сайт, под который маскируется трафик, и он указывается в конфиге. Свой домен в ссылке не нужен, но если хочется видеть имя вместо IP, привяжите его через public_host.

Чем режим dd отличается от ee?

dd обфусцирует трафик по образцу Shadowsocks и давно распознаётся DPI. ee (Fake-TLS) притворяется HTTPS-соединением к реальному домену. На 2026 год осмысленно использовать только ee.

Почему ссылка от @MTProxybot не подключается?

Бот формирует ссылку только для привязки рекламного канала через ad_tag. Рабочую ссылку отдаёт ваш сервер: запросите её командой curl к /v1/users.

Работают ли звонки через MTProxy?

Нет. Голосовой трафик Telegram идёт через SOCKS5, который не маскируется, поэтому MTProxy звонки не проксирует.

Где взять исходники и официальную документацию?

Сборки, конфиги и подробные сценарии лежат в репозитории проекта, включая раздел Quick Start и FAQ на русском.

Alt text
Обращаем внимание, что все материалы в этом блоге представляют личное мнение их авторов. Редакция SecurityLab.ru не несет ответственности за точность, полноту и достоверность опубликованных данных. Вся информация предоставлена «как есть» и может не соответствовать официальной позиции компании.
цель обнаружена
«Мы слишком маленькие, чтобы нас атаковать»
самая дорогая фраза в истории бизнеса.
Видят ли вас? →

Николай Нечепуренков

Я – ваш цифровой телохранитель и гид по джунглям интернета. Устал видеть, как хорошие люди попадаются на уловки кибермошенников, поэтому решил действовать. Здесь я делюсь своими секретами безопасности без занудства и сложных терминов. Неважно, считаешь ты себя гуру технологий или только учишься включать компьютер – у меня найдутся советы для каждого. Моя миссия? Сделать цифровой мир безопаснее, а тебя – увереннее в сети.

Рекламодатель
АО «Позитив Текнолоджиз»
ИНН: 7718668887
ptsecurity.com↗
АО «Позитив Текнолоджиз»