Содержание
  1. Сначала о главном: MTProto или SOCKS5
  2. Почему вообще нужен прокси
  3. Что понадобится
  4. Шаг 1. Берём сервер
  5. Шаг 2. Ставим прокси
  6. Шаг 3. Получаем ссылку для подключения
  7. Шаг 4. Подключаем в приложении
  8. Шаг 5. Проверяем, что всё получилось
  9. Если не подключается
  10. Официальная программа Telegram: почему мы выбрали не её
  11. Сколько это стоит и сколько тянет
  12. Когда своего MTProto-прокси мало
  13. Частые вопросы
  14. Коротко

Бесплатные списки прокси для Telegram живут часами. Вы находите свежий сервер, вставляете, день он работает — а завтра значок в углу горит красным, и вы снова идёте искать. Причина простая: такой прокси делят тысячи людей, его быстро находят и блокируют.

Свой прокси для телеграм решает это раз и навсегда. Он стоит дешевле чашки кофе в месяц, про него не знает никто кроме вас, и падать ему незачем. Как поднять свой прокси для телеграм — разберём ниже по шагам, с реальными командами из официальных репозиториев, а не из гайдов пятилетней давности.

Сначала о главном: MTProto или SOCKS5

Когда ищут прокси для телеграмм, обычно имеют в виду одно из двух, и вещи это разные.

В Telegram два разных пункта меню, и это первое, обо что спотыкаются.

MTProto-проксиSOCKS5-прокси
Что вводятсервер, порт, секретный ключсервер, порт, логин, пароль
Кто его поднимаетотдельная программа на сервереобычный прокси-сервер
Маскировка трафикада, умеет притворяться обычным HTTPSнет, видно что это прокси
Где взятьподнять самому на своём VPSкупить готовый или поднять

MTProto — протокол самого Telegram. Именно его ищут, когда спрашивают «сервер, порт и ключ». Он умеет маскироваться под обычный визит на сайт, поэтому проходит там, где обычный прокси уже не проходит.

SOCKS5 — универсальный прокси, Telegram с ним тоже работает. Его берут, когда адрес нужен не только для Telegram, или когда важно, чтобы IP выглядел как адрес живого человека.

В этой статье поднимаем MTProto — он бесплатен в обслуживании и заточен ровно под Telegram. К SOCKS5 вернёмся в конце: есть задачи, где без него никак.

Почему вообще нужен прокси

Проверим, а не поверим на слово. Вот что отвечает Telegram с сервера в России и с сервера за её пределами — замеры сделаны при подготовке статьи:

Куда стучимсяС российского адресаС зарубежного
api.telegram.orgнет ответа, обрыв через 4 секундыответ за 0,35 секунды
Порты дата-центров Telegramнедоступныоткрыты

Отсюда и спрос на прокси для телеграм: дело не в приложении и не в телефоне — сам канал до серверов Telegram с российских адресов не проходит. Прокси возвращает этот канал — ваш телефон соединяется с арендованным сервером, а тот уже разговаривает с Telegram.

Что понадобится

  • Сервер за пределами России — подойдёт самый дешёвый: 1 ядро, 1 ГБ памяти. MTProto почти не ест ресурсы, он только перекладывает байты.
  • Белый IP без NAT — адрес должен быть ваш, а не общий на сотню клиентов.
  • Свой домен — любой, даже самый дешёвый. Он нужен для маскировки, и это та часть, которая не укладывается в десять минут: регистрация домена .ru требует паспортных данных, а A-запись расходится по DNS от нескольких минут до суток. Заведите его заранее.
  • Веб-сервер с сертификатом на порту 443 этого домена. Ниже объясняем, зачем он нужен и почему без него прокси выдаёт себя первому же сканеру.
  • Полчаса и умение скопировать команду в терминал. Программировать не нужно: сами команды прокси занимают минут десять, остальное время уходит на домен и сертификат.

Шаг 1. Берём сервер

Мы арендуем серверы у Aeza: есть европейские локации, оплата российской картой и почасовая тарификация — если передумаете, эксперимент обойдётся в копейки. Ссылка партнёрская, цена по ней для вас та же. Конкретные тарифы не привожу: они меняются чаще, чем обновляются статьи.

