Содержание
- Сначала о главном: MTProto или SOCKS5
- Почему вообще нужен прокси
- Что понадобится
- Шаг 1. Берём сервер
- Шаг 2. Ставим прокси
- Шаг 3. Получаем ссылку для подключения
- Шаг 4. Подключаем в приложении
- Шаг 5. Проверяем, что всё получилось
- Если не подключается
- Официальная программа Telegram: почему мы выбрали не её
- Сколько это стоит и сколько тянет
- Когда своего MTProto-прокси мало
- Частые вопросы
- Коротко
Бесплатные списки прокси для 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 от официальной программы: ему больше пяти лет. Либо свежий контейнер, либо сборка из исходников.
- Для нескольких аккаунтов свой прокси не подходит — там нужен адрес, похожий на адрес живого абонента.