Автопереключение прокси в Telegram: как клиент выбирает следующий
В списке несколько прокси, текущий отвалился — что дальше? Разбираем по исходному коду, как Telegram Desktop и Android выбирают замену.
Содержание
Автопереключение прокси в Telegram работает так: если текущий прокси не даёт подключиться дольше выбранного времени — от 5 до 60 секунд, по умолчанию 10, — клиент проверяет остальные прокси из вашего списка и переходит на тот, что ответил. Дальше платформы расходятся: Telegram Desktop идёт по порядку и начинает с прокси, которые недавно отвечали, а Telegram для Android выбирает прокси с наименьшим пингом. Ниже — подробности по исходному коду обоих клиентов на октябрь 2026 года и что из них следует на практике.
Где включается
Документация Telegram описывает функцию одной фразой: если вы пользуетесь несколькими прокси, можно включить «Auto-Switch Proxies», и клиент подключится к следующему прокси из списка, когда текущий отключится. В приложениях пункт называется так же:
| Telegram Desktop | Telegram для 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
- Как только соединение пропало, клиент составляет очередь проверки. Первыми в неё идут прокси, которые недавно успешно отвечали: каждый ответивший прокси поднимается в начало этого списка, и порядок запоминается между запусками. За ними — остальные в том порядке, в каком они стоят в вашем списке. Текущий прокси в очередь не входит.
- Проверки запускаются по одной раз в 2 секунды; одновременно идёт не больше 10, и каждая длится не дольше 20 секунд.
- Когда истекает выбранный интервал, клиент переключается на первый прокси в очереди, который ответил уже после начала сбоя. Ответы, полученные до сбоя, не учитываются.
- Если к этому моменту не ответил никто, клиент продолжает проверять и переключается, как только ответит первый.
WEB-прокси в эту очередь не попадают: Desktop их не проверяет и автоматически на них не переключается.
Как выбирает Android
- По истечении интервала клиент проверяет сразу все прокси из списка, кроме тех, что уже проверяются или проверялись меньше двух минут назад.
- Когда проверки закончились, он сортирует прокси по пингу и выбирает доступный с наименьшим значением, пропуская текущий.
- Выбранный прокси становится текущим, и клиент подключается через него.
Разница с 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 прокси, если ни один не работает?
По исходному коду — нет: функция только выбирает другой прокси из списка. Если не отвечает ни один, клиент остаётся на текущем прокси.
Источники
- Telegram: прокси — Auto-Switch Proxies
- Telegram Desktop: proxy_rotation_manager.cpp — автопереключение
- Telegram Desktop: core_settings_proxy.h — интервалы
- Telegram Desktop: proxy_check.cpp — как проверяется прокси
- Telegram для Android: ProxyRotationController.java
- Telegram для Android: SharedConfig.java — настройки прокси