При заказе выбирайте Ubuntu 22.04 или 24.04 — дальше всё рассчитано на них. После оплаты придут адрес сервера и пароль root. Подключаемся (адрес в примерах вымышленный, подставляйте свой):

ssh root@203.0.113.10

С телефона тоже можно — поставьте бесплатный Termius, добавьте хост, введите адрес и пароль. Всё, что ниже, работает и оттуда.

Шаг 2. Ставим прокси

Мы пойдём через mtg — это современная реализация MTProto-прокси. Почему не официальная программа Telegram, объясню чуть ниже: там есть неприятная деталь, о которой большинство гайдов молчит.

Дальше восемь пунктов по порядку. Выполняйте подряд, не перескакивая: каждый следующий опирается на предыдущий. Почему сделано именно так — сразу после инструкции, в четырёх подразделах.

1. Заведите домен и направьте его на сервер. Подойдёт любой, даже самый дешёвый. В панели управления доменом у регистратора найдите раздел DNS-записей и создайте запись типа A: имя — @ (или пустое: это и означает сам домен), значение — IP вашего сервера. Почему домен обязан быть своим, объясняем ниже: без этого прокси не заработает через мобильный интернет.

2. Дождитесь, пока домен начнёт резолвиться. После добавления A-записи DNS расходится от нескольких минут до суток. Проверяйте так:

getent ahostsv4 ваш-домен.ru

В ответе должен быть IP вашего сервера — он повторится трижды, строками STREAM, DGRAM и RAW, так и должно быть. Если записи ещё нет, команда не выведет ничего. Пока IP не появился, дальше идти нельзя: следующие пункты без резолва не выполнятся. getent есть в любой системе, доставлять ничего не нужно. Берём именно ahostsv4, а не getent hosts: второй при наличии у домена IPv6-записи покажет только её, и вы не увидите свой адрес. И про IPv6: если у домена есть запись AAAA, она должна указывать на адрес, по которому отвечает ваш веб-сервер из пункта 4. Если у сервера IPv6 нет вовсе, такой записи у домена быть не должно — иначе на неё может споткнуться выпуск сертификата.

3. Поставьте Docker.

apt update && apt install -y docker.io

4. Поднимите веб-сервер на 443 и выпустите сертификат. Это и есть прикрытие: именно он будет отвечать любопытным вместо прокси. Сначала откройте в файрволе порты сайта — certbot проверяет владение доменом запросом на порт 80, и при включённом файрволе выпуск сертификата оборвётся с ошибкой Timeout during connect:

ufw allow 80,443/tcp

Если в ответ вы видите command not found, файрвол просто не установлен — пропустите эту строку и идите дальше. Теперь сам веб-сервер и сертификат, две команды и бесплатно:

apt install -y nginx certbot python3-certbot-nginx
certbot --nginx -d ваш-домен.ru

Certbot спросит почту и согласие с условиями, остальное сделает сам. Если на этом сервере уже есть ваш сайт и порт 443 занят им — ничего не ставьте, сертификат у вас уже есть, переходите к пункту 5.

5. Проверьте прикрытие. На 443 вашего домена должен отвечать веб-сервер с TLS 1.3. Маскировка имитирует именно современное рукопожатие TLS 1.3. Если сайт-прикрытие отвечает по устаревшему TLS 1.2, расхождение видно при первой же сверке: на один и тот же запрос ваш прокси отвечает по-новому, а сайт — по-старому. Проверяется одной командой:

openssl s_client -tls1_3 -connect ваш-домен.ru:443 </dev/null

Рукопожатие прошло — домен годится. Ошибка вида alert number 70 означает, что TLS 1.3 сайт не умеет, и такой домен для маскировки брать нельзя. Признак успеха — строка New, TLSv1.3, Cipher is … в выводе; свежий nginx с сертификатом Let's Encrypt эту проверку проходит, мы проверили на своём. А вот совет «возьмите домен своего хостера», который встречается в инструкциях, работает не всегда: сайты aeza.ru и selectel.ru на эту же команду отвечают alert number 70, то есть TLS 1.3 у них нет. Поэтому проверяйте, а не берите на веру.

Если вместо этого видите Connection refused или команда молчит до таймаута — на 443 никто не отвечает, то есть пункт 4 не выполнен или nginx не поднялся. Смотрите systemctl status nginx.

