4.0 KiB
Telemt - MTProxy on Rust + Tokio
Löst Probleme, bevor andere überhaupt wissen, dass sie existieren / It solves problems before others even realize they exist
[!NOTE]
Fixed TLS ClientHello is now available:
- in Telegram Desktop starting from version 6.7.2;
- in Telegram Android Client starting from version 12.6.4;
- in Telegram for iOS starting from version 12.6.2
To work with EE-MTProxy, please update your client!
Telemt is a fast, secure, and feature-rich server written in Rust: it fully implements the official Telegram proxy algo and adds many production-ready improvements such as:
- ME Pool + Reader/Writer + Registry + Refill + Adaptive Floor + Trio-State + Generation Lifecycle;
- Full-covered API w/ management;
- Anti-Replay on Sliding Window;
- Prometheus-format Metrics;
- TLS-Fronting and TCP-Splicing for masking from "prying" eyes.
Our implementation of TLS-fronting is one of the most deeply debugged, focused, advanced and almost "behaviorally consistent to real": we are confident we have it right - see evidence on our validation and traces
Our Middle-End Pool is fastest by design in standard scenarios, compared to other implementations of connecting to the Middle-End Proxy: non dramatically, but usual
- Full support for all official MTProto proxy modes:
- Classic;
- Secure - with
ddprefix; - Fake TLS - with
eeprefix + SNI fronting;
- Replay attack protection;
- Optional traffic masking: forward unrecognized connections to a real web server, e.g. GitHub 🤪;
- Configurable keepalives + timeouts + IPv6 and "Fast Mode";
- Graceful shutdown on Ctrl+C;
- Extensive logging via
traceanddebugwithRUST_LOGmethod.
One-command installation (update on re-ru)
curl -fsSL https://raw.githubusercontent.com/telemt/telemt/main/install.sh | sh
See more in the Quick Start Guide.
GOTO
Quick Start Guide
FAQ
Build
# Cloning repo
git clone https://github.com/telemt/telemt
# Changing Directory to telemt
cd telemt
# Starting Release Build
cargo build --release
# Current release profile uses lto = "fat" for maximum optimization (see Cargo.toml).
# On low-RAM systems (~1 GB) you can override it to "thin".
# Move to /bin
mv ./target/release/telemt /bin
# Make executable
chmod +x /bin/telemt
# Lets go!
telemt config.toml
OpenBSD
- Build and service setup guide: OpenBSD Guide (EN)
- Example rc.d script: contrib/openbsd/telemt.rcd
- Status: OpenBSD sandbox hardening with
pledge(2)andunveil(2)is not implemented yet.
Why Rust?
- Long-running reliability and idempotent behavior;
- Rust's deterministic resource management - RAII;
- No garbage collector;
- Memory safety and reduced attack surface;
- Tokio's asynchronous architecture.
