Высокопроизводительный Telegram MTProxy на Go с TLS-маскировкой
English • Возможности • Быстрый старт • Конфигурация • Docker
Telegram заблокирован? TLS-маскировка TeleGO делает ваш прокси неотличимым от обычного HTTPS-трафика для цензоров. Настройка за 2 минуты
| Функция | TeleGO | mtg | Официальный MTProxy |
|---|---|---|---|
| TLS-маскировка | Да | Да | Нет |
| Защита от проб | Да | Да | Нет |
| Метрики по пользователям | Да | Нет | Нет |
| Лимит IP на пользователя | Да | Нет | Нет |
| Умная блокировка IP | Да | Нет | Нет |
| Защита от OOM | Да | Нет | Нет |
| Горячая перезагрузка | Да | Да | Нет |
| Поддерживается (2026) | Да | Частично | Нет |
- Event-driven I/O — на базе gnet с epoll/kqueue
- Zero-copy — прямая работа с буферами без копирования
- Пул буферов — отсутствие аллокаций в горячих путях
- Оптимизированный TCP —
TCP_NODELAY,TCP_QUICKACK, буферы 64KB
- TLS-маскировка — получает реальные сертификаты от маскирующего хоста
- Защита от проб — нераспознанные клиенты перенаправляются на маскирующий хост
- Защита от replay-атак — 64-шардовый LRU-кэш с TTL
- Обнуление ключей — чувствительные данные обнуляются при закрытии соединения
- Динамический размер записей (DRS) — исходящие TLS ApplicationData начинаются с записей по 1369 байт и наращиваются до полного размера после 8 записей или 128 КБ, имитируя поведение Chrome/Firefox
- Split-TLS — первая исходящая запись ApplicationData отправляется размером 1 байт, чтобы обойти пассивные сигнатуры по первой записи
- Мульти-пользователь — именованные секреты с отслеживанием по пользователям
- Лимиты подключений — ограничение IP на пользователя с умной блокировкой
- Prometheus-метрики — статистика подключений и трафика по пользователям
- Горячая перезагрузка — SIGHUP и отслеживание изменений файла конфигурации
- SOCKS5 upstream — маршрутизация через SOCKS5 (Hysteria2, VLESS и др.)
1. Сгенерируйте секрет:
telego generate www.google.com
# secret=0123456789abcdef0123456789abcdef <- в конфиг
# link=tg://proxy?server=... <- ссылка для клиентов2. Создайте config.toml:
[general]
bind-to = "0.0.0.0:443"
[secrets]
alice = "0123456789abcdef0123456789abcdef"
[tls-fronting]
mask-host = "www.google.com"3. Запустите:
telego run -c config.toml -lФлаг -l выводит ссылки для Telegram с автоопределением публичного IP.
[general]
bind-to = "0.0.0.0:443"
log-level = "info"
# Защита от абьюза
max-connections-per-ip = 100 # Макс. подключений с одного IP (включая неавторизованные)
max-ips-per-user = 3 # Макс. IP на один секрет
ip-block-timeout = "5m" # Время блокировки IP
# handshake-timeout = "5s" # Таймаут хэндшейка (по умолчанию 5с)
[secrets]
user1 = "0123456789abcdef0123456789abcdef"
user2 = "fedcba9876543210fedcba9876543210"
[tls-fronting]
mask-host = "www.google.com"
# splice-host = "127.0.0.1" # Куда перенаправлять нераспознанных клиентов
# splice-port = 8080
# splice-idle-timeout = "30s" # Таймаут бездействия для splice-соединений (по умолчанию 30с)
# Anti-DPI шейпинг записей (направление proxy -> client)
# enable-drs = true # Сначала маленькие записи, потом полный размер (1369 -> 16384 байт после 8 записей или 128 КБ)
# enable-split-tls = true # Первая запись ApplicationData размером 1 байт
[performance]
prefer-ip = "prefer-ipv4"
idle-timeout = "5m"
[upstream]
# socks5 = "127.0.0.1:1080" # Upstream через SOCKS5
[metrics]
bind-to = "127.0.0.1:9090"docker run -d \
--name telego \
-p 443:443 \
-v /path/to/config.toml:/config.toml \
scratchnet/telego:latestversion: '3.8'
services:
telego:
image: scratchnet/telego:latest
restart: unless-stopped
ports:
- "443:443"
volumes:
- ./config.toml:/config.toml:rogit clone https://github.com/Scratch-net/telego.git
cd telego
make buildСкачайте с Releases.
go install github.com/scratch-net/telego/cmd/telego@latest| Метрика | Тип | Описание |
|---|---|---|
telego_connections_active |
Gauge | Активные подключения |
telego_ips_active |
Gauge | IP с активными подключениями |
telego_ips_tracked |
Gauge | Уникальные IP в LRU кэше |
telego_ips_blocked |
Gauge | Заблокированные IP |
telego_blocked_total |
Counter | Всего блокировок |
telego_traffic_in_bytes_total |
Counter | Входящий трафик |
telego_traffic_out_bytes_total |
Counter | Исходящий трафик |
Все метрики имеют лейбл user для разбивки по пользователям.
- mtg — оригинальная Go-реализация MTProxy
- mtprotoproxy — Python референсная реализация
- telemt — высокопроизводительная Rust-реализация
