Вчера вечером открываю Telegram проверить рабочую переписку, а там кружок загрузки. Не грузится ни лента, ни голосовые, ни фотки. Переключился на мобильный интернет, та же история. Через десять минут выяснилось: у половины знакомых то же самое, у второй половины всё летает. Разница одна - у кого настроен прокси, у того работает. У кого нет, тот смотрит на бесконечный спиннер.
Люди пишут «поставьте прокси», но почти никто не объясняет, почему мессенджер, который десять лет летал на любом 3G, вдруг требует дополнительную настройку. Дело не в том, что Telegram стал хуже. Изменилось на стороне сети, и ещё критично, как приложение формирует первый пакет соединения.
Разберу по слоям: что происходит в первые 200 миллисекунд, почему на Android и десктопе помогало одно, а на iOS другое, что такое MTProto и как выбрать прокси, который не отвалится через час.
Первый пакет решает всё
Когда вы открываете Telegram, приложение не начинает с отправки сообщений. Сначала оно устанавливает защищённое соединение с сервером. Самый первый пакет, который уходит в сеть, называется TLS ClientHello. Это «паспорт» клиента: версия протокола, поддерживаемые шифры, случайные данные для ключей, расширения. По этому пакету удалённая сторона понимает, кто к ней пришёл и на каком языке говорить.
В определённой сборке Telegram этот первый пакет формировался с ошибкой. Некритичной для самого TLS: соединение бы всё равно установилось. Но для анализатора трафика, который смотрит на паттерны, пакет выглядел странно. Как человек в костюме, который заходит в офис и вместо «здравствуйте» говорит «здрасьте» с акцентом. Формально всё правильно, а внимание уже привлекло.
Дальше срабатывает оборудование на стороне оператора, обученное на нормальных TLS-хендшейках. Оно видит отклонение от шаблона и сбрасывает соединение. Приложение пытается ещё раз, получает тот же результат через пару секунд, и в интерфейсе появляется «соединение с сервером...», которое никогда не заканчивается.
Поэтому проблема была не у всех и не всегда. Паттерны обновляются волнами, регионы попадают под них в разное время, у кого-то маршрут идёт через другой узел. Утром 10 апреля, по данным проекта OONI, который мониторит доступность сервисов, количество аномалий подскочило так, что доступность Telegram просела до 5-6%. Днём ранее было больше 25%. Вот вам и разница между «работает» и «не работает».
Что именно ломается в TLS ClientHello
Технически всё просто. В нормальном хендшейке ClientHello содержит набор расширений в определённом порядке: server_name, supported_groups, signature_algorithms, ALPN и так далее. Если порядок нарушен или расширение сформировано не по спецификации, получается уникальный отпечаток. Такие отпечатки собираются в базу и используются для классификации трафика.
Проблема Telegram была не в шифровании. Шифрование нормальное, MTProto своё дело знает. Проблема была в обёртке, в слое, который отвечает за установку соединения с прокси. Приложение ошибалось при формировании первого пакета именно в сценарии подключения через прокси-сервер. Без прокси соединение шло по другому маршруту и могло работать, а с прокси ломалось.
Звучит парадоксально: люди ставили прокси, чтобы стало лучше, а становилось хуже. Отсюда волна жалоб в трекерах: «подключил, часть фото грузит, видео только первые 3-5 секунд и всё». Прокси не виноват. Приложение на своей стороне отправляло кривой первый пакет, прокси его честно передавал, а узел на маршруте сбрасывал.
iOS отваливался через минуту, и это был баг, а не фича
Отдельная история с айфонами. На Android и на десктопе MTProto-прокси после настройки в основном подхватывались и держались. На iOS было два сценария: прокси вообще не подключался или подключался и отваливался через минуту. Пользователи меняли серверы, писали в поддержку, а проблема была в клиенте.
Обновление, которое вышло 10 апреля, это починило. После установки новой версии я подключил тот же прокси, который до этого отваливался, и всё поехало: медиа грузятся мгновенно, сообщения улетают без задержек, кружочки записываются. Если у вас iPhone и прокси не держится, первое действие - не искать новый сервер, а обновить приложение. Звучит банально, но половина знакомых сидела на старой сборке и ругала провайдера.
На Reddit в тредах по Telegram пользователи отмечали неочевидный нюанс. Если ссылка на прокси открывает Telegram, но диалог подключения не появляется, помогает простой трюк: скопировать ссылку, отправить её себе в «Избранное» и нажать уже оттуда. Тогда диалог подключения появляется корректно. Мелочь, но экономит полчаса переустановок.
MTProto устроен иначе, чем VPN
Тут многие путаются, поэтому объясню разницу на уровне архитектуры. VPN заворачивает весь трафик устройства в туннель: браузер, банк, YouTube, Telegram, всё идёт через один интерфейс. Это удобно, но тяжело: каждый пакет проходит дополнительный шифр и дополнительный хоп, пинг растёт, батарея садится.
MTProto-прокси работает точечно. Он не трогает остальной трафик, а перенаправляет соединения самого Telegram через промежуточный узел. Приложение отправляет пакеты на прокси-сервер, тот распаковывает внутренний протокол и передаёт дальше на серверы мессенджера. Для оператора это выглядит как обычное TLS-соединение к домену. Для вас это означает, что пинг остаётся низким, а батарея не страдает.
Есть и минус: MTProto-прокси видит метаданные ваших соединений. Не содержимое переписки, оно шифруется сквозным образом, а факт подключения, время, объём трафика. Поэтому доверять первому попавшемуся серверу из публичного чата я бы не стал. Ниже объясню, почему.
Цифры, которые объясняют всё: 5-6% доступности
Когда я вижу в мониторинге падение доступности сервиса до 5-6%, я понимаю: это не «медленно работает», а «практически не работает». Разница принципиальная. При 25% ещё можно поймать окно и отправить сообщение. При 5% вы тратите десять попыток и всё равно остаётесь с кружком загрузки.
Причина обвала в том, что сбои шли не по IP-адресам серверов, а по паттернам трафика. Адреса меняются, серверы добавляются, а паттерн хендшейка остаётся одним и тем же, пока клиент его не исправит. Поэтому обновление приложения оказалось важнее, чем смена сотни прокси-серверов.
Для бизнеса это означает простую вещь: если у вас поддержка клиентов в Telegram, каналы продаж, боты для заказов, нужен не один прокси на удачу, а пул узлов с автоматическим переключением. Иначе в момент очередной волны изменений вы теряете канал целиком.
Куда нажимать в Telegram, чтобы подключить прокси
Интерфейс у всех версий примерно одинаковый, разберу по шагам. Открываете Telegram, идёте в «Настройки», дальше «Данные и память». Прокручиваете вниз до раздела «Прокси» и нажимаете «Добавить прокси». Там выбираете тип: MTProto или SOCKS5, вводите адрес сервера, порт и, если нужно, логин с паролем. Сохраняете, включаете переключатель «Использовать прокси».
Дальше самое важное, о чём многие забывают. В том же разделе есть настройка «Время ожидания до подключения к ближайшему активному прокси». По умолчанию там стоит значение, которое при нестабильной сети приводит к долгим паузам. Я ставлю 3-5 секунд. Если текущий узел не отвечает, приложение быстро перескакивает на следующий.
И третье: добавляйте не один прокси, а десяток. В том же меню можно включить автопереключение, и тогда Telegram сам будет выбирать рабочий узел по пингу и доступности. Один отвалился, второй подхватился, вы даже не заметите. Ради этого стоит один раз потратить двадцать минут.

