Установка Telegram MTProto прокси в Docker
В этом руководстве мы рассмотрим развёртывание официального MTProto прокси-сервера Telegram с помощью Docker. MTProto прокси использует нативный протокол Telegram, что делает его быстрым и надёжным способом доступа к Telegram в условиях ограниченных сетей или активных блокировок.
Что такое MTProto Proxy
MTProto Proxy - это собственный прокси протокол Telegram, специально разработанный для этой платформы. В отличие от стандартных SOCKS5 или HTTP прокси, MTProto создан исключительно для трафика Telegram и обладает рядом преимуществ:
- Нулевая конфигурация - официальный Docker-образ настраивает всё автоматически
- Поддержка нативного протокола - не требуется дополнительное ПО на стороне клиента, достаточно вставить ссылку в Telegram
- Обфускация - трафик зашифрован, и его сложнее обнаружить по сравнению с обычными SOCKS или HTTP прокси
- Многопользовательский режим - один прокси-сервер может обслуживать десятки тысяч одновременных подключений
- Спонсорские каналы - вы можете продвигать свой канал среди всех пользователей вашего прокси
Подсказка
Клиентам хостинга Senko Digital доступна полностью автоматическая установка MTProto прокси при первоначальном заказе услуги или через опцию «Запустить скрипт» в панели управления виртуальным сервером.
Требования
- VPS-сервер с Linux (в примере используется Ubuntu 24)
- root или sudo доступ в системе
- Установленный и запущенный Docker
- Открытый порт 443 (или другой выбранный вами порт) в брандмауэре
TIP
Если вы ещё не установили Docker, следуйте инструкции из нашего руководства по WireGuard Easy - процесс установки одинаковый.
Установка
Автоматическая установка для клиентов хостинга
Поддерживаемые операционные системы: Debian 11, Debian 12, Debian 13, Ubuntu 20.04, Ubuntu 22.04, Ubuntu 24.04.
При заказе услуги
В меню заказа через выпадающее меню выберите опцию «MTProto», завершите заказ и дождитесь окончания обработки услуги.

Сразу после активации сервера вы получите письмо со ссылками для подключения к MTProto прокси и инструкциями.
Через панель управления ВМ
Перейдите в панель управления ВМ, перейдите в управление нужным сервером, в правом верхнем углу раскройте «Меню» и выберите опцию «Запустить скрипт».

В диалоге выберите «MTProto» и включите опцию «Отправить письмо, которое привязано к скрипту».

