Локально подбирает рабочий IP дата-центра Telegram и прописывает его в hosts для web.telegram.org (и доменов из lists/telegram-hosts-domains.txt). Без своего сервера и без смены системного прокси/VPN.
- 📥 Склонируйте репозиторий или Code → Download ZIP и распакуйте папку.
▶️ Запуститеtelegram-web-fix.bat. Подтвердите UAC («Да») — меню откроется с правами администратора.- 🔢 Обычно:
5(обновить список IP из Telegram), затем4(поиск). Еслиlists/telegram-ip-candidates.txtуже заполнен — можно сразу4. - ✅ Нажмите
1— запись блока вhosts, затемipconfig /flushdns. - 🌐 Откройте web.telegram.org в браузере (нужен WebSocket).
⛔ Выключить fix: 2 в меню (удаляется только блок с маркером # telegram-web-fix).
Браузер сначала узнаёт IP по имени домена. Запись в hosts задаёт свой IP для выбранных имён — трафик к web.telegram.org (и др. из списка) идёт на найденный дата-центр, минуя «битый» адрес из DNS.
| Шаг | Что происходит |
|---|---|
| 5 | Качает официальный cidr.txt, собирает lists/telegram-ip-candidates.txt — пул IPv4 для проверки. |
| 4 | Строит очередь: IP из файла + DNS/DoH, проверяет TCP 443 и TLS (SNI) для web.telegram.org и kws2.web.telegram.org; в cfg попадает только IP с успешным сертификатом. |
| 1 | Вставляет в hosts блок строк IP + домены с маркером, делает бэкап в backup/, сбрасывает DNS-кэш. |
| 2 | Удаляет только наш блок по маркеру, остальной hosts не трогает. |
Никакого удалённого сервера: всё выполняется на вашем ПК, меняется один локальный файл и конфиг рядом с bat.
Иногда DNS отдаёт адрес Telegram, а TCP 443 до него режут. Скрипт проверяет кандидатов по порту 443, опционально TLS (SNI), сохраняет IP в telegram-web-ip.cfg и записывает hosts только для перечисленных доменов. Остальной трафик, Telegram Desktop и настройки сети глобально не меняются (кроме сброса DNS-кэша после применения hosts).
| Условие | Ожидание |
|---|---|
| Режут часть IP DC, другие живы | Часто помогает |
| Режут весь Telegram / по SNI | Нужны VPN и т.п. |
| Нужен только Desktop | Это про веб в браузере |
- Windows 10 / 11
- Запуск от администратора (иначе нельзя править
hosts) - Браузер с WebSocket (Chrome, Edge, Firefox)
| Клавиша | Действие |
|---|---|
| 1 | Включить fix в hosts (нужен IP после 4) |
| 2 | Выключить — убрать только наш блок в hosts |
| 3 | Показать строки про Telegram в hosts |
| 4 | Поиск рабочего IP (:443, очередь из файла + DNS) → telegram-web-ip.cfg |
| 5 | Обновить lists/telegram-ip-candidates.txt с cidr.txt |
| 0 | Выход |
Параметры без меню: telegram-web-fix.bat enable-silent, telegram-web-fix.bat disable-silent.
Переменные окружения (редко нужны): TG_SCAN_PARALLEL (1–32, параллель проверки), TG_SCAN_VERBOSE_LOG=1 — подробный лог в %TEMP%\telegram-web-fix-scan.log, TG_SCAN_PASS2=1 — доп. проверка через Test-NetConnection. TG_POST_TLS_OFF=1 — отключить проверку TLS (не рекомендуется, см. безопасность).
- Меняет только локальный файл
C:\Windows\System32\drivers\etc\hostsна вашем ПК — блок с маркером# telegram-web-fixи фиксированным списком доменов изlists/telegram-hosts-domains.txt. - Не поднимает прокси, VPN, «посредника» и не подменяет сертификаты в браузере.
- Не отправляет трафик автору репозитория и не расшифровывает переписку.
- IP для проверки берутся из официального cidr.txt Telegram; в [4] адрес сохраняется только если TLS-рукопожатие для
web.telegram.orgиkws2.web.telegram.orgпрошло (сертификат проверяется так же, как при обычном HTTPS в браузере).
То есть вы не «подключаетесь к случайному серверу в интернете», а направляете известные домены Telegram на другой IP из пула Telegram, когда обычный DNS отдаёт недоступный адрес.
| Вопрос | Ответ |
|---|---|
| Может ли кто-то с интернета через этот bat подменить ваш трафик? | Нет — удалённо hosts не меняется. |
| Видит ли автор репозитория ваши сообщения? | Нет — нет своего сервера и канала к вам. |
| Подслушивает ли скрипт HTTPS? | Нет — он не встраивается в TLS; браузер сам проверяет сертификат. |
| Может ли провайдер «перекрасть» IP из-за fix? | Не из-за скрипта: вы сами выбираете запись в hosts; провайдер по-прежнему видит соединение к IP Telegram, как без fix. |
Это не «абсолютная защита от всего», а локальный обход DNS/маршрута к DC Telegram:
- Вредонос на ПК (или другой админ) может править
hostsи без этого проекта — это уже компрометация машины. TG_POST_TLS_OFF=1отключает проверку TLS — тогда снова возможен сценарий «порт 443 открыт, веб не тот»; не используйте без веской причины.- Правка bat/ps1 вручную может добавить чужие домены или IP — ставьте проект только из доверенного источника.
- [5] качает
cidr.txtпо HTTPS сcore.telegram.org; при корпоративном MITM прокси теоретически возможна подмена списка (как для любой загрузки). - Защищённый DNS в браузере (DoH) может обходить
hostsдля части запросов — это не взлом, но fix может «не сработать»; см. раздел «Если что-то не так». - Скрипт не обходит полную блокировку Telegram по SNI/DPI — только подбор другого IP из их диапазонов.
- Запускайте
telegram-web-fix.batот администратора (UAC), не копируйте «левые» сборки. - После [1] в меню [3] — убедитесь, что в
hostsодин IP и знакомый маркер. - Для веба: Chrome / Edge / Firefox, по возможности без агрессивных блокировщиков; в Yandex/Chrome отключите «защищённый DNS», если сайт серый/белый.
В проекте нет вирусов, троянов и шпионского ПО. Исходники открыты (MIT): только текстовые .bat / .ps1, списки IP и доменов. Отдельного .exe в репозитории нет — запускается штатный powershell.exe и cmd.exe из Windows.
Чаще всего загружают архив telegram-web-fix.zip (кнопка Code → Download ZIP или файл в релизе на GitHub) — целиком, ~36 KB. У такого ZIP в отчёте может быть метка contains-pe: внутри лежит не «вирус», а DLL для консоли (см. ниже) или срабатывание эвристики на скрипты.
Пример отчёта (цифры со временем меняются): 11 / 63 движков, подпись вроде trojan.misc, Win32:MalwareX-gen [Misc], Mal/Generic-S — это эвристика, не доказанный вредонос. Остальные движки файл не помечают.
Антивирусы не любят типичное поведение «утилиты обхода», даже если она легитимна:
| Поведение | Зачем в проекте |
|---|---|
| Запрос UAC / администратора | Иначе нельзя править hosts |
Запись в C:\Windows\System32\drivers\etc\hosts |
Суть fix |
PowerShell с -ExecutionPolicy Bypass |
Запуск utils\*.ps1 без подписи |
| Скан сотен IP на порт 443 | Пункт [4] |
| Скачивание списка с интернета | Пункт [5] (cidr.txt) |
| Краткий VBS при старте bat | Только окно «Запустить от администратора» |
Для антивируса это похоже на «троян/агент» (generic, misc, Agent) — отсюда ложные срабатывания на чистый архив.
| Файл | Роль |
|---|---|
telegram-web-fix.bat |
Меню, UAC, вызов PowerShell |
utils\tg-hosts.ps1 |
Запись/удаление блока в hosts |
utils\telegram-autodetect.ps1 |
Поиск IP, TCP/TLS |
utils\_twfcon-types.ps1 |
При первом запуске может собрать twf-console-types-v2.dll (в %TEMP% или рядом с utils\) — маленькая DLL только для шрифта консоли, не для сети и не для Telegram |
Если в ZIP попала utils\twf-console-types-v2.dll (собрана у вас после первого запуска), VirusTotal помечает архив как contains-pe — это ожидаемо, не отдельный установщик.
Не путать: проект не подменяет telegram.exe, не ставит расширения в браузер, не шифрует файлы и не отправляет данные на сторонний сервер.
- Предпочтительно: клонировать репозиторий с GitHub и запускать
telegram-web-fix.batиз папки — не сомнительные зеркала. - Прочитать
utils\tg-hosts.ps1иtelegram-web-fix.bat— логика толькоhosts+ проверка IP Telegram. - Добавить папку проекта в исключения Defender/антивируса, если доверяете исходникам.
- На VirusTotal смотреть не только красные строки, но и сколько движков молчат; при сомнении — сравнить SHA-256 своего ZIP с релизом или пересобрать ZIP из git.
Сообщения вроде «Win32:MalwareX-gen», «Trojan.Win32.Agent», «Mal/Generic-S» у части вендоров для таких утилит — типичный false positive. Если нашли реальное вредоносное поведение (сеть не на Telegram, чужие домены в hosts) — откройте Issue с деталями.
| Путь | Назначение |
|---|---|
telegram-web-fix.bat |
Меню, UAC, вызовы PowerShell |
utils/set-console-ttf.ps1 |
Шрифт/размер консоли (UTF-8, рамки) |
utils/_twfcon-types.ps1 |
P/Invoke консоли; при первом запуске может создать twf-console-types-v2.dll |
utils/telegram-autodetect.ps1 |
Пункт 4 |
utils/update-ip-candidates.ps1 |
Пункт 5 |
utils/tg-hosts.ps1 |
Запись/снятие hosts |
lists/telegram-ip-candidates.txt |
Список IPv4 для скана |
lists/telegram-hosts-domains.txt |
Домены для hosts |
telegram-web-ip.cfg |
Найденный IP (после 4) |
backup/ |
Копия hosts при первом включении |
Консоль: в начале выставляется chcp 65001, bat в UTF-8 без BOM. Если шрифт «ломается», в свойствах окна выберите Consolas / Cascadia Mono или запускайте из Windows Terminal.
- Нет IP после [4] — сеть до DC на 443 недоступна; попробуйте [5], другую сеть или VPN. Сводка в блоке «Отчёт» после скана.
- Сайт не открылся / серый экран, иконка крутится — снова 4 → 1,
ipconfig /flushdns, отключите защищённый DNS в браузере, проверьте F12 → Сеть (ошибки наkws*.web.telegram.org). В [4] должен быть TLS ok, не только «порт открыт». - Долго тишина при [4] — обычно DNS или таймаут волны TCP; дождитесь конца или уменьшите список в
telegram-ip-candidates.txt. - Не грузится QR — fix должен быть включён (1); новый домен в DevTools — issue в репозитории.
- Окно сразу закрывается / кракозябры — не сохраняйте
.batс UTF-8 BOM перед@echo offи не в CP1251; нужен Windows 10 не старее 1903. - Антивирус / VirusTotal ругается — см. раздел «Антивирусы и VirusTotal» выше; это часто ложное срабатывание на
hosts+ PowerShell.
После перезагрузки PC fix остаётся, пока не нажали 2.
Проект не аффилирован с Telegram. Распространяется «как есть». Использование hosts для обхода ограничений — на вашей ответственности.
Лицензия: MIT · 💬 Issues и PR приветствуются.