5 независимых реализаций MTProto Proxy
Все пять проектов — полностью разный код, написанный с нуля на разных языках. Реализуют один и тот же протокол MTProto Proxy.
Сводная таблица
| telemt | mtg | mtprotoproxy | mtproto_proxy | mtproto.zig | |
|---|---|---|---|---|---|
| Язык | Rust + Tokio | Go | Python (asyncio) | Erlang/OTP | Zig (без GC, пре-аллокация) |
| Репо | telemt/telemt | 9seconds/mtg | alexbers/mtprotoproxy | seriyps/mtproto_proxy | sleep3r/mtproto.zig |
| Версия | 3.4.15 (июнь 2026) | 2.1.13 (фев 2026) | v1.1.1 (май 2022, коммиты до 2026) | 0.7.4 (фев 2026) | 1.0.1 (июнь 2026) |
| Лицензия | — | MIT | MIT | Apache 2.0 | MIT |
| REST API | Полный CRUD /v1/users | Нет | Нет | Нет | Нет (CLI mtbuddy) |
| Мультиюзер | Да + per-user лимиты | 1 секрет = 1 инстанс | Да (config.py) | Да (sys.config) | Да + per-user секреты/лимиты |
| Hot-reload | API (без рестарта) | Нельзя | SIGUSR2 | systemctl reload | SIGHUP (юзеры+конфиг; запрещён при 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/v2 | v1/v2 | Нет | Нет (есть public_port для HAProxy/Nginx) |
| Prometheus | Да (порт 9090, выкл. по умолч.) | Да (из коробки) | Да | Да | Да (выкл. по умолч.) |
| Ad Tag | Per-user (через API) | Нет (убрано в v2) | Общий | Общий | Общий (tag / ad_tag) |
| Anti-replay | Sliding window | Stable Bloom filter | OrderedDict FIFO | ETS-таблицы | Хеш-таблица, TTL 60 мин |
| Производительность | ~5-15k conn/1CPU | ~10-20k conn | ~4k юзеров/1CPU | 90k conn/4CPU | SO_REUSEPORT мультиворкер, пре-аллокация |
| Memory leak | Да (#390, не исправлен) | Исторические OOM — исправлены | Пул соединений (#298) | 100% CPU (#104) | Нет известных |
Уникальное у mtproto.zig: обход DPI «под ключ»
Остальные четыре — это только прокси: обход DPI на уровне ОС (дробление пакетов, zapret) настраиваешь сам, отдельно. mtproto.zig через mtbuddy install ставит это автоматически:
| Техника | telemt | mtg | mtprotoproxy | mtproto_proxy | mtproto.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-docker | Docker build telemt (distroless, ~3.75 MB) |
| itcaat/mtproto-installer | curl|bash установщик telemt + Traefik |
| nolaxe/install-MTProxy | Bash-менеджер (install/uninstall/status) |
Если нужен telemt — ставьте telemt напрямую.
Официальный TelegramMessenger/MTProxy
- Язык: C, GPLv2
- Поддерживает все 3 режима (Classic, dd, FakeTLS через
-D) - Фактически заброшен (README не обновлялся с 2018, последний фикс — ноябрь 2025)
- Лимит 16 секретов (хардкод, нужен патч для увеличения)
- Нет Docker, нет API
- Не рекомендуется — используйте telemt или mtg