Выбор и проверка

Автопереключение прокси в Telegram: как клиент выбирает следующий

В списке несколько прокси, текущий отвалился — что дальше? Разбираем по исходному коду, как Telegram Desktop и Android выбирают замену.

Содержание 8 разд.

Автопереключение прокси в Telegram работает так: если текущий прокси не даёт подключиться дольше выбранного времени — от 5 до 60 секунд, по умолчанию 10, — клиент проверяет остальные прокси из вашего списка и переходит на тот, что ответил. Дальше платформы расходятся: Telegram Desktop идёт по порядку и начинает с прокси, которые недавно отвечали, а Telegram для Android выбирает прокси с наименьшим пингом. Ниже — подробности по исходному коду обоих клиентов на октябрь 2026 года и что из них следует на практике.

Где включается

Документация Telegram описывает функцию одной фразой: если вы пользуетесь несколькими прокси, можно включить «Auto-Switch Proxies», и клиент подключится к следующему прокси из списка, когда текущий отключится. В приложениях пункт называется так же:

Telegram DesktopTelegram для Android
Пункт«Auto-switch proxies» в окне прокси«Auto-switch proxies» в настройках прокси
Интервалы5, 10, 15, 30, 60 секунд5, 10, 15, 30, 60 секунд
По умолчаниювыключено; интервал 10 секундвыключено; интервал 10 секунд
Условиев списке больше одного проксив списке больше одного прокси

Исходный код клиента для iPhone мы не разбирали, поэтому о нём здесь ничего не утверждаем.

Когда клиент начинает искать замену

Автопереключение реагирует на отсутствие соединения, а не на скорость:

  • Telegram Desktop начинает проверки, когда прокси включён и выбран, функция включена, в списке больше одного прокси и ни один рабочий аккаунт не подключён. Как только хотя бы один аккаунт подключился, проверки останавливаются.
  • Android ждёт, пока клиент провисит в состоянии «Connecting to proxy» выбранное число секунд, и только после этого запускает проверку. Если за это время соединение восстановилось, ничего не происходит.

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

Как выбирает Telegram Desktop

  1. Как только соединение пропало, клиент составляет очередь проверки. Первыми в неё идут прокси, которые недавно успешно отвечали: каждый ответивший прокси поднимается в начало этого списка, и порядок запоминается между запусками. За ними — остальные в том порядке, в каком они стоят в вашем списке. Текущий прокси в очередь не входит.
  2. Проверки запускаются по одной раз в 2 секунды; одновременно идёт не больше 10, и каждая длится не дольше 20 секунд.
  3. Когда истекает выбранный интервал, клиент переключается на первый прокси в очереди, который ответил уже после начала сбоя. Ответы, полученные до сбоя, не учитываются.
  4. Если к этому моменту не ответил никто, клиент продолжает проверять и переключается, как только ответит первый.

WEB-прокси в эту очередь не попадают: Desktop их не проверяет и автоматически на них не переключается.

Как выбирает Android

  1. По истечении интервала клиент проверяет сразу все прокси из списка, кроме тех, что уже проверяются или проверялись меньше двух минут назад.
  2. Когда проверки закончились, он сортирует прокси по пингу и выбирает доступный с наименьшим значением, пропуская текущий.
  3. Выбранный прокси становится текущим, и клиент подключается через него.

Разница с Desktop принципиальная: на Android порядок в списке не важен, решает пинг последней проверки.

Что такое проверка прокси

Проверка — это не «пинг» в сетевом смысле, а настоящее подключение. Telegram Desktop открывает соединение через проверяемый прокси к основному аккаунта и замеряет время ответа: если соединение установилось, прокси считается доступным.

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

Как этим пользоваться

  • Два-три прокси, а не двадцать. Каждый лишний — лишние проверки и ещё один владелец, который увидит ваш адрес.
  • Разные серверы и, по возможности, разные источники. Если все прокси стоят у одного хостера, их могут закрыть одновременно — переключаться будет не на что.
  • В Desktop важен порядок. Самый надёжный прокси поставьте выше: при прочих равных клиент начнёт с него.
  • Интервал под вашу сеть. Короткий — быстрее уходит с упавшего прокси, но может переключаться при кратковременном сбое. Длинный — терпеливее, но дольше висит без связи.
  • Медленный прокси удаляйте сами. Автопереключение его не заметит.

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

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

Как работает автопереключение прокси в Telegram?

Если текущий прокси перестал подключаться и прошло выбранное время — от 5 до 60 секунд, по умолчанию 10, — клиент проверяет остальные прокси из списка и переключается на тот, что ответил. Telegram Desktop выбирает по порядку, начиная с недавно отвечавших, Android — по наименьшему пингу.

Включено ли автопереключение по умолчанию?

Нет. И в Telegram Desktop, и в Telegram для Android функция выключена, пока вы не включите её в настройках прокси. Работает она, только если в списке больше одного прокси.

Переключится ли Telegram, если прокси подключён, но работает медленно?

Нет. Автопереключение срабатывает, когда соединения нет: Desktop — когда ни один аккаунт не подключён, Android — пока клиент висит в состоянии «Connecting to proxy». Медленный, но подключённый прокси останется выбранным.

Выключит ли Telegram прокси, если ни один не работает?

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

Источники

  1. Telegram: прокси — Auto-Switch Proxies
  2. Telegram Desktop: proxy_rotation_manager.cpp — автопереключение
  3. Telegram Desktop: core_settings_proxy.h — интервалы
  4. Telegram Desktop: proxy_check.cpp — как проверяется прокси
  5. Telegram для Android: ProxyRotationController.java
  6. Telegram для Android: SharedConfig.java — настройки прокси