wiki.zapret.moe заблокирован в России, читатели до редиректа не доходят. Во всех заметках, плашках [!mirror], ссылках и скриптах домен заменён на wiki2.zapret.moe; в AGENTS.md записано правило — ссылаться только на wiki2. Скрипт статистики считает своими заходы с обоих доменов. Чужие незакоммиченные правки в nuc/ в коммит не попали — только замена домена. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
96 lines
4.9 KiB
Markdown
96 lines
4.9 KiB
Markdown
---
|
||
description: "Протокол MTProto Proxy: режимы Classic, dd и FakeTLS, формат ee-секрета, устройство FakeTLS-handshake, Middle Proxy с Ad Tag и проблема DC203/CDN."
|
||
---
|
||
|
||
> [!mirror] Резервное зеркало
|
||
> Актуальная версия этой страницы — на основной вики: [wiki2.zapret.moe/Zapret/mtproto/01-protocol](https://wiki2.zapret.moe/Zapret/mtproto/01-protocol)
|
||
|
||
# Протокол MTProto Proxy
|
||
|
||
## Официальная спецификация
|
||
|
||
Протокол определён Telegram. Официальный репозиторий: [TelegramMessenger/MTProxy](https://github.com/TelegramMessenger/MTProxy) (C, GPLv2).
|
||
|
||
## Три режима
|
||
|
||
### Classic (без префикса)
|
||
|
||
- **Секрет:** 32 hex-символа (16 байт)
|
||
- **Транспорт:** Intermediate (`0xeeeeeeee`) с обфускацией AES-256-CTR
|
||
- **Добавлен:** Май 2018 (первый коммит)
|
||
- **Защита от DPI:** Слабая — паттерны пакетов легко детектируются
|
||
- **Статус:** Устаревший, не использовать
|
||
|
||
### Secure / dd (Padded Intermediate)
|
||
|
||
- **Секрет:** `dd` + 32 hex-символа
|
||
- **Транспорт:** Padded Intermediate (`0xdddddddd`) — добавляет 0-15 случайных байт к каждому пакету
|
||
- **Добавлен:** Июль 2018
|
||
- **Защита от DPI:** Средняя — маскирует характерные размеры пакетов
|
||
- **Статус:** Можно использовать, но FakeTLS лучше
|
||
|
||
### FakeTLS / ee (рекомендуемый)
|
||
|
||
- **Секрет:** `ee` + 32 hex + hex-кодировка домена
|
||
- **Пример:** `ee0123...abcdef676f6f676c652e636f6d` (google.com)
|
||
- **Транспорт:** Весь трафик обёрнут в TLS 1.3 записи
|
||
- **Добавлен:** Июль 2019 (флаг `-D domain.com` в официальном MTProxy)
|
||
- **Защита от DPI:** Высокая — выглядит как обычный HTTPS
|
||
|
||
**Важно:** FakeTLS — это **НЕ настоящий TLS**. Это кастомный протокол, который *выглядит* как TLS на уровне байтов. Nginx/HAProxy не могут его терминировать.
|
||
|
||
## Как работает FakeTLS handshake
|
||
|
||
![[wiki-anim-faketls-handshake.svg|Анимация: FakeTLS handshake в MTProxy]]
|
||
|
||
DPI видит обычное TLS 1.3 соединение к `google.com`.
|
||
|
||
## Формат секрета для клиента
|
||
|
||
```
|
||
Формат ee-секрета:
|
||
ee + <16 байт секрета в hex> + <домен в hex>
|
||
|
||
Пример:
|
||
Секрет сервера: 0123456789abcdef0123456789abcdef
|
||
Домен: google.com
|
||
|
||
ee0123456789abcdef0123456789abcdef676f6f676c652e636f6d
|
||
^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^
|
||
ee секрет (32 hex) "google.com" в hex
|
||
```
|
||
|
||
Сервер использует только 16-байтный секрет (через `-S`), домен — через `-D`.
|
||
Префикс `ee` — это клиентский маркер, сервер его не использует.
|
||
|
||
## Middle Proxy
|
||
|
||
Два режима работы MTProxy:
|
||
|
||
| | Direct Mode | Middle Proxy Mode |
|
||
|---|---|---|
|
||
| Схема | Клиент → MTProxy → Telegram DC | Клиент → MTProxy → Middle Proxies → Telegram DC |
|
||
| Ad Tag | Нет | Да (через @MTProxyBot) |
|
||
| Производительность | Выше | Ниже (доп. hop) |
|
||
| Требования | Секрет | + proxy-secret + proxy-multi.conf |
|
||
|
||
Для работы Ad Tag нужен middle proxy. Файлы обновляются каждые 12 часов:
|
||
```bash
|
||
curl -sf https://core.telegram.org/getProxySecret -o proxy-secret
|
||
curl -sf https://core.telegram.org/getProxyConfig -o proxy-multi.conf
|
||
```
|
||
|
||
## Все три режима — официальные
|
||
|
||
Все три режима реализованы в **официальном** `TelegramMessenger/MTProxy`:
|
||
- Classic и dd — задокументированы в README
|
||
- FakeTLS — добавлен в июле 2019 (флаг `-D`), но **README не обновлён** (последнее обновление README — декабрь 2018)
|
||
|
||
Поддержка всех трёх режимов есть во всех клиентах Telegram (iOS, Android, Desktop).
|
||
|
||
## DC203/CDN
|
||
|
||
DC203 — CDN-датацентр Telegram для кэширования медиа из каналов с 100k+ подписчиков. Его IP не в публичном списке — старые прокси не знают куда подключаться.
|
||
|
||
**Симптомы:** текст работает, медиа из крупных каналов не грузится.
|
||
**Решение:** обновить прокси до актуальной версии (mtg v2.1.12+, telemt v3.0+).
|