Сайт не открывается. Виноват DNS, TLS или DPI? RKN Block Checker показывает, где именно ломается соединение

Разработчик опубликовал консольную утилиту для диагностики блокировок РКН.

Утилита для проверки блокировок Роскомнадзора стала доступна в виде простого консольного инструмента. 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-записями.

Данные о правообладателе фото и видеоматериалов взяты с сайта «SecurityLab.ru», подробнее в Условиях использования