6. Сгенерируйте ключ. Подставьте свой домен вместо ваш-домен.ru: mtg не проверяет, что вы написали, и с текстом-заглушкой честно выдаст нерабочий ключ.

docker run --rm nineseconds/mtg:2 generate-secret ваш-домен.ru

В ответ придёт длинная строка вида 7pwQ0L3T9UR8CUt_dfgzLv9leGFtcGxlLmNvbQ. Это и есть ваш ключ — скопируйте его, он понадобится дважды. Внутри ключа зашит сам домен маскировки, поэтому у вас строка будет другой длины, если домен вы выбрали другой: так и должно быть.

7. Запустите прокси. Подставьте свой ключ вместо ВАШ_КЛЮЧ:

docker run -d --name mtg-proxy --restart=unless-stopped -p 2053:3128 nineseconds/mtg:2 simple-run 0.0.0.0:3128 ВАШ_КЛЮЧ

8. Разрешите порт в файрволе — на всякий случай. Как и в пункте 4: нет команды ufw — нет и файрвола, пункт пропускаем.

ufw allow 2053/tcp

Оговорка, которой обычно не пишут: с запуском через Docker эта команда ничего не меняет. Docker публикует порт своими правилами, которые стоят в цепочке раньше правил ufw, поэтому 2053 будет открыт снаружи даже при включённом файрволе. Команда нужна на случай, если вы поставите прокси без Docker — например официальную программу Telegram из раздела ниже: там порт закрыт, пока его не открыть. А вот внешний файрвол в панели хостера Docker обойти не может: если прокси не отвечает снаружи, смотрите в первую очередь там.

Всё, прокси работает: что контейнер жив, видно по docker ps, а полную проверку с телефона сделаем в Шаге 5.

Почему домен маскировки должен быть вашим

Не google.com, не www.microsoft.com — а домен, который направлен A-записью на этот же сервер. Авторы mtg формулируют это мягче: «спрячьтесь за доменом, который имеет какое-то отношение к этому IP-адресу», и приводят в пример домен хостера. Мы пошли дальше и взяли собственный домен — вот что нас к этому привело.

Мы подняли два прокси рядом на одном сервере: один с доменом www.microsoft.com на порту 8443, второй со своим доменом на порту 2053. Через домашний Wi-Fi заработали оба. Через мобильный интернет — только свой. Оговорим честно: в этом опыте менялись сразу две вещи — домен и порт, — так что вклад каждой мы не разделили: возможно, оператор не любит и сам порт 8443. И проверяли мы на одном операторе, про остальных не знаем. Но направление понятное: с чужим доменом соединение рвётся на рукопожатии, и объяснение простое — имя из запроса не совпадает с владельцем адреса: сети Microsoft принадлежат Microsoft, а ваш сервер стоит у хостера.

Это не единичный случай. 30 июля 2026 года мы ловили похожее на другом протоколе, VLESS с REALITY: с доменом www.microsoft.com тот же мобильный оператор дал 850 обрывов подряд и ни одного успешного соединения — в логе failed to read client hello, то есть рукопожатие до сервера не доходило. Со своим доменом запрос доходил, хотя соединение в тот раз всё равно не установилось, по другой причине. Так что июльский случай — не доказательство, а второй похожий симптом: смена домена меняла поведение сети.

Почему не 443, а отдельный порт

Порт 443 — порт обычных сайтов, и соблазн посадить прокси прямо на него велик: трафик к 443 выглядит как открытая веб-страница и проходит почти в любой сети. Но именно этого делать нельзя, и вот почему. Домен маскировки указывает A-записью на ваш же сервер, а mtg устроен так: когда на его порт приходит не телеграмовское соединение (сканер, браузер, проверяющий робот), он молча пробрасывает это соединение на 443 домена из ключа — чтобы гость увидел настоящий сайт. Если mtg сам занимает 443, он пробрасывает соединение себе же, потом ещё раз, и так по кругу.

Мы это проверили, а не предположили. Один запрос браузером по такой схеме породил 10 338 соединений сервера с самим собой и завис без ответа. Правильно настроенная схема на том же сервере ответила настоящей страницей за 0,03 секунды. То есть петля не просто ломает легенду — она даёт любому сканеру способ положить ваш сервер одним обращением.

