Один прокси — один аккаунт: почему «интернет есть» не значит «Telegram пускает»

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

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

Почему один адрес на несколько аккаунтов — плохая идея

Обычный довод звучит так: «за одним IP сидит целое кафе, площадка не может банить за это». Верно. Но у общего адреса есть три следствия, которые бьют независимо от того, банят за него или нет.

  1. Аккаунты становятся связаны. Если один из них поймает ограничение, соседи по адресу — очевидные кандидаты в его компанию. Вы сами создали признак, по которому вас можно сгруппировать.
  2. Диагностика перестаёт работать. Адрес отвалился — легли сразу несколько аккаунтов. Вы видите массовый отказ и думаете про блокировку, а причина одна и техническая.
  3. Нагрузка складывается. Пять аккаунтов за одним адресом дают в пять раз более плотный поток запросов с него, чем один. Именно это, а не сам факт общего IP, выглядит ненормально.

Отсюда правило, которое мы держим в интерфейсе: прокси, назначенный аккаунту, помечается занятым. Не «нельзя технически», а «видно сразу»: свободные адреса отделены от занятых, и раздать один и тот же адрес двоим по невнимательности не выйдет.

«Интернет есть» — это не «Telegram пускает»

Здесь начинается самое неприятное, и мы скажем это про собственную кнопку.

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

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

Разница между двумя проверками бывает драматической: адрес прекрасно открывает сайты и при этом не пропускает подключение к Telegram — потому что диапазон известен площадке, потому что провайдер режет протокол, потому что адрес уже «наследил» чужими аккаунтами.

Что с этим делать практически: считайте зелёную галочку в любом кабинете (включая наш) проверкой связи, а не пропуском в Telegram. Единственный настоящий тест — подключить через этот адрес аккаунт и посмотреть, поднялась ли сессия. Поэтому первый вход аккаунта через новый прокси — это и есть проверка прокси.

Проверка стареет: результат старше шести часов — не результат

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

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

Это тот же принцип, что и три состояния значения: «проверяли вчера» и «работает» — разные утверждения, и подменять первое вторым нельзя. Ошибка здесь стоит дорого: вы запускаете кампанию, глядя на зелёные галочки недельной давности, и половина флота молча не подключается.

Мёртвый прокси притворяется забаненным аккаунтом

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

Снаружи мёртвый прокси и ограниченный аккаунт выглядят одинаково: сообщения не уходят. Дальше зависит от того, как устроен разбор ошибок. Плохой вариант: несколько неудач подряд — и система вешает на аккаунт ярлык ограничения, хотя аккаунт здоров, а дело в адресе. Хороший: отказ связи пишется в отдельный признак «состояние связи», а на аккаунт не переносится.

Правило, к которому мы пришли и которое стоит применять руками: прежде чем вешать на аккаунт проблему, проверьте сам прокси. Сначала связь, потом сессия, и только потом — выводы про аккаунт.

Есть и обратная ловушка, о которой знают немногие: при мёртвом прокси попытка отправки может провалиться молча, вернув видимость успеха. Тогда система сравнивает «ответ» с прошлым и делает вывод о состоянии аккаунта по данным, которых на самом деле не получала. Мы это ловили у себя — теперь несостоявшийся обмен считается отказом связи, а не диагнозом аккаунту.

Как выбирать адреса под флот

Без рекламы конкретных провайдеров — только то, что видно из эксплуатации.

  • Страна выхода должна соответствовать легенде аккаунта. Номер одной страны, адрес другой, а активность в третьей — это не маскировка, а три несостыковки.
  • Стабильность важнее скорости. Флоту не нужны мегабиты, ему нужно, чтобы адрес не менялся под ним посреди работы: обрыв на середине отправки — это как раз тот случай, когда непонятно, дошло сообщение или нет.
  • Смена адреса под живой сессией — событие, а не мелочь. Аккаунт, который вчера подключался из одного места, а сегодня из другого, выглядит подозрительно ровно так же, как аккаунт со сменившимся устройством.
  • Проверяйте пачкой и регулярно, а не перед запуском. Проверка «на старте кампании» показывает состояние на старте кампании — и ничего не говорит о том, что будет через шесть часов.

Честные границы — про наш продукт

  • Ротации прокси нет. Ни по расписанию, ни по ошибке: если адрес умер, аккаунт сам на другой не переедет — это делается руками.
  • Проверка подтверждает связь, а не доступ в Telegram. Так работает наша кнопка, и мы предпочитаем сказать это прямо, а не рисовать галочку «прокси пригоден».
  • MTProto-прокси не поддерживаются для этих проверок, хотя подсказки в кабинете местами это обещают — расхождение известное.
  • Прокси у нас не отдельный товар и не модуль. Это часть работы с аккаунтами: завести пачкой, проверить, разложить по папкам, увидеть страну и занятость. Продавать это отдельной строкой было бы нечестно.
  • Фоновая перепроверка запускается при открытии списка, а не по расписанию сама по себе. Не открывали экран неделю — никто ничего не перепроверял.

Короткий чек-лист

  1. Один адрес — один аккаунт. Экономия здесь оплачивается потерей диагностики.
  2. Зелёная галочка проверки = «связь есть», а не «Telegram пустит».
  3. Настоящая проверка адреса — поднявшаяся сессия аккаунта через него.
  4. Результат проверки старше нескольких часов считайте неизвестностью, а не результатом.
  5. При массовом отказе первым делом проверяйте адреса, а не аккаунты.
  6. Страна адреса, страна номера и поведение аккаунта должны рассказывать одну историю.

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

Читайте дальше

практика

Заморозка, ограничение и «притормози»

принципы

Проверено, не удалось, не проверялось

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

Прокси — часть работы с аккаунтами

Адреса заводятся пачкой, проверяются кнопкой и раскладываются по папкам — а устаревшая проверка честно перестаёт считаться результатом.