MTProto — это собственный протокол Telegram для шифрования трафика. Прокси на его основе позволяет обходить блокировки и при этом остаётся нативным для клиента — никаких сторонних VPN-клиентов не нужно.
Что понадобится
- VPS/выделенный сервер за пределами страны блокировки (подойдёт любой облачный провайдер: Hetzner, DigitalOcean, Vultr)
- ОС: Ubuntu 20.04/22.04 или Debian 11/12
- Открытый порт (любой, например 443 — он реже блокируется)
- ~15 минут времени
Выбор реализации
Существует несколько реализаций MTProto прокси:
| Реализация | Язык | Особенности |
|---|---|---|
| MTProxy (официальный от Telegram) | C | Эталонная реализация, немного устарела |
| mtg | Go | Лёгкий, современный, рекомендуемый |
| MTProxyBot | Python | Удобен для быстрого старта |
Рекомендую mtg v2 — он активно поддерживается, потребляет мало памяти и имеет встроенную защиту от детектирования (Fake TLS).
Установка mtg v2
1. Подключаемся к серверу и обновляем систему
ssh root@YOUR_SERVER_IP
apt update && apt upgrade -y
2. Скачиваем бинарник mtg
# Проверьте последнюю версию на github.com/9seconds/mtg
wget https://github.com/9seconds/mtg/releases/latest/download/mtg-linux-amd64 -O /usr/local/bin/mtg
chmod +x /usr/local/bin/mtg
3. Генерируем секрет
Секрет — это случайный ключ, который идентифицирует ваш прокси. В mtg v2 используется формат FakeTLS, где секрет включает имя домена для маскировки трафика под обычный HTTPS.
mtg generate-secret --hex tls YOUR_DOMAIN.com
Например:
mtg generate-secret --hex tls google.com
Вы получите строку вида:
ee367a7170706c652e636f6d...
⚠️ Сохраните этот секрет — он понадобится для настройки клиентов.
Флаг tls означает, что трафик будет замаскирован под TLS-соединение с указанным доменом — это делает прокси практически неотличимым от обычного HTTPS-трафика на уровне DPI.
4. Создаём конфигурационный файл
mkdir -p /etc/mtg
cat > /etc/mtg/mtg.toml << EOF
secret = "ВАШ_СГЕНЕРИРОВАННЫЙ_СЕКРЕТ"
bind-to = "0.0.0.0:443"
[network]
timeout = «10s»
[stats]
statsd-enabled = false EOF
Если порт 443 занят (например, nginx), используйте любой другой: 8443, 2083, 8080.
5. Настраиваем systemd-сервис
cat > /etc/systemd/system/mtg.service << EOF
[Unit]
Description=MTProto Proxy
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/mtg run /etc/mtg/mtg.toml
Restart=always
RestartSec=5
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable mtg
systemctl start mtg
6. Проверяем, что прокси запустился
systemctl status mtg
# или
journalctl -u mtg -f

Настройка файрвола
# Если используете ufw
ufw allow 443/tcp
ufw reload
# Если используете iptables напрямую
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
Получение ссылки для подключения
mtg умеет генерировать готовую ссылку для Telegram:
mtg access /etc/mtg/mtg.toml
Вы получите что-то вроде:
tg://proxy?server=YOUR_IP&port=443&secret=ВАШ_СЕКРЕТ
https://t.me/proxy?server=YOUR_IP&port=443&secret=ВАШ_СЕКРЕТ
Просто откройте эту ссылку на устройстве — Telegram подхватит настройки автоматически.
Альтернатива: официальный MTProxy от Telegram (на C)
Если хотите использовать официальную реализацию:
apt install -y git curl build-essential libssl-dev zlib1g-dev
git clone https://github.com/TelegramMessenger/MTProxy.git
cd MTProxy
make
# Скачать список серверов Telegram
curl -s https://core.telegram.org/getProxySecret -o proxy-secret
curl -s https://core.telegram.org/getProxyConfig -o proxy-multi.conf
# Генерация секрета
head -c 16 /dev/urandom | xxd -ps
# Запуск
./objs/bin/mtproto-proxy -u nobody -p 8888 -H 443 \
-S ВАШ_СЕКРЕТ \
--aes-pwd proxy-secret proxy-multi.conf \
-M 1
Недостаток официальной реализации: нет встроенного FakeTLS, конфиг серверов нужно периодически обновлять вручную.
Поддержание актуальности конфига (только для официального MTProxy)
Добавьте в cron обновление списка серверов:
crontab -e
# Добавить строку:
0 * * * * curl -s https://core.telegram.org/getProxyConfig -o /opt/MTProxy/proxy-multi.conf && systemctl restart mtproxy
Советы по безопасности и стабильности
- Не публикуйте прокси публично без необходимости — при высокой нагрузке потребуется более мощный сервер
- Используйте порт 443 — он открыт почти везде и реже попадает под блокировку
- FakeTLS домен выбирайте популярный (google.com, cloudflare.com) — трафик будет выглядеть как обращение к этому ресурсу
- Настройте мониторинг: mtg поддерживает экспорт метрик в Prometheus
- Регулярно обновляйте mtg — проект активно развивается
После всех шагов у вас будет работающий MTProto прокси. Поделитесь ссылкой
tg://proxy?...с теми, кому нужен доступ — подключение займёт буквально одно нажатие в Telegram.
Один ответ к “Как создать свой MTProto Proxy для Telegram: прокси для ТГ за 15 минут”
поздравьте меня
я смог сделать свой прокси для телеграм mtproto
ушло около часа! в след раз думаю за 20 мин справлюсь)