Поэтому раскладка такая: на 443 стоит веб-сервер с сертификатом вашего домена, а mtg слушает отдельный порт. Берите не экзотику вроде 8888, а порт, привычный для HTTPS: у нас работает 2053 — он из списка портов, на которых HTTPS раздаёт Cloudflare, и сети его пропускают. Проверено и на домашнем Wi-Fi, и на мобильном интернете.

В команде выше -p 2053:3128 как раз и означает: снаружи слушаем 2053, внутри контейнера — 3128. Порт 443 при этом занят вашим веб-сервером — он и служит прикрытием.

Что за «маскировка под сайт»

Ключ, который вы сгенерировали, содержит в себе имя сайта: в примере выше это домен, который A-записью направлен на сервер с прокси. Благодаря этому соединение с вашим прокси со стороны выглядит как обычный визит на этот сайт. Такой режим называют Fake TLS, и именно он позволяет прокси жить долго.

У mtg есть и вторая линия обороны — режим «двойника», когда прокси имитирует поведение настоящего сайта, включая задержки ответов. В простом запуске, который мы сделали выше, он работает на заранее собранной статистике; чтобы подстроить его именно под ваш домен, понадобится файл конфигурации. Для начала это излишне, но знайте, что запас прочности есть.

Ключ — это пароль, относитесь к нему так же

Кому дали ключ, тот и пользуется прокси. Не публикуйте его в открытых чатах и на форумах: как только он попадёт в публичный список, ваш личный прокси станет общим и повторит судьбу бесплатных. Нужно дать доступ близким — сделайте им отдельные ключи.

Шаг 3. Получаем ссылку для подключения

Собираем ссылку по официальному образцу Telegram — подставьте адрес сервера и свой ключ:

tg://proxy?server=203.0.113.10&port=2053&secret=ВАШ_КЛЮЧ

Та же ссылка в виде обычной веб-ссылки, которую удобно отправить себе в «Избранное»:

https://t.me/proxy?server=203.0.113.10&port=2053&secret=ВАШ_КЛЮЧ

Самый быстрый способ подключиться — отправить эту ссылку себе в Telegram и нажать на неё. Приложение само откроет окно с предложением включить прокси, ничего вводить вручную не придётся.

Шаг 4. Подключаем в приложении

Если ссылка по какой-то причине не сработала, добавьте прокси руками. Пути отличаются по платформам.

Android

Настройки → Данные и памятьНастройки проксиДобавить прокси → выберите MTProto. Заполните три поля: сервер, порт, ключ. Логин и пароль здесь не нужны — их у MTProto нет вовсе. Сохраните и включите переключатель.

iPhone

Настройки → Данные и памятьПроксиДобавить проксиMTProto. Те же три поля. После сохранения проверьте, что новый прокси отмечен галочкой.

Компьютер

Меню → Настройки → Продвинутые настройкиТип соединенияИспользовать пользовательский проксиMTProto. Вводим сервер, порт и ключ.

Веб-версия

В браузерной версии Telegram настроек прокси нет. Там либо открывайте сайт через VPN, либо пользуйтесь приложением.

Шаг 5. Проверяем, что всё получилось

Три проверки по возрастанию надёжности.

Значок в приложении. Рядом со строкой поиска появится иконка прокси. Горит ровно — соединение есть, горит красным или крутится — не подключилось.

Порт снаружи. С любого другого компьютера проверьте, что сервер виден:

curl -sv -m 5 telnet://203.0.113.10:2053

В ответе должно быть Connected to — значит порт открыт и снаружи виден. Ключ -m 5 здесь обязателен: без него curl после соединения будет ждать ввода, и команда повиснет. Если вместо Connected to вы видите таймаут, порт закрыт файрволом — смотрите следующий раздел.

Логи прокси. Показывают, идут ли к вам подключения:

docker logs --tail 20 mtg-proxy

