Comments 32
Есть способ попроще:
curl -H ‘accept: application/dns-json’ ‘https://cloudflare-dns.com/dns-query?name=api.telegram.com&type=A’
И для такого случая можно включить просто в браузере DNS over HTTPS
Есть способ попроще:
curl -H ‘accept: application/dns-json’ ‘https://cloudflare-dns.com/dns-query?name=api.telegram.com&type=A’
И для такого случая можно включить просто в браузере DNS over HTTPS
Не понял, вместо того чтобы сменить dns на гугловские автор решил заниматься созданием костылей?
P.S. вместо создания api ключей на сайте, можно использовать слитые от оффициального телеграмма
Странно. Я нашел российского провайдера без ограничений ркн и площадкой в РФ именно ради этого. Зашел на 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 или это просто вывод резолвера?
Поделитесь ссылкой на основе чего делали библиотечку для парсинга?
Привет! Отдельную прям библиотеку для парсинга не использовала - всё на 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 не видит. То есть файл по факту не применяется. Можно глянуть
что реально лежит в файле. от админа запустите:
type C:\Windows\System32\drivers\etc\hostsстрока с тг IP должна быть в выводе, без#в начале, IP и домен через пробел или табуляцию.Если строки в выводе нет - файл сохранился не туда или не так. Может автоматом перезаписался как
hosts.txt? должно быть без.txtЕсли строка в выводе есть, а 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, система его не увидит, и изменения не сработают.
Чтобы сохранить файл правильно:
В блокноте нажмите Файл -> Сохранить как.
В поле «Тип файла» выберите Все файлы (.).
В поле «Имя файла» введите hosts (обязательно в кавычках
"hosts", чтобы система не добавила.txtсама).
Потом снова проверьте через type о обычным hosts, должно сработать
Спасибо за рабочий способ
Добрый день, все тоже самое делаю и все равно не открывается(((
у вас мак или винда?
винда
тогда надо проверить где ошибка:
в коммандной строке введите:
typeC:\Windows\System32\drivers\etc\hostsесли ответ"Не удается найти указанный файл", то введите в команлдую строку:type C:\Windows\System32\drivers\etc\hosts.txtесли ответ строка с IP (220) и доменом без #, то нужно вбить в командую строку
ren C:\Windows\System32\drivers\etc\hosts.txt hosts
Как получить api_id на my.telegram.org из России без VPN (и почему с VPN не получится)