MTProto Proxy на Debian 12 и Ubuntu 22.04: установка и настройка
Семёнов Евгений Сергеевич, директор АйТи Фреш. За последние годы у моих клиентов и у меня самого количество запросов «почему Telegram не работает на рабочем компьютере» выросло кратно. MTProto-прокси — это родной для мессенджера способ обойти блокировки: минимум настроек, нет клиента, работает прозрачно. В этой статье я соберу весь свой опыт по развёртыванию MTProto на Debian и Ubuntu — с обфускацией, fake-TLS, systemd и практическими граблями, на которые я сам наступал.
Как работает MTProto Proxy
MTProto — это собственный протокол Telegram, и у него есть несколько режимов туннелирования. Клиент Telegram сразу знает, как подключаться через прокси: вы указываете адрес, порт, secret — и всё, трафик идёт через промежуточный сервер. С точки зрения наблюдателя пакеты выглядят как случайный шифрованный поток (или, в режиме fake-TLS, как обычный HTTPS-трафик к популярному сайту).
- Серверная часть — открытая C-реализация от разработчиков Telegram.
- Клиентская часть — встроена во все официальные приложения Telegram.
- Шифрование — MTProto 2.0 плюс опциональная обфускация префикса.
- Трафик — только Telegram. Для веба нужен отдельный прокси или VPN.
У нас на практике это самое ненавязчивое для пользователя решение: один раз настроил ссылку tg://proxy?... и забыл.
Требования к серверу
MTProto-прокси жрёт минимально. Для 100–500 пользователей хватит самого дешёвого VPS:
| Пользователей | vCPU | RAM | Трафик/мес |
|---|---|---|---|
| до 50 | 1 | 512 МБ | 50 ГБ |
| 50–500 | 1–2 | 1 ГБ | 500 ГБ |
| 500–5000 | 2–4 | 2 ГБ | 2–5 ТБ |
| 5000+ | 4+ | 4 ГБ | без лимита |
Локация — Нидерланды, Финляндия или Германия. Я беру провайдеров, которые не режут торрент-подобный трафик: Hetzner, Netcup, OVH.
Установка на Debian 12
Официальный репозиторий — github.com/TelegramMessenger/MTProxy. Собирается из исходников за 3 минуты.
apt update && apt install -y git curl build-essential libssl-dev zlib1g-dev
cd /opt
git clone https://github.com/TelegramMessenger/MTProxy.git
cd MTProxy
make
# Получаем secret от Telegram
curl -s https://core.telegram.org/getProxySecret \
-o objs/bin/proxy-secret
# Получаем список серверов MTProto
curl -s https://core.telegram.org/getProxyConfig \
-o objs/bin/proxy-multi.conf
# Генерируем secret для клиентов
head -c 16 /dev/urandom | xxd -ps
Результат последней команды — 32-символьная hex-строка. Это и есть secret, который раздаётся пользователям. Обычный формат — dd-префикс для обфускации: dd<hex>.
Systemd-юнит и запуск
Я всегда оборачиваю прокси в systemd — так можно настроить автозапуск, мониторинг и рестарт при падении.
# /etc/systemd/system/mtproxy.service
[Unit]
Description=MTProto Proxy
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/MTProxy/objs/bin
ExecStart=/opt/MTProxy/objs/bin/mtproto-proxy \
-u nobody -p 8888 -H 443 \
-S ddAB12CD34EF56AB78CD90EF12AB3456 \
--aes-pwd proxy-secret proxy-multi.conf \
-M 1 --domain www.cloudflare.com
Restart=on-failure
RestartSec=5
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable --now mtproxy
systemctl status mtproxy
Параметр -H 443 — внешний порт, на котором клиенты подключаются. Я всегда использую 443 или 8443 — они не вызывают подозрений у DPI.
Fake-TLS для максимальной маскировки
Простая обфускация dd-префиксом — это минимум. Продвинутый режим — fake-TLS, когда прокси отвечает на handshake как настоящий HTTPS-сервер с валидным сертификатом указанного домена. В моей практике этот режим пережил много волн блокировок, тогда как простой MTProto пропадал.
Для fake-TLS secret формируется так: берём 16 случайных байтов, дописываем hex-представление домена-маски (например, www.cloudflare.com), добавляем префикс ee.
python3 -c "
import binascii
domain = 'www.cloudflare.com'
secret = 'ee' + binascii.hexlify(__import__('os').urandom(16)).decode() \
+ binascii.hexlify(domain.encode()).decode()
print(secret)"
Этот secret и раздаём клиентам. В строке запуска оставляем параметр --domain www.cloudflare.com. DPI видит TLS-хендшейк к cloudflare и пропускает.
Генерация ссылки-приглашения
Клиенту вместо скриншотов IP и порта удобно дать одну ссылку. Telegram её распознаёт и открывает настройки прокси автоматически.
SERVER=95.111.222.33
PORT=443
SECRET=ee83f4b...cloudflare_hex
echo "https://t.me/proxy?server=$SERVER&port=$PORT&secret=$SECRET"
Я всегда отправляю пользователям именно такую ссылку через корпоративный чат — один клик, и прокси настроен.
Безопасность и защита от злоупотреблений
MTProto-прокси — лакомый кусок для ботов и перепродавцов. Если не закрыть сервер, он нагреется за пару недель.
- Firewall. Открываем только 443 на мир. SSH переносим на нестандартный порт и ограничиваем по ключу.
- fail2ban. Защита от брутфорса SSH.
- Сменные secret. Раз в 3 месяца меняю secret и рассылаю новую ссылку.
- Ограничение по странам. Через ipset+geoip можно запретить подключения из нецелевых регионов.
- Мониторинг. Количество активных соединений смотрю через
ss -tn state established sport = :443 | wc -l.
Кейс: 600 сотрудников за 24 часа
В конце 2025 года ко мне обратилась юридическая фирма в центре Москвы. 600 сотрудников, корпоративный Telegram как основной канал общения с клиентами. После очередной волны ограничений половина не могла писать клиентам. За 24 часа мы подняли MTProto-прокси на VPS Hetzner (1 vCPU, 2 ГБ RAM, 950 руб/мес), настроили fake-TLS с маской на cloudflare, сделали страничку внутри корпоративного портала с одной ссылкой-приглашением. Через неделю — 580 активных подключений, потребление трафика 4.2 ТБ, uptime 100%. Стоимость работы — 18 000 руб. разовых плюс аренда VPS.
Обслуживание
- Раз в неделю обновляем
proxy-multi.confизgetProxyConfig— Telegram иногда меняет внутренние серверы. - Раз в месяц
apt upgradeи перезапуск. - Логи —
journalctl -u mtproxy -n 200. - При подозрении на утечку secret — генерируем новый, рассылаем пользователям.
Подниму MTProto-прокси за 2 часа
Выбор VPS, установка, fake-TLS, ссылка-приглашение, рассылка сотрудникам. Для компаний от 10 до 2000 пользователей. Или регулярное обслуживание уже работающего прокси — обновления, смена secret, мониторинг.
Телефон: +7 903 729-62-41
Telegram: @ITfresh_Boss
Семёнов Евгений Сергеевич, директор АйТи Фреш
FAQ — MTProto Proxy
- Чем MTProto лучше обычного VPN?
- MTProto работает только для Telegram, не требует клиентского приложения кроме самого мессенджера, встроенная поддержка во всех клиентах и минимальные накладные расходы. Это облегчённое решение для одной задачи — доступа к Telegram.
- Что такое fake-TLS?
- Fake-TLS — режим, при котором прокси маскируется под обычный HTTPS-сайт. Для наблюдателя трафик выглядит как соединение с google.com или cloudflare.com, а не как прокси.
- Нужен ли отдельный сервер?
- Да, MTProto-прокси должен стоять на сервере за пределами ограниченной юрисдикции. Обычно это VPS за 200–500 руб/мес в Нидерландах, Финляндии или Германии.
- Сколько клиентов держит один сервер?
- На 1 vCPU и 1 ГБ RAM — около 500 активных подключений без проблем. На мощном железе — до 50000 клиентов на одной виртуалке.
- Можно ли запускать в Docker?
- Да, официальный образ telegrammessenger/proxy работает отлично. Но я предпочитаю нативную установку через systemd — проще отлаживать и обновлять.