Если не подключается

  • Порт закрыт внешним файрволом хостера. Самая частая причина. Ищите в панели управления сервером раздел с сетевыми правилами и разрешите ваш порт. Файрвол самого сервера при запуске через Docker порт не закрывает (Docker его публикует в обход ufw), а вот панель хостера — закрывает.
  • Указали внутренний адрес вместо внешнего. В ссылке должен быть тот IP, который вам выдал хостер, а не 172.17.0.2 из контейнера.
  • На Wi-Fi работает, через мобильный интернет нет. Первым делом проверьте домен маскировки: он должен быть вашим и указывать A-записью на этот сервер. Перевыпустите ключ со своим доменом и пересоберите ссылку — старая перестанет работать, это нормально. Если не помогло, попробуйте другой порт из тех, что использует для HTTPS Cloudflare: 2083, 2087, 2096. В нашем опыте домен и порт менялись одновременно, так что вклад порта мы не отделили.
  • Домен ещё не резолвится. После добавления A-записи DNS расходится от нескольких минут до суток. Проверьте getent ahostsv4 ваш-домен.ru — в ответе должен быть IP вашего сервера.
  • Ключ скопирован не целиком. Он длинный, при копировании из терминала легко потерять хвост. Сверьте начало и конец.
  • Контейнер не запустился. Проверьте: docker ps. Если в списке пусто, смотрите причину в docker logs mtg-proxy.
  • Сервер перезагрузился, прокси не поднялся. Флаг --restart=unless-stopped в команде запуска как раз от этого и страхует — убедитесь, что вы его не потеряли.
  • Телефон пишет «прокси недоступен», хотя прокси исправен. Самый обидный случай: сервер отвечает, пароль принимает, а приложение всё равно показывает ошибку. Проверить, кто виноват, можно за минуту — и без всякого сервера. Включите тот же прокси в браузере на компьютере (в Firefox это делают расширением FoxyProxy: тип SOCKS5, ваш адрес, порт, логин и пароль) и откройте любой сайт, показывающий ваш IP, например api.ipify.org. Если там виден адрес вашего сервера, а с выключенным прокси — ваш обычный, значит прокси полностью рабочий, и дело в приложении. Тогда в Telegram удалите запись прокси и добавьте заново по ссылке из Шага 3, не вводя поля руками, и убедитесь, что она отмечена как активная. Если и это не помогает, пользуйтесь MTProto: он для Telegram и надёжнее, и незаметнее.

Официальная программа Telegram: почему мы выбрали не её

У Telegram есть собственная реализация MTProxy, и многие инструкции советуют именно её — а заодно готовый образ telegrammessenger/proxy. Вот деталь, о которой эти инструкции молчат: образ с меткой latest не обновлялся с февраля 2020 года. Проверить легко — дата публикации открыта на Docker Hub. Более свежая сборка там появилась только в апреле 2026 и помечена как бета.

Сам код при этом живой: последние правки в репозитории Telegram датированы августом 2026. Так что вариант рабочий, просто ставить его нужно сборкой из исходников, а не устаревшим образом:

apt install -y git curl build-essential libssl-dev zlib1g-dev xxd
git clone https://github.com/TelegramMessenger/MTProxy
cd MTProxy && make && cd objs/bin

Дальше скачиваем служебные файлы 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

И запускаем:

./mtproto-proxy -u nobody -p 8888 -H 2053 -S ВАШ_КЛЮЧ --aes-pwd proxy-secret proxy-multi.conf -M 1

Обратите внимание на два отличия от рецепта выше. Порт здесь тоже не 443: на 443 у вас стоит веб-сервер-прикрытие. И ключ в этом варианте обычный, без домена внутри — значит маскировки под сайт нет, и через мобильный интернет такой прокси может не подняться.

Работает не хуже, но возни больше: нужно самому написать службу автозапуска и раз в сутки обновлять proxy-multi.conf. Ради экономии времени мы и выбрали контейнер.

Сколько это стоит и сколько тянет

Дешёвого сервера хватает с запасом. MTProto-прокси расходует считанные мегабайты памяти и практически не грузит процессор — вся работа сводится к пересылке байтов. Один такой прокси спокойно обслуживает семью или небольшую команду; упрётесь вы скорее в ширину канала хостера, чем в сам прокси.

Порядок цифр с нашего сервера, где такой прокси работает третью неделю: mtg занимает 17 МБ памяти, а загрузка процессора в момент замера — 0,02 из доступной единицы на ядро. Сервер прокси попросту не замечает.

