Обновить

Как получить api_id на my.telegram.org из России без VPN (и почему с VPN не получится)

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели23K
Всего голосов 25: ↑21 и ↓4+20
Комментарии42

Комментарии 42

ЗакрепленныеЗакреплённые комментарии

Полезно. Сталкивался: my.telegram.org режет не все российские IP — MTS блокируется, Билайн проходит. Похоже, фильтр по диапазонам, а не геопривязке. Сам через Yota в итоге получил api_id.

Не понял, вместо того чтобы сменить dns на гугловские автор решил заниматься созданием костылей?

P.S. вместо создания api ключей на сайте, можно использовать слитые от оффициального телеграмма

К сожалению, это не всегда срабатывает.

Иногда провайдер перехватывает трафик к восьмёркам (и к единичкам тоже) на 53 порту и подменяет на свой.

DoH или DoT пока помогают.

Завернуть dns в vpn и все, я хз кем надо быть чтобы в 2026 использовать днс от российских провайдеров.

Странно. Я нашел российского провайдера без ограничений ркн и площадкой в РФ именно ради этого. Зашел на my.telegram.org без vpn и получал ту же ошибку.

Но способ проверю.

Трафик к my.telegram.org - это обычный HTTPS поверх TLS, ровно такой же, как у любого банка, любого магазина, любого корпоративного сервиса. Если бы провайдер фильтровал этот трафик по содержимому, легло бы пол-инета. Значит, режут на самом дешёвом этапе - на разрешении имени.

Фильтруют в том числе и по содержимому, а именно по значению SNI (домен сайта), которое передаётся при TLS-handshake в незашифрованном виде. Когда мы говорим про Telegram, то сочетаются блокировки по DNS, SNI, сигнатурам MTProto (собственный протокол Telegram) и MTProxy (встроенный в Telegram прокси-протокол).

У Вашего провайдера по какой-то причине не блокируется доступ к my.telegram.org по SNI, потому что у меня (как и, подозреваю, у большинства) без дополнительных средств он не открывается даже при использовании DoH.

Пока читал несколько раз перепроверил дату выхода этого поста.

1) Подмена DNS ответов сейчас используется исчезающе редко и как правило только по отношению к ресурсам, заблокированным до примерно 2020-го года и только у небольших провайдеров, у которых сисадмины пальцем пошевелить ленятся. Я проверил у себя на нескольких провайдерах, везде DNS разрешает сайты Телеграма в их настоящие IP корректно. Уже лет 5 как все блокировки вынесены на отдельные железки, которые не являются собственностью провайдеров Интернета, а от провайдеров требуется только не трогать их.
2) DPI лезет внутрь вашего HTTPS и притом очень пристально. В последнее время даже слишком, блокируя доступ к российским сайтам из определённых браузеров определённых версий. "Если бы провайдер фильтровал этот трафик по содержимому, легло бы пол-инета" -- так ведь и ложится. Сам лично на прошлой неделе наблюдал и подпирал костылями с коллегами. Сейчас отпустило, но костыли далеко не убираем, ещё пригодятся.
3) Телеграм блокируется как раз по IP, а не по доменному имени. Многие компоненты инфраструктуры Телеграма в принципе не имеют DNS-записей, но используются для работы сервиса (см. датацентры для мультимедиа).

Либо статья опоздала примерно где-то лет на восемь, либо автору фантастически повезло с локацией. Какой-нибудь мелкий провайдер (или наоборот Ростелеком) в Калининграде или Ленинградской области может быть?

да, Ростелеком Спб

РТК Калининград на my.telegram.org отдаёт 149.154.167.99 (не открывается)

149.154.167.99 я так поняла это то, что вам отдаёт DNS? В инструкции я предлагаю прописать в hosts именно .220, то есть перебить ваш .99 другим адресом. Вы пробовали сам шаг с hosts или это просто вывод резолвера?

.99 это ответ резолвера РТК. но его мне все отдают:

nslookup my.telegram.org 1.1.1.1 ╤хЁтхЁ: one.one.one.one Address: 1.1.1.1

Не заслуживающий доверия ответ: ╚ь: my.telegram.org Addresses: 2001:67c:4e8:f004::9149.154.167.99

Если поменять на .220, то начинает открывать, да.

Поделитесь ссылкой на основе чего делали библиотечку для парсинга?

