MTProto-прокси для Telegram на своём VPS
MTProto-прокси работает только для Telegram: его поддержка встроена прямо в приложение, отдельный VPN-клиент не нужен. Добавили ссылку, и Telegram ходит через ваш сервер, а остальной трафик телефона идёт как обычно. Это удобно для родственников, которым сложно объяснить настройку VPN.
Что разрешено на OBLAKO
Свой MTProto-прокси, Reality или другой личный VPN на OBLAKO держать можно, если пользуетесь ими вы и ваши близкие. По правилам запрещено публиковать прокси для всех и продавать к нему доступ. Для FakeTLS и Reality берите свой домен: сервер с сертификатом популярного чужого сайта система OBLAKO выключает автоматически.
В этой инструкции поставим прокси mtg в Docker и замаскируем его под сайт на вашем собственном домене.
Прокси сейчас стал запасным вариантом
С весны 2026 года ТСПУ научились узнавать MTProto-прокси по характерному TLS-рукопожатию самого клиента Telegram, а позже начали анализировать и поведение соединений. После этого массово перестали работать публичные прокси. Свой прокси на малоизвестном адресе держится дольше, но рассчитывать только на него не стоит. Основным каналом лучше сделать VLESS Reality на своём домене, а прокси оставить как резерв. И держите Telegram обновлённым: разработчики меняют отпечаток клиента.
Прокси или VPN
| MTProto-прокси | Свой VPN (VLESS, AmneziaWG) | |
|---|---|---|
| Что проходит через сервер | Только Telegram | Весь трафик устройства или выбранные сайты |
| Нужно ли приложение | Нет, настройка внутри Telegram | Нужен отдельный клиент |
| Звонки в Telegram | Работают не всегда | Работают как обычно |
| Устойчивость к блокировкам в 2026 году | Низкая | Выше, особенно self-steal |
| Сложность для родственников | Открыть ссылку и нажать «Подключить» | Установить клиент и импортировать ключ |
Если нужен только Telegram и важна простота, прокси подходит. Во всех остальных случаях лучше VPN, а прокси пусть остаётся запасным путём на тот же сервер или соседний.
Как устроена маскировка
Современные MTProto-прокси работают в режиме FakeTLS. Начало соединения выглядит как обычное HTTPS-подключение к сайту, имя которого зашито в секрет прокси. Если к серверу подключается не Telegram, а, например, браузер или сканер, mtg пересылает запрос на настоящий сайт с этим именем. Снаружи сервер выглядит как обычный веб-сайт.
Отсюда главное правило: домен в секрете должен быть связан с IP сервера. Если ваш немецкий VPS «притворяется» сайтом российского банка, это сразу бросается в глаза. Лучший вариант это свой домен, который указывает на ваш же сервер и открывает настоящую страницу.
Что понадобится
- VPS с Ubuntu 22.04, 24.04 или Debian 12. Хватит младшего тарифа.
- Свой домен с A-записью на IP сервера. Купить его можно прямо в панели, как выбрать имя, описано в статье Домен для self-steal.
- Сайт на этом домене с сертификатом Let's Encrypt, который слушает
127.0.0.1:8443. Ровно такую настройку дают шаги 1, 2 и 3 статьи про self-steal. - Свободный 443 порт. Если на этом сервере 443 уже занят Xray, поставьте прокси на отдельный сервер: делить один порт между ними неудобно.
Шаг 1. Установите Docker
Подключитесь по SSH и поставьте Docker официальным скриптом:
curl -fsSL https://get.docker.com | shШаг 2. Создайте секрет
Секрет включает в себя случайный ключ и имя вашего домена. Сгенерируйте его прямо из образа mtg, вместо ВАШ_ДОМЕН подставьте свой:
docker run --rm nineseconds/mtg:2 generate-secret --hex ВАШ_ДОМЕНКоманда выведет строку, которая начинается с ee. Сохраните её, это и есть секрет.
Шаг 3. Напишите конфиг
Создайте файл /etc/mtg.toml:
nano /etc/mtg.tomlsecret = "ВАШ_СЕКРЕТ"
bind-to = "0.0.0.0:443"
[domain-fronting]
ip = "127.0.0.1"
port = 8443Обязательны только первые две строки. Блок [domain-fronting] говорит mtg, куда отправлять посторонние подключения: на ваш локальный nginx, а не на внешний адрес домена. Без него mtg попытается достучаться до домена по DNS, попадёт сам на себя и запутается.
Шаг 4. Запустите прокси
Запускаем контейнер в сети хоста, чтобы mtg видел nginx на 127.0.0.1:
docker run -d --name mtg --restart unless-stopped \
--network host \
-v /etc/mtg.toml:/config/config.toml \
nineseconds/mtg:2Если включён UFW, откройте порт: ufw allow 443/tcp.
Проверьте настройку встроенной диагностикой. Она сверит время на сервере, доступ к Telegram и совпадение IP сервера с доменом из секрета:
docker exec mtg /mtg doctor /config/config.tomlШаг 5. Получите ссылку
docker exec mtg /mtg access /config/config.tomlВ ответе будет блок ipv4 с полями tg_url и tme_url. Ссылку tme_url можно открыть на телефоне: Telegram предложит подключить прокси. Вручную прокси добавляется в настройках Telegram, раздел Данные и память, пункт Прокси, тип MTProto.
Проверьте маскировку из браузера: https://ВАШ_ДОМЕН должен открывать ваш сайт с нормальным сертификатом.
Обслуживание
Обновление. Раз в месяц обновляйте образ и пересоздавайте контейнер:
bashdocker pull nineseconds/mtg:2 docker rm -f mtgи повторите команду из шага 4. Секрет и ссылка не меняются.
Логи.
docker logs --tail 50 mtgпокажет ошибки подключения.Если прокси перестал работать у одного оператора, а сайт по домену открывается, скорее всего, сработало распознавание по поведению. Помогает смена IP или переход на VLESS. Проверить, не заблокирован ли адрес целиком, можно по статье Как понять, что IP сервера заблокирован.
Не публикуйте ссылку
Ссылка на прокси даёт доступ любому, у кого она есть. Отдавайте её только своим: себе, семье, коллегам. Публичные прокси, открытые для всех, и продажа доступа запрещены правилами OBLAKO (пункт 3.2 правил допустимого использования). К тому же адрес из публичного канала быстро попадает в списки блокировок, и прокси перестаёт работать у всех, включая вас.