Что такое MTProto FakeTLS и как настроить свой прокси для Telegram?

catbot
19.02.2026 17:49
237 просмотров

В этой статье подробно разберем, как работает технология MTProto FakeTLS, почему она так эффективна для Telegram, и пошагово настроим собственный неуязвимый прокси-сервер.

Что такое MTProto?

MTProto - это специализированный криптографический протокол, разработанный командой Telegram для безопасной передачи данных. Благодаря ему все ваши переписки надежно зашифрованы (как в прочном сейфе), и никто не может прочитать их содержимое. Однако обычный MTProto-прокси легко обнаруживается провайдерами: они не могут прочитать трафик, но видят его специфическую структуру и просто блокируют соединение.

Что такое FakeTLS?

Чтобы обмануть DPI, была придумана надстройка FakeTLS. Её задача - маскировка.
FakeTLS берет зашифрованный трафик Telegram и оборачивает его так, чтобы внешне он выглядел как абсолютно стандартное, безопасное HTTPS-соединение с популярным сайтом (например, с серверами Google, Microsoft или Apple).

Представьте, что вы отправляете секретный документ (ваше сообщение). Обычный прокси - это прозрачный конверт: почтальон (провайдер) не может прочесть текст, но видит, что письмо адресовано в Telegram, и выбрасывает его.
С FakeTLS вы кладете документ в стандартную коробку из-под популярного интернет-магазина. Почтальон видит обычную посылку, ничего не подозревает и свободно пропускает её.

Ограничения: почему не работают звонки?

Важно понимать, что MTProto идеально подходит для передачи текста, фото, видео и кружочков (используется надежный протокол TCP).
Однако голосовые и видеозвонки в Telegram требуют максимальной скорости без задержек, поэтому для них используется протокол UDP. MTProto-прокси не умеет маршрутизировать UDP-трафик. При попытке позвонить приложение попытается установить прямое соединение в обход прокси, и провайдер его заблокирует. (Для звонков лучше использовать полноценные VPN-решения, такие как Outline или WireGuard).

Пошаговая настройка сервера VPS/VDS

Для настройки нам понадобится виртуальный сервер (VPS/VDS) с установленной ОС Linux (рекомендуется Ubuntu) и доступом по SSH. Мы будем использовать современный и легковесный сервер mtg версии 2, работающий через Docker.

1. Подготовка сервера и установка Docker
Подключитесь к вашему серверу по SSH. Для маскировки под HTTPS-трафик нам обязательно нужен свободный порт 443. Проверим, не занят ли он:

ss -tulnp | grep :443

Если вывод пустой - порт свободен.

Установим Docker одной командой (если он еще не установлен):

curl -fsSL https://get.docker.com -o get-docker.sh && sudo sh get-docker.sh

2. Генерация криптографического ключа (FakeTLS)

Нам нужно создать специальный секрет, который заставит наш прокси притворяться сервером Google (dl.google.com). Выполните команду:

docker run --rm nineseconds/mtg:2 generate-secret --hex dl.google.com

В терминале появится длинная строка, начинающаяся с букв ee (например: ee123456789...dl.google.com). Скопируйте и сохраните её! Это ваш секретный ключ.

3. Создание файла конфигурации

Современная версия mtg требует отдельного файла настроек. Создадим его. Скопируйте приведенный ниже блок целиком, заменив ВАШ_СЕКРЕТ_ИЗ_ШАГА_2 на скопированный ранее длинный ключ (кавычки вокруг ключа нужно оставить!):

cat <<EOF > config.toml
secret = "ВАШ_СЕКРЕТ_ИЗ_ШАГА_2"
bind-to = "0.0.0.0:3128"
EOF

Нажмите Enter. Файл config.toml успешно создан в вашей текущей директории.

4. Запуск прокси-сервера

Теперь запустим сам сервер в фоновом режиме. Команда пробросит нужные порты и применит наш файл настроек:

docker run -d --name mtproto-proxy \
  -p 443:3128 \
  -v $(pwd)/config.toml:/config.toml \
  --restart unless-stopped \
  nineseconds/mtg:2 run /config.toml

Чтобы убедиться, что всё запустилось без ошибок, проверьте логи:

docker logs mtproto-proxy

Если вы не видите сообщений об ошибках, значит сервер успешно работает!

5. Настройка Firewall (UFW)
Обязательно нужно разрешить входящий трафик на наш порт маскировки.
Внимание: Если вы используете UFW, сначала обязательно разрешите порт SSH (22), чтобы не потерять доступ к серверу!

sudo ufw allow 22/tcp
sudo ufw allow 443/tcp
sudo ufw enable

(Нажмите y, если система предупредит о возможном разрыве SSH-соединения).

Подключение в Telegram

Ваш сервер готов! Осталось только сформировать ссылку для себя и своих друзей/клиентов.

Шаблон ссылки выглядит так:
tg://proxy?server=IP_АДРЕС_СЕРВЕРА&port=443&secret=ВАШ_СЕКРЕТ

  1. Замените IP_АДРЕС_СЕРВЕРА на реальный IP вашего сервера.
  2. Вместо ВАШ_СЕКРЕТ вставьте ту самую длинную строку, начинающуюся на ee.
  3. Отправьте эту ссылку себе в "Избранное" в Telegram.
  4. Нажмите на нее и выберите "Подключить прокси".

В верхней части экрана Telegram появится значок щита с галочкой. Поздравляем, теперь ваш трафик надежно замаскирован, а блокировки остались в прошлом!

P.S: Не забудьте обезопасить сервер и другими полезными вещами, например fail2ban, доступ по ssh ключам и т.д.