В начале апреля у меня замолчал рабочий чат. Сервер был жив, трафик не кончился, но прокси в Telegram перестал подключаться. Статус висел на «Подключение...», сообщения уходили в никуда, в логах была тишина. Через час выяснилось: то же самое у десятка знакомых с разными серверами, странами и операторами. Слишком много совпадений для версии «прокси сдох».
Я поднял три узла, два протокола и четыре порта. Результат один. Причина оказалась на стороне клиента, а не там, где ее обычно ищут.
Ломались не прокси, а первый пакет в приложении
MTProto-прокси не просто пересылает байты. Он упаковывает трафик так, чтобы снаружи тот выглядел как обычное HTTPS-соединение. В режиме Fake TLS клиент начинает с пакета TLS ClientHello - того же, с которого стартует защищенный сеанс в браузере. Внутри версия протокола, случайные байты, идентификатор сессии, список шифров и набор расширений.
Сетевое оборудование сравнивает отпечаток: длину полей, порядок расширений, набор шифров и мелкие детали, которые у Chrome и Firefox всегда одинаковы. Содержимое ему читать не нужно. Отпечаток не совпал с эталонным - соединение рвут до начала разговора.
В коде Telegram нашлась ошибка. Клиент собирал первый пакет с расхождением в служебных полях - достаточным, чтобы отпечаток перестал походить на браузерный. Прокси работал идеально: он не успевал получить запрос.
Почему сбой заметили не сразу
Отпечаток - статистическая штука. Анализ трафика не ловит каждую аномалию, у него есть пороги и сценарии. Пока клиент собирал пакет с одной ошибкой, часть соединений проходила: зависело от оператора, загрузки узла и конкретной сборки приложения. У кого-то прокси отваливался через минуту, у кого-то держался часами, а кто-то не заметил проблемы.
Дальше сработал снежный ком. Люди меняли прокси, ставили новые, пересылали ссылки и создавали нагрузку на узлы, которые еще держались. Отсюда ощущение, что «все прокси сдохли разом».
iOS отваливался через минуту, Android держался
Сборки клиента отличаются, и ошибка сидела в них по-разному. На Android и десктопе конфигурация с прокси работала: медиа грузились, сообщения уходили. На iOS соединение поднималось, жило тридцать-шестьдесят секунд и рассыпалось. С той же ссылкой и тем же секретом.
Обновление выправило формирование пакета, и iOS ожил. Я поставил новую версию, подключил тот же прокси, который час назад не отвечал, и фотографии начали летать моментально. В настройках ничего не менял.
Первый практический вывод: если прокси в тг недоступен, начинайте с версии приложения в магазине, а не с каталога. Половина «нерабочих» узлов в такие моменты - живой сервер и старый клиент.
Как выглядит недоступный прокси в приложении
Симптомы разные, и по ним можно поставить диагноз. Вот что я видел за последние недели на разных устройствах:
- бесконечное «Подключение...» рядом с названием прокси, трафик не идет совсем;
- соединение поднимается, зеленая точка горит, а сообщения не уходят;
- текст проходит, медиа висит на нуле, кружочки и голосовые не догружаются;
- прокси отваливается каждые тридцать-шестьдесят секунд и поднимается заново;
- приложение пишет, что прокси не отвечает, хотя сервер пингуется с другого устройства.
В логах серверной части типичная картина: клиент подключился и отвалился до завершения рукопожатия. Формулировка client disconnected before handshake почти всегда про клиент, а не про узел.
Пять причин, из-за которых прокси не поднимается после обновления
- Устаревший клиент. Самая частая причина после правок в приложении. Проверяется в один тап.
- Секрет с неподдерживаемым префиксом. Fake TLS и обычный MTProto кодируются по-разному, путаница в префиксе ломает рукопожатие.
- Порт занят или закрыт. Провайдер VPS мог сбросить правила файрвола, а панель управления показывает «все работает».
- Перегруженный узел. Публичные прокси раздают направо-налево, на одном сервере висит тысяча человек, рукопожатие не успевает.
- Локальная сеть. Корпоративный Wi-Fi с инспекцией трафика, гостиничный хотспот с captive portal, мобильный оператор с жестким профилем сети - все это режет соединение до вашего сервера.
Мой порядок проверки: версия клиента, потом сеть (переключиться с Wi-Fi на мобильную), потом секрет и порт. Менять прокси стоит в последнюю очередь. В девяти случаях из десяти до замены дело не доходит.
Настройки, в которых путаются чаще всего
В Telegram на Android: Настройки, Данные и память, Прокси, Добавить прокси. В форме выбираете MTProto, вставляете сервер, порт и секрет. Готовую ссылку от владельца узла можно открыть - приложение само предложит подключиться.
На iOS меню короче: Настройки, Данные и память, Прокси. Кнопка добавления та же. Если ссылка не открывается и приложение не предлагает подключиться, скопируйте ее и отправьте себе в Избранное, а потом нажмите на нее внутри чата. Этот трюк спасает чаще, чем переустановка.
На десктопе: Настройки, Продвинутые, Тип соединения. Там же кнопка добавления прокси вручную. Для браузера прокси настраивается на уровне системы: в Windows - Параметры, Сеть и Интернет, Прокси; в macOS - Системные настройки, Сеть, Дополнительно, Прокси. WhatsApp на Android берет настройки из системы, отдельного поля для прокси в нем нет: только через Wi-Fi, Изменить сеть, Дополнительные параметры, Прокси.
Мелочь, на которой спотыкаются постоянно: после добавления прокси нужно нажать на него в списке и включить переключатель. Само добавление ничего не меняет.
Fake TLS, обычный MTProto и разница в поведении
Архитектурная разница в первом байте разговора. Обычный MTProto-прокси начинает с собственного заголовка: короткий, быстрый, но узнаваемый по структуре. Fake TLS добавляет TLS-обертку: первые байты - ClientHello, а реальные данные едут внутри зашифрованного потока.
Отсюда разные сценарии отказа. Префикс секрета не совпадает с режимом на сервере - рукопожатие не сойдется. Сошлось, но пакет собран с ошибкой - соединение оборвется на стороне сети. Для пользователя это одно и то же «прокси не работает», а чинится по-разному.
В диагностике первым делом смотрите логи сервера. Пусто - проблема до сервера. Есть коннект и обрыв на рукопожатии - проблема в клиенте или секрете. Есть полноценная сессия и обрыв через минуту - смотрите таймауты и стабильность канала до узла.
Таймауты, MTU и скука, которая решает
Есть класс проблем, не связанный с обновлениями, но всплывающий ровно тогда, когда все нервничают. Мобильные сети периодически меняют MTU, крупные пакеты начинают фрагментироваться. Рукопожатие проходит, а первая порция данных застревает. Человек видит «подключено» и пустой чат.
Симптом легко отличить: текст отправляется, медиа нет. Лечится не переустановкой, а сменой сети или переключением режима прокси. Второй вариант той же истории - таймауты. Если узел стоит далеко и пинг гуляет, приложение сдается раньше, чем приходит ответ.
Правило подбора простое: сначала узел в вашей локации, потом уже экзотика. Красивая страна в описании прокси не компенсирует триста миллисекунд задержки, когда вы смотрите кружок.
Логи: три строки, которые всё объясняют
Когда прокси живет на вашем сервере, включите подробное логирование до того, как что-то сломается. Уровень детализации поднимается одной настройкой, перезапуск занимает секунды. Каждая попытка подключения оставляет след.
Читать там особо нечего, но три вещи важны. Есть ли входящее соединение. Доходит ли оно до завершения рукопожатия. И на чьей стороне инициатива разрыва: клиент закрыл сессию или сеть перестала отвечать.
Если в логах нет ни одного нового коннекта, а вы точно жали «подключить», запрос не доходит. Проверяйте порт, файрвол и локальную сеть. Если коннекты есть, но все обрываются на старте, смотрите секрет, режим и версию приложения.
Мифы, которые мешают диагностике
Первый миф: прокси и VPN - одно и то же. Это разные вещи. VPN заворачивает весь трафик устройства, прокси работает на уровне конкретного приложения и протокола. Поэтому браузер может открывать сайты, а мессенджер стоять намертво, и наоборот.
Второй миф: чем больше прокси в списке, тем надежнее. На практике десяток сохраненных ссылок путает. Приложение переключается, вы не понимаете, какой узел активен, половина ссылок давно мертва. Два-три проверенных узла работают лучше двадцати случайных.
Третий миф: бесплатный прокси из открытого чата чем-то отличается от бесплатного прокси из другого открытого чата. Не отличается. Там те же перегруженные серверы и тот же секрет, который знают тысячи людей. Когда узел падает, вы не понимаете: он лег или у вас клиент сломался.
Свой узел на VPS: когда всё под вашим контролем
Если прокси нужен для работы, а не для эксперимента на вечер, свой узел почти всегда выгоднее. Арендуете VPS в нормальной локации, ставите MTProto-прокси в контейнере, открываете один порт, генерируете секрет и раздаете ссылку только своим. На вашем канале не сидит тысяча человек, секрет не гуляет по чатам.
Технически важно немногое. Порт лучше брать 443: он почти всегда открыт, включая корпоративные сети. Для Fake TLS нужен домен, который резолвится на ваш сервер, и валидный сертификат: тогда рукопожатие выглядит как визит на обычный сайт. Логи держите включенными, они бесплатно показывают, где рвется соединение.
Публичный Wi-Fi в аэропорту или кафе - отдельная история. Там нет вашего сервера, но есть чужая сеть, и трафик через собственный узел закрывает вопрос целиком. Заодно снимается возня с captive portal: пока вы проходите авторизацию на странице хотспота, туннель уже поднят.
Корпоративный узел и общая ссылка для команды
Для команды из десяти-двадцати человек схема та же, только с оговорками. Один узел, один секрет, ссылка в закрытом канале. Раз в пару месяцев секрет меняется, ссылка рассылается заново. Так вы не окажетесь в ситуации, когда ваш прокси подключен к сотне чужих устройств и падает от нагрузки.
Второй момент - распределение. Если людей много, один сервер начнет задыхаться на медиа. Два узла в разных локациях и ручное переключение решают проблему быстрее, чем апгрейд тарифа.
Готовый прокси из каталога: на что смотреть
Свой VPS - это время на настройку и деньги на аренду. Когда нужно быстро и без возни, проще взять готовый прокси в каталоге. Я пользуюсь каталогом прокси 3seller: там есть фильтры по стране, протоколу и типу, видно скорость и загрузку узла, а тестовый период позволяет проверить сервер на своем операторе до оплаты.

Что смотреть при выборе, если вы попали в историю с недоступным прокси. Первое - поддержка Fake TLS и понятная маркировка режима, чтобы не путать префиксы. Второе - порт 443 в списке доступных. Третье - свежесть узла: сервер, который живет месяц и не светился в открытых чатах, стабильнее раскрученного публичного. Четвертое - локация рядом с вами: задержка на медиа чувствуется сразу.
Каталог удобен еще и тем, что можно взять несколько узлов и держать их про запас. Когда что-то ломается на стороне клиента или оператора, вы переключаетесь на второй прокси и продолжаете работать, а не читаете форумы.
Что делать прямо сейчас
Обновите приложение из магазина и перезапустите его. Если не помогло, переустановите: часть настроек соединения кэшируется, и старая конфигурация тянется за вами. Дальше поменяйте порт в настройках прокси, это бесплатно и занимает полминуты.
Если не помогло и это, переключитесь с Wi-Fi на мобильную сеть. Так вы за один шаг отделите проблему своего узла от проблемы локальной сети. Проверьте прокси на втором устройстве: если на планшете он работает, а на телефоне нет, дело точно не в сервере.
Держите под рукой запасной узел из каталога прокси. Один рабочий прокси - отсутствие выбора. Два - спокойствие.