mtproto.zig
Описание скопировано из оригинально репозитория - Автор этой публикации не является автором mtproto.zig
Почему именно этот?
Большинство прокси-серверов MTProto являются большими, зависимыми и используют много памяти. Этот отличается:
| Proxy | Language | Binary | Baseline RSS | Startup | Dependencies |
|---|---|---|---|---|---|
| mtproto.zig | Zig | 177 KB | 0.75 MB | < 10 ms | 0 |
| Official MTProxy | C | 524 KB | 8.0 MB | < 10 ms | openssl, zlib |
| Telemt | Rust | 15 MB | 12.1 MB | ~ 5-6 s | 423 crates |
| mtg | Go | 13 MB | 11.6 MB | ~ 30 ms | 78 modules |
| MTProtoProxy | Python | N/A | ~ 30 MB | ~ 300 ms | python3, cryptography |
| JSMTProxy | Node.js | N/A | ~ 45 MB | ~ 400 ms | nodejs, openssl |
Почему Zig?
Мы выбрали Zig, потому что он обеспечивает высокую производительность и занимает меньше места, чем C, но без проблем с памятью и кошмаров, связанных с системой сборки:
- Никаких произвольных распределений: Все места для подключения и буферы предварительно выделяются при запуске. Сборщик мусора не удаляет фреймы при большой нагрузке.
- Герметичная кросс-компиляция: Запустите "zig build" на macOS, и в результате получится статически связанный двоичный файл Linux. Нет Docker, нет несоответствий версий
glibc. - Comptime: Во время компиляции решаются такие дорогостоящие операции, как сопоставление определений протоколов, преобразование в порядок порядковых номеров и двуязычный поиск строк для mtbuddy, что обеспечивает мгновенный запуск.
Кроме того, в нем реализовано больше методов обхода, чем в любом из вышеперечисленных:
| Техника | Что она делает |
|---|---|
| Поддельный TLS 1.3 | Соединения выглядят как обычные HTTPS в DPI |
| DRS | Имитирует размеры записей TLS в Chrome/Firefox |
| Маскировка нулевого RTT | Локальный Nginx выдает реальные ответы TLS на активные запросы, что исключает анализ времени |
| TCPMSS=88 | Разбивает ClientHello на 6 TCP-пакетов, нарушая повторную сборку DPI |
| nfqws рассинхронизирует TCP | Отправляет поддельные пакеты + разбиения с ограничением TTL, чтобы запутать DPI с отслеживанием состояния |
| Разделение TLS | 1- байтовые записи приложений для устранения пассивных сигнатур |
| VPN-туннель | Маршрутизирует через WireGuard/AmneziaWG с использованием явной политики маршрутизации сокетов (SO_MARK) при блокировке контроллеров домена |
| Переход по IPv6 | Автоматически меняет IPv6-адрес с /64 на |
| Защита от повторного воспроизведения | Отклоняет повторные подтверждения связи + обнаруживает активные проверки TSPU Revisor |
| Многопользовательский | Независимые секреты для каждого пользователя |
| MiddleProxy | МОЙ транспорт с автоматически обновляемыми метаданными Telegram |
Комментарии (0)