Когда своего MTProto-прокси мало

Свой прокси отлично решает одну задачу — вернуть себе доступ к Telegram. Но есть сценарии, где он не поможет.

ЗадачаЧто подходитПочему
Вернуть себе Telegramсвой MTProto на VPSдёшево, приватно, полный контроль над ключом
Несколько рабочих аккаунтовмобильный прокси на каждыйобщий адрес связывает аккаунты между собой
Рассылки, продвижение, ботымобильный проксиадрес сервера виден как серверный и быстро попадает под ограничения
Работа с других площадокмобильный или резидентныйтам проверяют не только страну, но и тип адреса

Разница в типе адреса. Адрес арендованного сервера виден площадкам как серверный, и к нему относятся настороженно. Адрес мобильного оператора выглядит как обычный абонент — за ним сидят десятки живых людей, поэтому и доверия к нему больше.

Если задача выходит за рамки «вернуть себе Telegram», посмотрите мобильные прокси — в наличии зарубежные локации, актуальный список стран и городов виден прямо на странице каталога. Нужен адрес, который не делится ни с кем, — есть элитные мобильные. А когда таких адресов нужно много и постоянно, дешевле поставить свою ферму.

Частые вопросы

Зачем свой прокси для телеграмм, если полно бесплатных?

Бесплатный делят тысячи человек: он медленный, его быстро находят и блокируют, а оператор такого прокси видит ваш адрес и объёмы трафика. Свой стоит копейки и принадлежит только вам.

Это законно?

Прокси — обычная сетевая технология, её используют компании для защиты корпоративного трафика. Вы поднимаете сервер для личного доступа к мессенджеру, а не для чего-то запрещённого.

Прокси видит мою переписку?

Нет. Переписка в Telegram шифруется между вашим устройством и серверами Telegram, прокси лишь передаёт запечатанные пакеты. Но это верно для вашего прокси. Чужой бесплатный прокси видит, что вы пользуетесь Telegram, ваш IP и объёмы трафика — и это ещё одна причина поднять свой.

Чем прокси отличается от VPN?

Прокси работает для одного приложения, VPN заворачивает весь трафик устройства. Для Telegram прокси удобнее: остальные приложения продолжают ходить напрямую, скорость не страдает, батарея тоже. Если нужен туннель для всего трафика — у нас есть отдельная инструкция, как поднять свой VPN.

Сколько человек выдержит один прокси?

Небольшую команду — без проблем. Ограничение не в программе, а в канале сервера, поэтому при росте числа пользователей смотрите на тариф хостинга, а не на прокси.

Нужно ли обновлять прокси?

Контейнер обновляется четырьмя командами: скачать свежий образ (docker pull nineseconds/mtg:2), остановить, удалить и запустить заново с тем же ключом. Без docker pull обновления не будет: запуск возьмёт образ из кеша. Делать это часто не нужно — раз в несколько месяцев достаточно.

Почему мой прокси перестал работать?

Проверьте по порядку: жив ли контейнер (docker ps), открыт ли порт, не сменился ли IP сервера, не закончилась ли оплата хостинга. В девяти случаях из десяти дело в одном из этих четырёх пунктов.

Коротко

  • Бесплатные списки живут часами — их делят тысячи людей. Свой прокси для телеграм стоит дешевле чашки кофе и не падает.
  • MTProto и SOCKS5 — разные пункты меню. MTProto нужны сервер, порт и ключ, логина с паролем у него нет.
  • Сам прокси — две команды: сгенерировать ключ и запустить контейнер. Но до них нужен свой домен, направленный A-записью на этот сервер, и веб-сервер с сертификатом на его 443 — именно он служит прикрытием.
  • Прокси ставьте на отдельный порт (у нас 2053), а не на 443: заняв 443, mtg начинает пробрасывать соединения сам себе — мы получили 10 338 соединений с одного запроса.
  • Ключ равносилен паролю. Попал в публичный список — личный прокси стал общим.
  • Не ставьте образ с меткой latest от официальной программы: ему больше пяти лет. Либо свежий контейнер, либо сборка из исходников.
  • Для нескольких аккаунтов свой прокси не подходит — там нужен адрес, похожий на адрес живого абонента.