Skip to content
 
 

Latest commit

 

History

215 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WARPSCOUT-TG

Форк vernette/warpscout, который показывает WARP-эндпоинты, через которые реально работает Telegram.

Документация: 🇷🇺 Русский · 🇬🇧 English

В чем особенность этого форка

Оригинал сканирует эндпоинты Cloudflare WARP и показывает, где каждый из них выходит - регион, пограничный узел, задержку, потери, - и ранжирует их по потерям и пингу. О том, доступен ли с этого выхода Telegram, такое ранжирование не говорит ничего, поэтому -best и -conf могут выдать быстрый и удачно расположенный эндпоинт, через который Telegram не подключается.

Форк добавляет эту проверку и отдаёт ей решающее слово:

  • -tg - колонка TG. Как только туннель поднят и проверен, через него же всем пяти дата-центрам MTProto одновременно отправляется настоящий MTProto-запрос (req_pq). Просто установленного TCP-соединения мало: DPI завершает handshake в сторону Telegram и молча съедает данные, поэтому ДЦ засчитывается только когда реально ответил. Ответить должны все пять: аккаунт живёт на одном ДЦ и клиент не может выбрать другой, так что выход, с которого отвечают только три из пяти, для части аккаунтов мёртв (живой пример: через WARP во Франкфурте DC1/3/5 отвечали, DC2/4 - нет, и Telegram Desktop висел в «connecting...»). В колонке - время ответа самого медленного ДЦ, 3/5, если ответили не все, или blocked, если не ответил ни один; в сводке - какие ДЦ не ответили ни с одного эндпоинта. Имя не резолвится, SNI не отправляется - ровно как это делает клиент Telegram, так что колонка про выход, а не про то, переживает ли DPI конкретное имя хоста. Заблокированный эндпоинт стоит одного -timeout, а не пяти.
  • Доступность Telegram важнее любых метрик задержки. Эндпоинт, с которого Telegram доступен, встаёт выше недоступного независимо от пинга, поэтому -best и -conf выбирают рабочий вариант.
  • -tg-only - выбросить остальные совсем (включает -tg). Раз остались только эндпоинты с рабочим Telegram, ранжируются они по отклику Telegram, а не по пингу до эндпоинта - -best и -conf берут тот, где Telegram быстрее. Если Telegram недоступен ниоткуда, скан прямо об этом сообщает и завершается с ненулевым кодом, вместо того чтобы оставить отчёт из бесполезных эндпоинтов.

Больше не изменено ничего: те же протоколы, флаги, вывод и файлы аккаунта. Ниже - краткая выжимка, полная документация лежит в оригинале, в vernette/warpscout, и применима здесь как есть.

Установка

curl -fsSL https://raw.githubusercontent.com/niklzz/warpscout-tg/master/install.sh | sh

# на роутерах OpenWrt curl по умолчанию нет
wget -qO- https://raw.githubusercontent.com/niklzz/warpscout-tg/master/install.sh | sh

Повторный запуск - он же обновление. Бинарники под Linux, macOS, Windows и Android (amd64/arm64) - на странице релизов; из исходников - go install github.com/niklzz/warpscout-tg@latest.

Команды

Команда Что делает
register Создать аккаунт WARP и сохранить его. Начинать нужно с этого.
scan Просканировать эндпоинты и показать рабочие.
find-junk Подобрать параметры AmneziaWG, которые проходят через фильтр.
find-sni Подобрать SNI для MASQUE, который проходит через фильтр.
socks Поднять один эндпоинт локальным SOCKS5-прокси, чтобы проверить.
version Вывести установленную версию отдельной строкой.

warpscout <команда> -h показывает все флаги любой из них.

# 1. один раз - создаст warpscout-account.json в текущей папке
warpscout register

# 2. скан с проверкой Telegram
warpscout scan -p awg -tg

# только эндпоинты, через которые Telegram работает, лучший как ip:port
warpscout scan -p awg -tg-only -best

# ... и сразу в готовый конфиг AmneziaWG
warpscout scan -p awg -tg-only -conf warp.conf

# добавить RTT и потери внутри туннеля, выкинуть московский узел, оставить немецкие выходы
warpscout scan -p awg -tg -P -exclude-node DME -country DE

# проверить один эндпоинт руками через локальный SOCKS5-прокси
warpscout socks -e "$(warpscout scan -p awg -tg-only -best)" -p awg

В фильтрующей сети начинать стоит с -p awg; если он ничего не нашёл, следующее - -gen-i1 quic, а после него find-junk. Docker, WARP-in-WARP (-through), MASQUE, обфускация и решение проблем работают так, как описано в оригинале.

Лицензия

MIT, как и в оригинале. Благодарности, скриншоты и ссылки на донат - в оригинальном репозитории, туда и стоит идти.

About

🛰️ Сканер эндпоинтов Cloudflare WARP, который показывает те, через которые реально работает Telegram

Topics

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages