# 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|MTProxy и mtproto.zig: как пережить ТСПУ]].
## Какой выбрать?
### Для Telegram-бота с per-user ключами → **telemt**
Единственный с REST API. Создание/удаление юзеров без SSH и рестартов:
```bash
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|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