telemt/README.ru.md

5.3 KiB
Raw Blame History

Telemt — MTProxy на Rust + Tokio

Решает проблемы раньше, чем другие узнают об их существовании

[!NOTE]

Исправленный TLS ClientHello доступен в Telegram Desktop начиная с версии 6.7.2: для работы с EE-MTProxy обновите клиент.

Исправленный TLS ClientHello доступен в Telegram Android начиная с версии 12.6.4; официальный релиз для iOS находится в процессе разработки.

Telemt — это быстрый, безопасный и функциональный сервер, написанный на Rust. Он полностью реализует официальный алгоритм прокси Telegram и добавляет множество улучшений для продакшена:

telemt_scheme

Особенности

Реализация TLS-fronting максимально приближена к поведению реального HTTPS-трафика (подробнее - FAQ).

Middle-End Pool оптимизирован для высокой производительности.

  • Поддержка всех режимов MTProto proxy:
    • Classic;
    • Secure (префикс dd);
    • Fake TLS (префикс ee + SNI fronting);
  • Защита от replay-атак;
  • Маскировка трафика (перенаправление неизвестных подключений на реальные сайты);
  • Настраиваемые keepalive, таймауты, IPv6 и «быстрый режим»;
  • Корректное завершение работы (Ctrl+C);
  • Подробное логирование через trace и debug.

Быстрая установка (обновление при повторном запуске)

curl -fsSL https://raw.githubusercontent.com/telemt/telemt/main/install.sh | sh

Подробнее об установке в Quick Start Guide.

Навигация

Быстрый старт

FAQ

Сборка

# Клонируйте репозиторий
git clone https://github.com/telemt/telemt 
# Смените каталог на telemt
cd telemt
# Начните процесс сборки
cargo build --release

# Устройства с небольшим объёмом оперативной памяти (1 ГБ, например NanoPi Neo3 / Raspberry Pi Zero 2):
# используется параметр lto = «thin» для уменьшения пикового потребления памяти.
# Если ваш пользовательский набор инструментов переопределяет профили, не используйте Fat LTO.

# Перейдите в каталог /bin
mv ./target/release/telemt /bin
# Сделайте файл исполняемым
chmod +x /bin/telemt
# Запустите!
telemt config.toml

Устройства с малым объемом RAM

Для устройств с ~1 ГБ RAM (например Raspberry Pi):

  • используется облегчённая оптимизация линковщика (thin LTO);
  • не рекомендуется включать fat LTO.

OpenBSD

  • Руководство по сборке и настройке на английском языке OpenBSD Guide (EN);
  • Пример rc.d скрипта: contrib/openbsd/telemt.rcd;
  • Поддержка sandbox с pledge(2) и unveil(2) пока не реализована.

Почему Rust?

  • Надёжность для долгоживущих процессов;
  • Детерминированное управление ресурсами (RAII);
  • Отсутствие сборщика мусора;
  • Безопасность памяти;
  • Асинхронная архитектура Tokio.