mirror of https://github.com/telemt/telemt.git
4.5 KiB
4.5 KiB
Telemt — MTProxy на Rust + Tokio
Решает проблемы раньше, чем другие узнают об их существовании
[!NOTE]
Исправленный TLS ClientHello доступен в Telegram для настольных ПК, Android и iOS.
Пожалуйста, обновите клиентское приложение для работы с EE-MTProxy.
Telemt — это быстрый, безопасный и функциональный сервер, написанный на Rust. Он полностью реализует официальный алгоритм прокси Telegram и добавляет множество улучшений для продакшена:
Установка и обновление одной командой
curl -fsSL https://raw.githubusercontent.com/telemt/telemt/main/install.sh | sh
Реализация TLS-fronting максимально приближена к поведению реального HTTPS-трафика (подробнее - FAQ).
Middle-End Pool оптимизирован для высокой производительности.
- Поддержка всех режимов MTProto proxy:
- Classic;
- Secure (префикс
dd); - Fake TLS (префикс
ee+ SNI fronting);
- Защита от replay-атак;
- Маскировка трафика (перенаправление неизвестных подключений на реальные сайты);
- Настраиваемые keepalive, таймауты, IPv6 и «быстрый режим»;
- Корректное завершение работы (Ctrl+C);
- Подробное логирование через
traceиdebug.
Подробнее о Telemt
- FAQ
- Архитектура
- Быстрый старт
- Параметры конфигурационного файла
- Сборка
- Установка на BSD
- Почему Rust?
FAQ
Сборка
# Клонируйте репозиторий
git clone https://github.com/telemt/telemt
# Смените каталог на telemt
cd telemt
# Начните процесс сборки
cargo build --release
# Устройства с небольшим объёмом оперативной памяти (1 ГБ, например NanoPi Neo3 / Raspberry Pi Zero 2):
# В текущем release-профиле используется lto = "fat" для максимальной оптимизации (см. Cargo.toml).
# На системах с малым объёмом RAM (~1 ГБ) можно переопределить это значение на "thin".
# Перейдите в каталог /bin
mv ./target/release/telemt /bin
# Сделайте файл исполняемым
chmod +x /bin/telemt
# Запустите!
telemt config.toml
Установка на BSD
- Руководство по сборке и настройке на английском языке OpenBSD Guide (EN);
- Пример rc.d скрипта: contrib/openbsd/telemt.rcd;
- Поддержка sandbox с
pledge(2)иunveil(2)пока не реализована.
Почему Rust?
- Надёжность для долгоживущих процессов;
- Детерминированное управление ресурсами (RAII);
- Отсутствие сборщика мусора;
- Безопасность памяти;
- Асинхронная архитектура Tokio.