Автопереключение спасает, но не так, как кажется
Многие думают, что автопереключение - магия, которая найдёт рабочий сервер из воздуха. Нет. Оно переключается только между узлами, которые вы сами добавили. Если в списке один мёртвый прокси и один полумёртвый, автопереключение будет метаться между ними и показывать вечную загрузку.
Второй нюанс: автопереключение ориентируется на пинг и доступность, но не на пропускную способность. Узел может отвечать за 30 миллисекунд и при этом резать скорость до 200 килобит в секунду. Формально он активен, фактически видео вы не посмотрите. Поэтому в пуле должны быть узлы из разных мест, с разными каналами и с запасом по скорости.
Третий нюанс касается стабильности. Публичные прокси живут недолго. Их выкладывают в чаты, через час ими пользуются тысячи людей, канал забивается, владелец узла его выключает или он падает под нагрузкой. Если вы собираете пул из случайных ссылок, вы собираете пул из узлов с предсказуемо короткой жизнью.
Почему бесплатные публичные прокси умирают за час
Простая арифметика. Прокси-сервер - это железо и канал. Железо стоит денег, канал стоит денег, администрирование стоит времени. Человек, который выкладывает узел бесплатно и публично, либо делает это из энтузиазма, либо решает свою задачу. В обоих случаях у него нет причин держать канал на тысячу пользователей.
Дальше включается эффект толпы. Ссылка попадает в чат на десять тысяч человек, сервер получает нагрузку в сотни раз выше расчётной, отваливается по таймаутам, владелец его гасит. Через сутки ссылка мертва. Вы добавляете новую, история повторяется. В итоге вы тратите время на поиск вместо того, чтобы пользоваться мессенджером.
Отдельная категория рисков: чужой узел видит ваши метаданные. С кем вы переписываетесь, когда, как часто, какие объёмы трафика. Для личной переписки это неприятно, для рабочего аккаунта с клиентами - прямая утечка информации о вашей активности. Я не сторонник паранойи, но отдавать рабочий трафик случайному серверу из чата не стал бы.
Свой узел: когда это единственный разумный вариант
Если Telegram используется для работы, свой VPS с прокси окупается за неделю. Ставится на любой минимальной конфигурации: было бы 512 мегабайт памяти и гигабитный канал. Настройка занимает минут двадцать по инструкции, дальше вы получаете стабильный узел, который не отваливается от чужой нагрузки.
Плюсы очевидны: предсказуемая скорость, стабильный пинг, никто кроме вас не видит метаданные, никто не гасит сервер в разгар рабочего дня. Минусы тоже есть: вы сами отвечаете за доступность, сами обновляете софт, сами следите за лимитами трафика. Если не хотите этим заниматься, нужен готовый сервис с нормальной инфраструктурой, а не случайный узел из чата.
Корпоративный вариант выглядит так: один узел на офис, второй резервный в другом дата-центре, автопереключение на клиентах, мониторинг доступности. Для команды из двадцати человек этого хватает с запасом, а стоимость сопоставима с парой подписок на сервисы, которыми вы всё равно не пользуетесь.
SOCKS5, MTProto, HTTPS: что выбрать под задачу
SOCKS5 - универсальный протокол, он просто передаёт пакеты на уровне сокета и не вникает в содержимое. Хорош тем, что работает не только с Telegram, но и с другими приложениями. Минус в том, что для сетевого оборудования это тоже трафик с характерным паттерном, и он может попадать под внимание. Плюс требует настройки аутентификации, иначе открытый SOCKS5 разберут боты за сутки.
MTProto - родной протокол Telegram, и он даёт лучшую совместимость именно с мессенджером. Пинг ниже, переподключение быстрее, приложение умеет с ним работать из коробки. Если задача ограничивается Telegram, я выбираю MTProto. Если нужен общий канал для нескольких приложений, смотрю в сторону SOCKS5 с нормальной авторизацией.
HTTPS-прокси - вариант для случаев, когда нужно, чтобы трафик выглядел максимально обычно. Он маскируется под обычное веб-соединение, но даёт больше накладных расходов. Для голосовых звонков и видеокружков я бы его не брал, для текста и файлов нормально.
Подключился, но видео не грузится. Что проверить
Первое: обновите приложение. Если вы на iOS и версия старше той, что вышла 10 апреля, половина проблем решится сама. Второе: проверьте порт. В настройках прокси попробуйте сменить порт, иногда конкретный порт режется на маршруте, а соседний проходит нормально.
Третье: переустановите Telegram, если видите в логах сообщения про сброс соединения до завершения хендшейка. Такое бывает после кривых обновлений: кэш остаётся от старой версии и мешает. Четвёртое: попробуйте подключиться по ссылке через «Избранное», как я описал выше. Пятое: если ничего не помогло, проверьте, что в пуле больше одного узла и включено автопереключение.
И ещё: не стоит держать включённым прокси для всего трафика, если в этом нет необходимости. Чем меньше лишних соединений идёт через узел, тем стабильнее работает то, что действительно нужно.
Каталог, где не нужно собирать прокси по чатам
Когда я устал от вечного поиска рабочих ссылок, я перестал делать это вручную. Логика простая: если нужен стабильный канал для работы, бери его там, где за это отвечают. Каталог прокси 3seller устроен именно так: там есть готовые узлы с выбором по протоколу, географии и скорости, а не список ссылок, половина из которых мертва на момент публикации.
Мне в этом каталоге нравится то, что можно сразу набрать пул под автопереключение: разные локации, разные каналы, разная нагрузка. Добавил десяток в Telegram, выставил таймаут 3 секунды, включил переключение и забыл. В момент очередной волны изменений одно соединение отваливается, второе подхватывается, вы даже не замечаете.
Для рабочего аккаунта это критично. Когда переписка с клиентами идёт в трёх чатах одновременно, ты не можешь позволить себе десять минут искать новый сервер. Нужно, чтобы оно просто работало, а техническая часть была решена за тебя. Каталог https://3seller.com/proxy как раз про это: выбрать, подключить, работать.
Что делать прямо сейчас, а не когда снова отвалится
Обновите Telegram на всех устройствах, где он стоит. Зайдите в «Данные и память», проверьте раздел «Прокси», убедитесь, что там не один узел, а хотя бы пять-десять. Выставьте таймаут переключения 3-5 секунд. Включите автопереключение. Если своего узла нет, возьмите пул в каталоге, а не собирайте ссылки по чатам: сэкономленное время дороже.
Дальше просто пользуйтесь. Самое неприятное в этой истории не сама нестабильность, а то, что она всегда приходит в неподходящий момент. Когда канал уже настроен и в нём есть запас, вы просто не замечаете очередную волну. А заметить её можно по одному признаку: у коллег снова кружок загрузки, а у вас сообщения улетают.