DNS-ПРОВЕРКА
Сравниваем IP-адреса от четырёх DoH-провайдеров
Узнайте, что на самом деле фильтруется между вами и интернетом — локально, в браузере, за секунды.
Четыре браузерных проверки на каждый ресурс плюс проверка самофингерпринта
Сравниваем IP-адреса от четырёх DoH-провайдеров
WebSocket-рукопожатие для выявления IP- и TLS-DPI блокировок
Image + opaque fetch для заглушек и HTTP-блокировок
Вердикт с уровнем уверенности и дополнительными флагами
Интернет-цензура обычно не объявляет о себе. Браузер показывает ошибку соединения, зависшую вкладку, редирект на страницу 'этот ресурс заблокирован' или медленную загрузку которая никогда не заканчивается. Пять разных вещей выглядят одинаково в адресной строке. Их причины это разные механизмы на разных слоях сетевого стека. Типичная жалоба пользователя звучит как 'сайт X не работает в стране Y'. Жалоба это один бит. Реальность многослойная: DNS-блокировки случаются первыми, TCP/IP-блокировки следующими, TLS-блокировки во время handshake, HTTP-перенаправления в конце. Каждая реализация оставляет свою сигнатуру. ТСПУ в России делает ставку на TLS-DPI по SNI. GFW в Китае комбинирует DNS poisoning с внедрением TCP RST. SHARE в Иране использует HTTP-перенаправления на государственную заглушку для некоторых категорий контента. Изнутри браузера это всё выглядит по-разному. Браузерная диагностика покрывает большую часть этого без расширений и без VPN. Стандартные web API (DoH, WebSocket, opaque fetch, загрузка картинок) пробуют каждый слой по очереди. Двенадцать категорий вердикта плюс четыре ортогональных флага это то что серьёзный тест выводит. 'Сайт заблокирован' да-или-нет это то что выводит большинство тестеров. Разница между этими двумя выходами и есть вся диагностика. Дальше: послойная картина того что значит 'заблокирован', характерные сигнатуры основных реализаций цензуры, и что браузерный тест может и не может увидеть по сравнению с пробами с сетевой точки вроде OONI.
Картина из четырёх слоёв, упорядоченных по тому где в сетевом стеке происходит блок. DNS-блокировка это самая дешёвая реализация. Государственно-обязательный ISP-резолвер возвращает NXDOMAIN, sinkhole IP (часто 0.0.0.0 или государственная информационная страница), или отравленный IP который указывает на заглушку. Дёшево потому что не нужна попакетная инспекция: провайдеры настраивают свои DNS-серверы один раз и блок применяется к каждому клиенту использующему ISP DNS по умолчанию. Обходится легко, переключение на 1.1.1.1 или 8.8.8.8 прекращает резолверную ложь. Российские провайдеры опирались на это до примерно 2020 года, когда обход стал универсальным. Китай всё ещё использует это активно, но только как один слой из нескольких. Сигнатура для диагностики: спросить четыре независимых DoH-провайдера (Cloudflare, Google, Quad9, Mullvad) и один ISP-default DNS. Если ISP DNS возвращает IP которые не возвращает ни один DoH, это DNS-перезапись. Если ISP DNS возвращает NXDOMAIN а DoH возвращает валидные IP, это DNS-блок. Если все четыре DoH возвращают одинаковый IP и ISP тоже его возвращает, DNS не задействован. IP-блокировка сидит на следующем слое. Маршруты к конкретным IP-адресам отбрасываются на уровне оператора. SYN-пакеты к получателю не получают ответа, или туда внедряется TCP RST для прерывания handshake. Это то что ловят вердикты 'TCP RESET'. Реализация: каждый пакет приходящий на edge оператора проверяется по списку. Совпадающие пакеты отбрасываются или получают RST. Дороже DNS-блокировки но всё ещё дёшево потому что инспекция payload не нужна. TLS-блокировка это место где живёт современная цензура. Блокировщик не отбрасывает SYN; он позволяет TCP завершиться, потом смотрит TLS ClientHello на SNI который ему не нравится, и в этот момент внедряет TCP RST или отбрасывает остаток соединения. Deep packet inspection, но только на уровне SNI, который в TLS 1.2 и 1.3 идёт открытым текстом. Encrypted Client Hello это исправляет, но распространённость всё ещё неполная. TLS-DPI блок выглядит как 'соединение установилось, потом умерло в середине handshake'. Диагностика ловит это как вердикт TLS_BLOCK через успешное завершение TCP но провал TLS-слоя конкретно. HTTP-блокировка это косметический слой. Соединение проходит до самого сервера, но сервер это сервер цензора, не получатель. Пользователь видит заглушку на своём языке. Диагностика ловит это через image-load пробы которые завершаются с payload но неправильным payload, или через классификацию HTTP_STUB когда обнаруживается известный текст заглушки. Замедление сидит ортогонально всем четырём. Трафик проходит, но достаточно медленно чтобы страницы отваливались по таймауту. Российский throttling Twitter в 2021 был знаменитым примером: соединения работали но были ограничены примерно до 10kbps, что делало платформу непригодной без формальной блокировки. Диагностика обнаруживает замедление как отдельный флаг потому что оно может применяться к работающим сайтам, заблокированным сайтам, или сайтам которые формально разрешены но операционно деградированы. Так же как очередь в больнице может быть медленной потому что система перегружена, медленной потому что пациента специально опустили в приоритете, или медленной потому что кто-то забыл поднять карту наверх. Причина важна; симптом выглядит одинаково.
ТСПУ (Россия, с 2021). Аппаратные DPI-боксы установлены у каждого Tier-1 провайдера под надзором Роскомнадзора. Боксы делают TLS-SNI matching и внедряют TCP RST когда помеченный SNI приходит на провод. Попакетная инспекция на трафике уровня IX это дорого, поэтому Россия обычно нацеливается на конкретные SNI а не на полные списки IP-блоков. Замедление Twitter в 2021 использовало то же оборудование чтобы намеренно повредить пакеты так что TCP Twitter повторял попытки но никогда не завершался. Современная сигнатура: соединения к помеченным SNI получают RST в середине handshake, часто с паузой 1-2 секунды перед RST (что предполагает inline rule lookup). DNS poisoning редок в 2026 потому что российские провайдеры предполагают что пользователи уже ушли с ISP DNS. GFW (Китай, с 1998). Многослойная цензура комбинирующая DNS poisoning, IP blocklisting, внедрение TCP RST, TLS-SNI matching и HTTP keyword filtering. Великий Файрвол это единственная крупная реализация которая использует keyword filtering внутри HTTP (не только SNI), и которая может прервать содержимое страницы даже после успешного соединения. Слой DNS poisoning необычен: GFW возвращает правдоподобные но неправильные IP которые маршрутизируются на серверы под контролем GFW, так что неправильно настроенный клиент игнорирующий TTL может закешировать плохой IP неопределённо долго. Тот же трюк что у поддельного дорожного знака указывающего 'к ратуше', который ведёт на пустырь который город построил специально чтобы поглощать пешеходный трафик. Современная сигнатура: любой DNS-запрос к китайскому резолверу за заблокированный домен возвращает другой IP чем любой DoH-провайдер; TCP-соединения к возвращённому IP завершаются успешно; TLS-handshake к помеченным SNI получают RST с поддельным TCP-уровневым reset который имеет невалидные TCP options. ECH (Encrypted Client Hello) был специально нацелен в конце 2024 и GFW теперь отбрасывает соединения включающие расширение ECH целиком. SHARE (Иран, с 2019). Послойно как GFW но с большей опорой на HTTP-заглушки и DNS-перехват. Иранские провайдеры запускают государственно-обязательный DNS который переписывает заблокированные домены на одну из нескольких государственных страниц. Некоторые категории контента (HTTP-only, без TLS) перехватываются на HTTP-уровне и перенаправляются 302 на peyvandha.ir, официальное уведомление 'этот сайт заблокирован'. TLS-handshake к заблокированным сайтам обычно проваливаются на SNI-уровне, аналогично ТСПУ. Сигнатура это комбинация: DoH-lookup возвращает один IP, ISP DNS возвращает другой IP, HTTP-проба к DoH IP возвращает получателя, HTTP-проба к ISP IP возвращает HTML peyvandha.ir. OONI Probe работает с сетевых точек обзора; браузерная диагностика работает с точки пользователя. Эти двое видят разные вещи. OONI ловит что блокируется на edge оператора, браузерный тест ловит что доходит до пользователя. Они согласны на большинстве блокировок и расходятся на пограничных случаях (корпоративные фильтры, школьные сети, региональные различия операторов, time-of-day правила во время выборов или протестов).
Браузерный тест имеет ограничения видимости которые честнее проговорить. Что он видит: - Различия на DNS-слое между DoH-провайдерами (Cloudflare, Google, Quad9, Mullvad) плюс системный резолвер. Расхождения однозначны. - TCP-достижимость к конкретным IP через WebSocket handshake. WS-соединения которые падают с TCP-уровневыми ошибками (а не TLS-ошибками) различают IP_BLOCK и TLS_BLOCK. - TLS-уровневый отпечаток через self-check JA4. Сообщает пользователю, то ли TLS-соединение которое его браузер думает что устанавливает реально пришло на сервер. Несовпадение означает MITM. - HTTP-уровневые ответы через opaque fetch и загрузку картинок. Загрузка картинки возвращает был ли ответ декодируемым как картинка (реальный контент получателя) или нет (text/HTML заглушка, страница ошибки, ответ нулевого размера). - Замедление через сравнение тайминга. Если контрольные сайты медленные и заблокированные сайты тоже медленные, замедление сетевого уровня. Если медленный только один, замедление таргетное. - Доступность DoH по провайдерам. Если 1.1.1.1 через HTTPS работает а 8.8.8.8 через HTTPS нет, цензор нацелен на конкретные DoH-эндпойнты. Так было в России в 2024 с несколькими диапазонами Quad9. Что он не видит: - Решения о маршрутизации на уровне оператора. Если два провайдера в одной стране маршрутизируют по-разному к одному получателю, тест видит только провайдера пользователя. OONI видит больше агрегируя по точкам. Так же как пытаться диагностировать проблему водоснабжения города по одному крану: полезно, информативно, но в городе сотни кранов и проблема может жить совсем в другом месте. - Time-of-day блоки включающиеся во время протестов, выборов или конкретных событий. Тест запущенный в полдень пропускает блок в 20:00. Повторные тесты в течение дня это ловят; однократные нет. - Различия мобильный-vs-проводной. Мобильные операторы в некоторых странах применяют другую фильтрацию чем фиксированные ISP того же материнского оператора. Тест видит то соединение на котором его запустили. - Помеха от расширений браузера. Флаг CLIENT_BLOCKING_SUSPECTED срабатывает когда поведение предполагает что adblock или privacy-расширение перехватило запросы. Тест может пометить подозрение, но не может выключить расширение чтобы подтвердить. - Статус Encrypted Client Hello. ECH разворачивается в 2025-2026 для Cloudflare-фронтированных сайтов. Некоторые цензоры блокируют ECH обнаруживая расширение; другие пропускают. Тест может обнаружить когда SNI-блок перестаёт работать, что предполагает что ECH теперь в игре, но per-handshake ECH-статус не доступен из JavaScript. Правильный способ читать censorship-тест с точки браузера: это ответ с высокой уверенностью для конкретного соединения пользователя в момент теста. Это шумный ответ для 'что заблокировано в стране X' потому что у страны X много сетей, много вариаций по времени дня, и много уровней реализации. Для измерений цензуры на уровне популяции пробы с сетевой точки (OONI, Censored Planet, телеметрия Tor против цензуры) это правильный инструмент. Для 'почему этот сайт не работает с моего ноутбука прямо сейчас' послойная браузерная диагностика это ровно тот инструмент который нужен, и это единственный инструмент который ловит длинный хвост пограничных блоков не попадающих в датасет OONI.
Нет. Диагностика работает полностью в вашем браузере: DoH-запросы, WebSocket-проверки, загрузка картинок и STUN-доступность — всё через стандартные веб-API. Без установки, без расширений, без VPN.
Если ни один DoH-провайдер не отвечает и все контрольные ресурсы недоступны одновременно — наиболее вероятная причина в том, что локальная сеть полностью отрезана. Мы сообщаем об этом отдельно, чтобы не путать с обычной блокировкой.
Замедление и TLS-перехват ортогональны блокировке контента. Соединение может быть и замедленным, и заблокированным, или нормальной скорости, но всё равно блокироваться. Отдельные бейджи делают диагноз точнее.
Запускайте весь набор WHOX из одного блока: проверки утечек, fingerprint-пробы, сетевую диагностику, репутацию IP и тесты приватности.