Привет! Отдельную прям библиотеку для парсинга не использовала - всё на Telethon (docs), то есть читаю не веб-страницы каналов, а напрямую через Telegram API (ключи как раз и брала на https://my.telegram.org).

тут можно глянуть как чего устроено https://github.com/chernoyarova/tg_digest/blob/main/scripts/fetch_tg.py

удалить кривой hiddify и установить условный happ с роутингом и резолвингом днс на сервере?– не

подключиться к российскому, а не голландскому серверу? – не

поставить нормальный публичный днс типа 8.8.8.8, 1.1.1.1, 9.9.9.9 и т. д.? – не

ковырятся в консоли и файле хостс? – ДААА

Осталось только поставить что-то типа касперского, который еше и изменения hosts будет сразу откатывать, и с ним повоевать.

Если вам нужны api_id и api_hash для какого-нибудь пет-проекта на Telethon или Pyrogram

А не было проблем с телеграмом? Я как-то создал новый аккаунт, потом из-под него новую аппку и залогинился через подобный mtproto клиент. При первом и единственном же вызове API (contacts.resolveUsername) аккаунт улетел в бан. Я знал, что телеграм очень нервно относится к свежим аккаунтам, но не ожидал, что настолько. Из-под основного аккаунта экспериментировать боязно.

не, никаких проблем не было

Спасибо тебе Маша. Так долго искал решение, а оно оказалось значительно проще чем многие "рисовали".

отлично, рада что помогло!

Добрый день. Пожалуйста сориентируйте что делаю не так.

В hosts (от админа) прописал и сохранил 149.154.167.220 my.telegram.org .

Из командной строки ping 149.154.167.220 получат 100% пакетов. А если в командной строке указать my.telegram.org то IP меняется на 149.154.167.99 и тут уже 100% потеря пакетов. Кеш Dns чистил.

есть гипотеза, но не уверена. Звучит как будто система резолвит через DNS и строку из hosts не видит. То есть файл по факту не применяется. Можно глянуть

  1. что реально лежит в файле. от админа запустите: type C:\Windows\System32\drivers\etc\hosts строка с тг IP должна быть в выводе, без # в начале, IP и домен через пробел или табуляцию.

  2. Если строки в выводе нет - файл сохранился не туда или не так. Может автоматом перезаписался какhosts.txt? должно быть без .txt

  3. Если строка в выводе есть, а ping всё равно отдаёт .99 может её перебивает антивирус, либо у файла кривая кодировка. Пересохраните в UTF-8, антивирус временно отключите.

При выполнении пункта 1. "type C:\Windows\System32\drivers\etc\hosts" - Не удается найти указанный файл.

А вот когда поставил .txt в конце hosts "type C:\Windows\System32\drivers\etc\hosts.txt - строка с IP (220) и доменом без # появилась в выводе.

ну вот и ответ, и это хорошая новость, у вас при сохранении файл перезатерся под TXT формат.

Файл hosts должен сохраняться без какого-либо расширения. Если он сохраняется как hosts.txt, система его не увидит, и изменения не сработают.

Чтобы сохранить файл правильно:

  1. В блокноте нажмите Файл -> Сохранить как.

  2. В поле «Тип файла» выберите Все файлы (.).

  3. В поле «Имя файла» введите hosts (обязательно в кавычках "hosts", чтобы система не добавила .txt сама).

Потом снова проверьте через type о обычным hosts, должно сработать

ну или в коммандной строке введите:

ren C:\Windows\System32\drivers\etc\hosts.txt hosts

Маша ты разРулила! Все заработало. Большое спасибо!

Отличные новости, рада что удалось помочь! Пожалуйста!

Спасибо за рабочий способ

Добрый день, все тоже самое делаю и все равно не открывается(((

у вас мак или винда?

винда

тогда надо проверить где ошибка:

  1. в коммандной строке введите: type C:\Windows\System32\drivers\etc\hosts

  2. если ответ "Не удается найти указанный файл", то введите в команлдую строку: type C:\Windows\System32\drivers\etc\hosts.txt

  3. если ответ строка с IP (220) и доменом без #, то нужно вбить в командую строку ren C:\Windows\System32\drivers\etc\hosts.txt hosts

вроде все на месте

что именно на месте? Вы сделали п.1, какой ответ от командной строки?

Мне немного сложновато вам помочь, мало вводных

Да сделал, там все тоже самое как в hosts и последняя добавленая строка тоже

Могу отправить скрин

напишите мне в тг, ник такой же как тут.

нужен скрин после п.1

  1. в коммандной строке введите: type C:\Windows\System32\drivers\etc\hosts

Попробуем разобраться оперативнее.

Мой первый комментарий в Интернетах за 18 лет - серьезно. Маша, спасибо тебе огромное, за пару минут все получилось, месяц не получалось ничего из всех статей с хабра. Все эти паблик апи локал хост с чужими ключами - полная шляпа и режут скорость.

Очень нужно было снять ограничение для загрузки файлов (клиент заказал транскрибатор в тг, оч критично было) - задолбали правки бесконечные, и вот о ура свое апи

А особо умные комментаторы с ультралегкими "элементарными" способами могли бы написать статью, но как-то не догадались, зато напихать хейта девчонке за помощь - тут как тут

Думайте, умнейшие наши )) А Маше спасибо!

Приятно читать! Спасибо! Рада что помогло)

Спасибо огромное. Способ рабочий

Подскажите, а не было ли у вас проблем с получением кода авторизации при работе с telethon?

нет, код авторизации должен прийти в телеграм в бота

Зарегестрировался здесь. Что бы сказать Спасибо! Храни вас бог.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации