telemt, mtg или официальный MTProxy: что ставить на сервер
Серверных реализаций MTProto несколько, и они не равноценны: официальная давно не обновляется и не умеет FakeTLS по-человечески, лёгкие реализации на Go и Rust — умеют всё и держат больше соединений. Серверы в таблице выше работают на современной реализации; ниже — какую взять себе.
Сравниваем по тому, что решает: маскировка, нагрузка, рекламный тег, удобство.
Официальный MTProxy
Написан на C, публиковался Telegram как эталон. Плюсы: рекламный тег поддержан изначально, стабильность. Минусы: FakeTLS добавлен поздно и неполно, конфигурация через списки серверов, которые нужно периодически обновлять, редкие обновления. Для нового сервера — не лучший выбор.
Подходит, если нужен именно «официальный» вариант и рекламный тег без экспериментов.
mtg
Реализация на Go, сделанная вокруг FakeTLS: один бинарник, один секрет, проксирование чужих рукопожатий на домен-легенду, низкое потребление памяти. Минус — авторская позиция против рекламного тега: он не поддерживается принципиально.
Лучший выбор для личного или семейного сервера без спонсорского канала.
telemt и другие современные
Реализация на Rust с полной поддержкой FakeTLS, несколькими пользователями с разными секретами, рекламным тегом на пользователя, статистикой и API управления. Держит десятки тысяч соединений на скромном железе. Настройка — один файл конфигурации.
Выбор для пулов и сервисов, где нужны раздельные секреты и учёт.
Python-реализация
mtprotoproxy на Python — простая, с FakeTLS и рекламным тегом, но упирается в производительность интерпретатора при сотнях активных соединений. Для десятка пользователей — нормально, для публичного сервера — нет.
Итог: личный сервер — mtg; сервис или пул — telemt; Python — для экспериментов.
Сводная таблица словами
FakeTLS с проксированием легенды: mtg и telemt — да, официальный — частично, Python — да. Несколько секретов: telemt — да, официальный — без учёта, mtg — нет, Python — да. Рекламный тег: официальный, telemt и Python — да, mtg — принципиально нет. Нагрузка: telemt и mtg держат тысячи соединений на одном ядре, Python упирается в сотни, официальный масштабируется на большое железо.
Простота запуска: mtg — один бинарник и одна строка; telemt — бинарник и файл конфигурации; Python — интерпретатор плюс конфиг; официальный — сборка из исходников и обновляемые списки. Если сомневаетесь, начните с mtg: переехать на telemt позже можно без смены секрета.
Обновления и поддержка
Смотрите на дату последнего релиза: реализация без обновлений год и больше рискует отстать от изменений в фильтрах. У Go- и Rust-проектов релизы выходят регулярно, у официальной реализации — редко, у Python-варианта — по настроению автора.
Вопросы и ответы
Совместимы ли секреты между реализациями?
Да, формат секрета общий; домен FakeTLS надо указать в каждой.
Какая реализация быстрее?
Rust и Go близки; разница видна только на тысячах соединений.
Нужен ли рекламный тег на своём сервере?
Нет, это только для монетизации публичных серверов.