Разработчик опубликовал консольную утилиту для диагностики блокировок РКН.
Утилита для проверки блокировок Роскомнадзора стала доступна в виде простого консольного инструмента. RKN Block Checker не просто сообщает, что сайт не открывается, а показывает, на каком уровне ломается соединение: DNS, TCP, TLS или HTTP.
Разработчик MayersScott опубликовал проект rkn-block-checker на GitHub. Программа помогает понять, находится ли текущее подключение в зоне блокировок РКН и ТСПУ, а также какой механизм фильтрации сработал. Такой разбор полезнее обычной ошибки браузера, потому что разные типы блокировок требуют разных способов обхода и по-разному выглядят в сетевой диагностике.
RKN Block Checker проверяет соединение послойно. Сначала инструмент сравнивает ответы системного DNS и DNS-over-HTTPS через Cloudflare, затем пробует TCP-подключение, запускает TLS-рукопожатие с SNI и только после успешных этапов делает HTTP-запрос. Если сбой появляется на конкретном уровне, программа присваивает результату отдельный вердикт.
Утилита умеет распознавать DNS-подмену, сброс TCP-соединения, DPI-фильтрацию по SNI, страницы-заглушки провайдера и HTTP 451. Для каждого результата указывается уровень уверенности: высокий, средний или низкий. Например, DNS-блокировка получает высокий уровень, когда системный резолвер не возвращает адрес, а DoH успешно находит сайт. TLS-сбой после нормального TCP-подключения считается характерным признаком DPI, но программа помечает результат как вероятный, потому что один сетевой симптом не всегда исключает проблему на стороне сервера.
Не спрашивайте почему мы в MAX.
По умолчанию rkn-check проверяет встроенные списки контрольных и заблокированных ресурсов, после чего выводит сводку. В отчете видно, сколько сайтов из белого списка работают, сколько ресурсов из черного списка открылись и какие типы блокировок встретились чаще всего. Для разовой проверки можно передать один или несколько адресов через параметр --url, а для своих наборов сайтов использовать текстовые или JSON-файлы.
Инструмент поддерживает вывод в JSON, поэтому результат можно передавать в jq, сохранять снимки по расписанию или строить собственный мониторинг. Для автоматических запусков предусмотрен режим --no-self-info: программа не запрашивает публичный IP, провайдера и геолокацию через ipinfo.io, чтобы отчет не содержал лишние данные.
Отдельный акцент сделан на приватности. RKN Block Checker не отправляет телеметрию и не передает результаты разработчику. Исходящие соединения ограничены проверяемыми сайтами, DoH-запросом к Cloudflare и необязательным запросом к ipinfo.io. По умолчанию программа использует обычный браузерный User-Agent, чтобы запуск не выделялся в логах, а режим --identify, наоборот, включает явную подпись диагностического инструмента.
Проект написан на Python и требует версию 3.10 или новее. Установить утилиту можно через PyPI командой pip install rkn-block-checker, после чего достаточно запустить rkn-check. В свежей версии 0.4.0 также добавили Docker-поддержку и исправили ложные срабатывания при сравнении DNS-ответов для сайтов с несколькими A-записями.