5 независимых реализаций MTProto Proxy

Все пять проектов — полностью разный код, написанный с нуля на разных языках. Реализуют один и тот же протокол MTProto Proxy.

Сводная таблица

telemtmtgmtprotoproxymtproto_proxymtproto.zig
ЯзыкRust + TokioGoPython (asyncio)Erlang/OTPZig (без GC, пре-аллокация)
Репоtelemt/telemt9seconds/mtgalexbers/mtprotoproxyseriyps/mtproto_proxysleep3r/mtproto.zig
Версия3.4.15 (июнь 2026)2.1.13 (фев 2026)v1.1.1 (май 2022, коммиты до 2026)0.7.4 (фев 2026)1.0.1 (июнь 2026)
ЛицензияMITMITApache 2.0MIT
REST APIПолный CRUD /v1/usersНетНетНетНет (CLI mtbuddy)
МультиюзерДа + per-user лимиты1 секрет = 1 инстансДа (config.py)Да (sys.config)Да + per-user секреты/лимиты
Hot-reloadAPI (без рестарта)НельзяSIGUSR2systemctl reloadSIGHUP (юзеры+конфиг; запрещён при workers>1)
Маскировка при зондахTCP Splice → реальный сайтDomain Fronting (байт-идентичный)Редирект на TLS_DOMAINНичего (закрывает conn)mask → реальный домен + nginx decoy (реальный серт)
Traffic mimicryНетDoppelganger (только в master, не в релизе)НетНетDRS + ServerHello desync (частично)
SOCKS5 upstreamДа (+SOCKS4)ДаДаНетДа (+HTTP CONNECT, +WG/AmneziaWG туннель)
Proxy ProtocolДаv1/v2v1/v2НетНет (есть public_port для HAProxy/Nginx)
PrometheusДа (порт 9090, выкл. по умолч.)Да (из коробки)ДаДаДа (выкл. по умолч.)
Ad TagPer-user (через API)Нет (убрано в v2)ОбщийОбщийОбщий (tag / ad_tag)
Anti-replaySliding windowStable Bloom filterOrderedDict FIFOETS-таблицыХеш-таблица, TTL 60 мин
Производительность~5-15k conn/1CPU~10-20k conn~4k юзеров/1CPU90k conn/4CPUSO_REUSEPORT мультиворкер, пре-аллокация
Memory leakДа (#390, не исправлен)Исторические OOM — исправленыПул соединений (#298)100% CPU (#104)Нет известных

Уникальное у mtproto.zig: обход DPI «под ключ»

Остальные четыре — это только прокси: обход DPI на уровне ОС (дробление пакетов, zapret) настраиваешь сам, отдельно. mtproto.zig через mtbuddy install ставит это автоматически:

Техникаtelemtmtgmtprotoproxymtproto_proxymtproto.zig
TCPMSS-дробление ClientHelloсамсамсамсамставит сам (--tcpmss 88)
nfqws TCP desync (zapret)самсамсамсамставит сам (mtbuddy nfqws)
IPv6-hopping при банеНетНетНетНетДа (--ipv6-hop)
VPN-туннель upstream (WG/AmneziaWG)НетНетНетНетДа (type = "tunnel")

Подробный разбор техник и настроек — в MTProxy и mtproto.zig: как пережить ТСПУ.

Какой выбрать?

Для Telegram-бота с per-user ключами → telemt

Единственный с REST API. Создание/удаление юзеров без SSH и рестартов:

curl -X POST http://127.0.0.1:9091/v1/users \
  -d '{"username":"user_123", "expiration_rfc3339":"2026-04-14T00:00:00Z"}'

Для максимального обхода DPI → mtg

Doppelganger (в master, планируется v2.2) имитирует статистические характеристики TLS-трафика реального сайта — размеры записей, тайминги. Уникальная фича.

Для простоты → mtprotoproxy

Один файл Python (~2400 строк), минимум зависимостей. Работает без pip-пакетов.

Для высоких нагрузок → mtproto_proxy (Erlang)

90k соединений / 1 Gbps на 4 ядрах. Erlang OTP супервизоры — краш одного соединения не роняет сервер.

Для обхода DPI «под ключ» → mtproto.zig (Zig)

Единственный, кто сам ставит OS-level обход (TCPMSS-дробление + zapret/nfqws desync), маскировку nginx и IPv6-hopping — одной командой mtbuddy install, без ручной возни с iptables. Плюс статический бинарь без зависимостей и без GC. Если нужен «поставил и работает» против ТСПУ — это он. Разбор: MTProxy и mtproto.zig.

Обёртки (НЕ отдельные проекты)

Эти проекты — скрипты/Dockerfile вокруг telemt. Свой код не содержат:

ОбёрткаЧто делает
An0nX/telemt-dockerDocker build telemt (distroless, ~3.75 MB)
itcaat/mtproto-installercurl|bash установщик telemt + Traefik
nolaxe/install-MTProxyBash-менеджер (install/uninstall/status)

Если нужен telemt — ставьте telemt напрямую.

Официальный TelegramMessenger/MTProxy

  • Язык: C, GPLv2
  • Поддерживает все 3 режима (Classic, dd, FakeTLS через -D)
  • Фактически заброшен (README не обновлялся с 2018, последний фикс — ноябрь 2025)
  • Лимит 16 секретов (хардкод, нужен патч для увеличения)
  • Нет Docker, нет API
  • Не рекомендуется — используйте telemt или mtg