По окончанию установки вы получите письмо со ссылкой для подключения к MTProto прокси.
Что устанавливается
Скрипт разворачивает официальный MTProto прокси Telegram в Docker. Контейнер автоматически генерирует секретную фразу и ссылки для подключения без какой-либо дополнительной настройки.
После установки вы получаете:
- connection-info.txt — содержит ссылку
tg://, веб-ссылкуt.me, секретную фразу, IP сервера и порт
Как подключиться
- Откройте ссылку
t.meизconnection-info.txtв любом браузере — Telegram автоматически предложит включить прокси - Или: в Telegram перейдите в Настройки → Продвинутые настройки → Тип соединения → Использовать прокси → MTProto и введите IP сервера, порт и секретную фразу вручную
Брандмауэр
Скрипт настраивает достаточно ограниченный брандмауэр — открыты только лишь порты SSH и MTProto (443/tcp). Весь остальной входящий трафик по умолчанию блокируется.
Ежедневный перезапуск в 04:00 UTC автоматически обновляет IP-адреса ядра Telegram.
Управление сервером
cd /opt/mtproto-docker && docker compose up -d # запуск
cd /opt/mtproto-docker && docker compose down # остановка
cd /opt/mtproto-docker && docker compose logs -f # логи
docker logs mtproto_proxy # просмотр ссылок для подключенияРучная установка
Установка Docker
Если Docker ещё не установлен, проще всего воспользоваться официальным скриптом установки:
curl -sSL https://get.docker.com/ | CHANNEL=stable bashСкрипт автоматически определит ваш дистрибутив Linux и установит последнюю стабильную версию Docker.
Развёртывание MTProto Proxy
Базовое развёртывание
Простейший способ запустить прокси одной командой:
docker run -d \
-p 443:443 \
--name=mtproto-proxy \
--restart=always \
-v proxy-config:/data \
telegrammessenger/proxy:latestЭта команда:
- Запускает контейнер в фоновом режиме (
-d) - Пробрасывает порты между сетью контейнера и вашим сервером
- Присваивает контейнеру название
mtproto-proxyдля более удобной навигации - Автоматически перезапускает контейнер при остановке или перезагрузке сервера
- Сохраняет конфигурацию (включая секрет) в volume контейнера
Получение ссылок для подключения
После запуска контейнера проверьте логи, чтобы получить актуальные ссылки для подключения:
docker logs mtproto-proxyВы увидите вывод, похожий на этот:
[+] No secret passed. Will generate 1 random ones.
[+] Saving generated secret to /data/secret.
[*] Final configuration:
[*] Secret 1: 00baadf00d15abad1deaa515baadcafe
[*] tg:// link for secret 1 auto configuration: tg://proxy?server=YOUR_IP&port=443&secret=00baadf00d15abad1deaa515baadcafe
[*] t.me link for secret 1: https://t.me/proxy?server=YOUR_IP&port=443&secret=00baadf00d15abad1deaa515baadcafe
[*] Tag: no tag
[*] External IP: YOUR_IPСкопируйте ссылку tg:// или t.me и вставьте её в Telegram на любом устройстве - прокси настроится автоматически.
WARNING
Убедитесь, что IP-адрес в ссылке совпадает с публичным IP вашего сервера. Если прокси работает за NAT, ссылки может потребоваться исправить вручную.
Пользовательская конфигурация
Установка своей секретной фразы
Если вы хотите использовать собственную секретную фразу (достаточно полезно при развёртывании нескольких прокси для балансировки нагрузки), вы можете передать её в виде переменной при запуске контейнера. Секретная фраза должна быть ровно 16 байт в шестнадцатеричном формате и быть в нижнем регистре (32 символа).
Сгенерировать случайную секретную фразу можно командой:
openssl rand -hex 16Затем передайте её в виде переменной контейнеру:
docker run -d \
-p 443:443 \
--name=mtproto-proxy \
--restart=always \
-v proxy-config:/data \
-e SECRET=00baadf00d15abad1deaa515baadcafe \
telegrammessenger/proxy:latestНесколько секретных фраз
Прокси поддерживает до 16 различных секретных фраз. Вы можете указать их явно через запятую или позволить контейнеру сгенерировать указанное количество секретных фраз:
# Явное указание нескольких секретных фраз
docker run -d \
-p 443:443 \
--name=mtproto-proxy \
--restart=always \
-v proxy-config:/data \
-e SECRET=935ddceb2f6bbbb78363b224099f75c8,2084c7e58d8213296a3206da70356c81 \
telegrammessenger/proxy:latest# Автоматическая генерация 4 секретных фраз
docker run -d \
-p 443:443 \
--name=mtproto-proxy \
--restart=always \
-v proxy-config:/data \
-e SECRET_COUNT=4 \
telegrammessenger/proxy:latestИспользование другого порта
Вы можете пробросить любой другой порт с вашего сервера на внутренний порт контейнера 443. Например, чтобы использовать порт 8443 для прокси:
docker run -d \
-p 8443:443 \
--name=mtproto-proxy \
--restart=always \
-v proxy-config:/data \
telegrammessenger/proxy:latestWARNING
При изменении внешнего порта также необходимо вручную обновить номер порта в ссылках tg:// и t.me из логов контейнера.
Добавление тега спонсорского канала
Вы можете зарегистрировать свой прокси в Telegram-боте @MTProxybot и получить тег для продвижения своего канала. Этот тег позволяет показывать спонсорский канал всем пользователям, подключённым через ваш прокси:
docker run -d \
-p 443:443 \
--name=mtproto-proxy \
--restart=always \
-v proxy-config:/data \
-e TAG=3f40462915a3e6026a4d790127b95ded \
telegrammessenger/proxy:latestTIP
Тег не сохраняется между перезапусками - его нужно передавать как переменную при каждом пересоздании контейнера. Секрет, напротив, сохраняется в volume контейнера и никогда не теряется.
Настройка количества воркеров
Один рабочий процесс (воркер) способен обслуживать десятки тысяч подключений. По умолчанию прокси запускает 2 воркера с лимитом 60 000 соединений на один поток. Если вы ожидаете высокую нагрузку на ваше прокси, рекомендуем увеличить количество воркеров:
docker run -d \
-p 443:443 \
--name=mtproto-proxy \
--restart=always \
-v proxy-config:/data \
-e WORKERS=16 \
telegrammessenger/proxy:latestОткрытие порта в брандмауэре
Если вы используете UFW (Uncomplicated Firewall), разрешите трафик на порту прокси:
# Для порта 443 по умолчанию
sudo ufw allow 443/tcp
# Для кастомного порта (например, 8443)
sudo ufw allow 8443/tcpРегистрация прокси в Telegram
Для получения доступа к статистике использования и опциональной рекламы:
- Откройте Telegram и найдите бота @MTProxybot
- Отправьте команду
/newproxy - Укажите IP-адрес и порт вашего сервера
- Укажите секрет вашего прокси
- Бот выдаст вам тег - используйте его с переменной окружения
TAG, как показано выше
Подключение клиентов
На мобильных устройствах (Android / iOS)
- Откройте ссылку
tg://илиt.meиз логов контейнера в браузере - Telegram откроется и предложит включить прокси
- Нажмите Подключить
На компьютере (Telegram Desktop)
- Откройте ссылку
tg://илиt.me - Telegram Desktop предложит добавить прокси
- Нажмите Включить
Ручная настройка
Если вы предпочитаете настроить прокси вручную:
- Перейдите в Настройки > Продвинутые настройки > Тип соединения > Использовать собственный прокси
- Выберите MTProto
- Введите IP-адрес сервера, порт и секретную фразу
- Нажмите Сохранить и затем Подключиться
Управление контейнером
Основные команды
# Просмотр статуса контейнера
docker ps -a | grep mtproto-proxy
# Просмотр логов
docker logs mtproto-proxy
# Просмотр логов в реальном времени
docker logs -f mtproto-proxy
# Остановка прокси
docker stop mtproto-proxy
# Запуск прокси
docker start mtproto-proxy
# Перезапуск прокси
docker restart mtproto-proxy
# Удаление контейнера (данные сохраняются в volume контейнера)
docker rm -f mtproto-proxyОбновление прокси
Для обновления до последней версии:
# Скачать последнюю доступную версию Docker образа
docker pull telegrammessenger/proxy:latest
# Удалить старый контейнер
docker rm -f mtproto-proxy
# Запустить новый контейнер (секрет сохраняется в volume контейнера)
docker run -d \
-p 443:443 \
--name=mtproto-proxy \
--restart=always \
-v proxy-config:/data \
telegrammessenger/proxy:latestМониторинг
Прокси предоставляет внутреннюю статистику по адресу http://localhost:2398/stats внутри контейнера.
Для просмотра статистики выполните:
docker exec mtproto-proxy curl http://localhost:2398/statsКлючевые метрики:
| Метрика | Описание |
|---|---|
ready_targets | Количество серверов Telegram, к которым прокси попытается подключиться |
active_targets | Количество серверов Telegram, к которым прокси подключён (должно совпадать с ready_targets) |
total_special_connections | Количество текущих подключённых клиентов |
total_max_special_connections | Максимально допустимое количество подключений (60 000 x количество воркеров) |
Автоматический ежедневный перезапуск
Прокси получает IP-адреса серверов Telegram при запуске. Эти адреса всегда могут меняться, поэтому рекомендуется перезапускать контейнер раз в сутки для актуализации списка IP:
# Открыть редактор crontab
crontab -eДобавьте следующую строку для перезапуска прокси каждый день в 4:00 утра (по локальному времени настроенном в сервере):
0 4 * * * docker restart mtproto-proxyРешение проблем
Клиенты зависают на подключении
Это означает, что клиенты не могут достучаться до вашего прокси-сервера. Проверьте следующее:
- Брандмауэр: убедитесь, что порт прокси (443 или ваш пользовательский порт) открытbash
sudo ufw status - Проброс портов Docker: убедитесь, что контейнер запущен и порт проброшен корректноbash
docker ps - Сетевые ограничения: некоторые сети могут блокировать порт 443 для не-HTTPS трафика. Попробуйте использовать другой порт
Клиенты зависают на обновлении
Это означает, что прокси не может подключиться к серверам ядра Telegram. Проверьте:
- Исходящий брандмауэр: убедитесь, что ваш сервер может устанавливать исходящие соединенияbash
curl -I https://telegram.org - Системное время: прокси требует, чтобы системные часы были в пределах 5 секунд от UTC. Установите и включите синхронизацию времени:bash
sudo apt install systemd-timesyncd sudo timedatectl set-ntp true timedatectl status - Перезапустите контейнер: IP-адреса серверов Telegram могли измениться с момента запуска контейнераbash
docker restart mtproto-proxy
Контейнер сразу завершается
Проверьте логи контейнера на наличие ошибок:
docker logs mtproto-proxyЧастые причины:
- Порт 443 уже занят другим сервисом (например, Nginx, Apache)
- Docker-том повреждён - попробуйте удалить его и начать заново:bash
docker rm -f mtproto-proxy docker volume rm proxy-config # Затем снова выполните команду docker run
Заключение
Развёртывание MTProto прокси с Docker - это очень даже простой процесс. Одна команда - и у вас уже есть полноценный, рабочий прокси сервер. Не забывайте перезапускать контейнер раз в сутки и поддерживать систему в актуальном состоянии для надёжной работы.
Если у вас возникнут вопросы, вы всегда можете обратиться в нашу службу поддержки.