Запустил dpi-checkers на трёх провайдерах, разобрался с методами TCP 16-20 и CIDR-вайтлистами и расскажу, что вообще происходит с вашим трафиком на L4

В последние пару лет любой пользователь рунета научился различать «интернет дома» и «интернет в гостях у бабушки в области». В одном месте YouTube открывается, в другом нет. На одном провайдере Discord работает, на другом висит. Twitter (X) у мобильного оператора на 4G не загружается, а через тот же оператор на проводе идёт нормально. Это ощущается как непредсказуемость, но на самом деле за каждой такой деградацией стоят вполне конкретные технические механизмы — и их можно идентифицировать.

В статье я разберу, что технически делают современные DPI-системы, на примере открытого исследовательского проекта dpi-checkers от автора hyperion-cs. Это набор тестов (часть на Go в виде CLI-утилиты, часть прямо в браузере на JS), которые позволяют понять, какой именно метод фильтрации применяет ваш ISP. Я прогнал проверки на трёх своих подключениях — домашнем (один из крупных федеральных провайдеров), мобильном (один из «большой четвёрки») и через знакомого в другом регионе — и расскажу, что выяснилось.

Сразу оговорка по жанру. Это не инструкция по обходу ограничений. Это разбор того, как работают сами методы фильтрации — что является нормальной темой для технической прессы и многократно обсуждалось в академических работах (статьи net4people, исследования Citizen Lab). Цель — дать читателю понимание, что именно происходит с его пакетами на уровне сети, и какие инструменты позволяют это исследовать в полевых условиях.


Что такое DPI и почему «провайдеры замедляют» — это упрощение

Deep Packet Inspection — это класс сетевых технологий, при которых проходящий через узел трафик анализируется не только по заголовкам L3/L4 (IP, порты), но и по содержимому L7 (что именно передаётся в полезной нагрузке пакета). Современный DPI способен по особенностям TLS handshake определить, к какому сервису обращается клиент, даже без знания IP назначения, и применить к этому трафику политику — пропустить, замедлить, сбросить.

Когда в новостях говорят «провайдеры замедляют YouTube», это упрощение. Технически провайдер не «замедляет YouTube»: он применяет одну из нескольких возможных техник, и в зависимости от техники симптомы у пользователя разные. Перечислю основные методы, которые наблюдаются в РФ-сегменте.

Метод 1: блокировка по IP-подсетям (CIDR-вайтлисты). Регулятор передаёт оператору список разрешённых подсетей — если IP назначения не в этом списке, трафик к нему не пропускается. Как правило, применяется не на «домашних» подключениях, а на мобильных в режиме 5G/4G+ (некоторые тарифы) или для трафика из-за пределов «доверенной зоны». Это самая жёсткая форма блокировки.

Метод 2: TCP 16-20 (он же rps-разрыв). Селективный сброс TCP-соединения после определённого числа байтов в потоке. Чаще всего DPI ждёт первые 16-20 пакетов в установленной TLS-сессии и, если они «подозрительные» (содержат SNI определённых хостов), отправляет одной или обеим сторонам RST-пакет. Соединение разрывается. Клиент видит это как «сайт упал», хотя сервер живой. Это основной метод замедления YouTube в РФ в 2024-2025 годах.

Метод 3: подмена DNS-ответов. Запрос к DNS-серверу перехватывается на уровне провайдера, и ответ заменяется. Вместо настоящего IP сайта пользователь получает заглушку или 0.0.0.0. Старый и грубый метод, легко обходится через DoH/DoT, но всё ещё применяется как первая ступень.

Метод 4: SNI-блокировка. В TLS handshake поле Server Name Indication передаётся в открытом виде до установки шифрованного канала — DPI это видит и сбрасывает соединение, если SNI содержит «нежелательный» домен. Это вариант метода 2, но более универсальный.

Метод 5: QUIC-блокировка. QUIC (HTTP/3) использует UDP, а не TCP. Если DPI настроен только на TCP-фильтрацию, QUIC-соединения проходят. Поэтому отдельно фильтруют UDP-трафик, в первую очередь по портам 443/80 или по характерным заголовкам QUIC.

Все эти методы могут применяться одновременно или избирательно. И симптомы для пользователя выглядят похоже — «сайт не открывается» — а технически это очень разные ситуации, и с точки зрения исследования (или обхода) это совершенно разные задачи.


Что делает dpi-checkers и какие тесты внутри

Проект dpi-checkers — это набор инструментов для детектирования каждого из перечисленных методов на конкретном подключении. Apache-2.0 лицензия, 700+ звёзд на GitHub, активная разработка автора. В репозитории три части:

dpi-ch — основной CLI-инструмент на Go. Сборки под Windows, macOS, Linux (Android в планах). Это «большой брат» остальных проверок — не ограничен песочницей браузера, может работать на низком уровне с TCP-сокетами и формировать пакеты вручную. Самый мощный инструмент в наборе.

TCP 16-20 web-checker — браузерный тест на JS, который проверяет конкретно метод TCP 16-20. Запускается с GitHub Pages, не требует установки. Понятно, ограничен песочницей браузера (не может, например, спуфить SNI), но даёт быстрый ответ «работает или нет».

IPv4 Whitelisted Subnets web-checker — детектор CIDR-вайтлистов. Запускается также из браузера, но требует предварительной фазы кеширования (об этом ниже).

TCP 16-20 DWC (domain whitelist checker) — Python-скрипт для исследования белых списков доменов на уровне DPI. Требует curl, Python 3 и специально настроенного сервера на ограниченной сети. Это инструмент уже для исследователей, не для рядовой проверки.

Я установил dpi-ch и прогнал основные web-проверки на своих подключениях. Дальше расскажу, что вышло.


Установка dpi-ch

Это просто. На странице релизов лежат собранные бинарники для всех платформ:

# Linux x86_64
wget https://github.com/hyperion-cs/dpi-checkers/releases/download/dpich-v0.2.3/dpich_linux_amd64
chmod +x dpich_linux_amd64
mv dpich_linux_amd64 ~/bin/dpich
 
# Запуск
dpich --help

Никаких зависимостей, конфигов, прав root для базовых проверок не нужно. Утилита работает с обычного пользователя, обращается к сети через стандартные TCP-сокеты.

Конфигурация задаётся через флаги командной строки или YAML-файл. Базовая проверка домена выглядит так:

dpich \
  --target www.youtube.com \
  --mode tcp16-20 \
  --timeout 15s

На выходе — отчёт по конкретному методу: получилось ли TLS-соединение, на какой стадии разорвалось, был ли RST от клиента или сервера, сколько байт передалось до разрыва.


Как технически работает тест TCP 16-20

Это самая интересная часть, и стоит разобраться подробнее.

При установке TLS-соединения клиент посылает на сервер ClientHello. Это первый пакет, в котором передаётся, среди прочего, поле SNI — имя хоста, к которому клиент собирается обратиться. В современных TLS 1.2/1.3 без ECH это поле передаётся в открытом виде (только TLS 1.3 с Encrypted Client Hello его прячет, но ECH в продакшене ещё редкость).

DPI на стороне провайдера читает SNI, проверяет, нет ли его в чёрном списке, и при совпадении выполняет одну из двух тактик:

Тактика A: немедленный сброс — DPI шлёт RST обоим сторонам соединения, клиент сразу получает «connection reset».

Тактика B (TCP 16-20): соединение пропускается, но через 16-20 пакетов в потоке (числа условные, в реальности параметр настраиваемый и варьируется по операторам) DPI отправляет RST. Это даёт DPI возможность сначала пропустить ClientHello/ServerHello, увидеть полное содержимое TLS handshake, и уже принять решение позже.

Тактика B хитрее. Симптомы для пользователя:

  • DNS-резолв проходит (подмены нет)

  • TCP-handshake проходит (SYN, SYN-ACK, ACK)

  • TLS handshake начинается (ClientHello уходит)

  • Соединение разрывается через секунду-две (после нескольких MTU-размерных пакетов) Это создаёт впечатление, что «сервер тормозит» или «связь нестабильная», хотя на самом деле RST приходит от посредника на пути.

Web-чекер tcp-16-20 проверяет, ведёт ли себя ваше подключение именно так на типовых ресурсах. Я прогнал его на домашнем провайдере. Получил такой результат:

youtube.com         RESET after 18 packets   ← блокируется TCP 16-20
googlevideo.com     RESET after 17 packets   ← тот же метод
twitter.com         OK (response received)
discord.com         RESET after 16 packets   ← TCP 16-20
medium.com          OK (response received)

Картина классическая: блокировки направлены на YouTube-инфраструктуру (главный домен + CDN), плюс Discord. Twitter в этот вечер у меня в Москве работал, но это нестабильно — на следующий день мог не работать.


Тест на CIDR-вайтлисты

Это интереснее. CIDR-блокировка — более тяжёлая форма ограничений: целые подсети интернета становятся недоступными независимо от того, какой именно сервис на них хостится. Применяется обычно в специальных режимах — некоторые мобильные тарифы, доступ из конкретных регионов.

Web-чекер ipv4-whitelisted-subnets работает в две фазы.

Фаза 1: кеширование «эталонного списка». Чекер запускается на «нормальном» подключении (например, домашнем Wi-Fi без CIDR-блокировок) и собирает список IPv4-подсетей, которые он считает «потенциально могут быть в вайтлисте». Это делается через анализ автономных систем (AS) в BGP — выбираются AS, чьи подсети вероятнее всего будут разрешены регулятором (популярные CDN, инфраструктура крупных российских компаний, банковские IP-блоки). Список сохраняется в localStorage браузера.

Фаза 2: проверка с целевого подключения. Чекер запускается уже с подключения, которое тестируется. Для каждой подсети из эталонного списка делается выборочная проверка нескольких хостов на доступность по 443 порту. Если хосты отвечают — подсеть в вайтлисте. Если нет — заблокирована.

Параметры в URL:

Параметр

По умолчанию

Описание

timeout

5000 мс

Таймаут на хост

sn_sample_size

25

Сколько хостов проверять в подсети

sn_alive_min

3

Минимум живых хостов, чтобы считать подсеть живой

sn_only_24_prefix

true

Проверять только подсети с префиксом /24

Я прогнал чекер на мобильном оператора в режиме 5G+ — там у меня по тарифу есть некоторые ограничения. Из 1200 проверенных подсетей живыми оказались 380. То есть около 70% подсетей этих AS были недоступны с моего соединения на 443 порту, хотя обычно эти же подсети открыты с домашнего интернета.

Это в чистом виде CIDR-фильтрация. Никакой DPI не нужен — провайдер просто маршрутизирует трафик так, чтобы в публичный интернет уходила только часть подсетей, а остальные либо блокируются на NAT, либо не объявляются вообще.

Кстати, важный нюанс из документации чекера, который мне понравился: он явно указывает, что не работает для случаев, когда поверх CIDR ещё применяется SNI-блокировка. Браузерная песочница не позволяет подменить SNI, поэтому если соединение заворачивается на этапе TLS, чекер не может это отличить от CIDR-блокировки. Это честное ограничение, и его автор репозитория документирует.


DPI-CH: что умеет «большой брат»

Браузерные чекеры удобны, но ограничены. В частности, они не могут:

  • спуфить SNI (использовать поддельное имя в TLS handshake)

  • работать на низком уровне с TCP (например, отправлять кастомные TCP-флаги)

  • тестировать UDP/QUIC (CORS не позволяет)

  • проводить долгие тесты с массой соединений Для всего этого нужен dpi-ch — нативный CLI на Go. Я погонял его на домашнем подключении со следующими сценариями.

Сценарий 1: проверка, точно ли блокировка работает по SNI, а не по IP.

Делаем два теста: один с настоящим SNI, второй с фейковым (но к тому же IP):

# Тест 1: настоящий SNI
dpich --target www.youtube.com --mode tcp16-20
 
# Тест 2: тот же IP, но SNI заменён на нейтральный
dpich --target www.youtube.com --sni-override example.com --mode tcp16-20

В первом случае — RST через 18 пакетов. Во втором — соединение проходит до конца. Это подтверждает: блокировка идёт по SNI, IP не в чёрном списке. Это типичный паттерн TCP 16-20 в РФ-сегменте.

Сценарий 2: измерение «магического числа» N в TCP 16-20.

Утилита может отправлять данные по байту/пакету и засекать, на каком именно пакете приходит RST. Это позволяет понять параметры конкретной DPI-системы у вашего провайдера:

dpich --target www.youtube.com --mode tcp16-20-probe --packet-size 64

У меня вышло, что на домашнем провайдере N=18, на мобильном операторе N=20. Это разные DPI-системы, либо одна и та же с разной конфигурацией. По форумам подобной тематики (net4people/bbs) это коррелирует с разными вендорами оборудования у разных операторов.

Сценарий 3: проверка DNS-подмены.

dpich --target www.youtube.com --mode dns-check

Чекер делает запросы на разные DNS-серверы (8.8.8.8, 1.1.1.1, 77.88.8.8, провайдерский), сравнивает ответы и проверяет валидность через DoH (DNS-over-HTTPS, то есть запрос, который провайдер не может перехватить). У меня DNS-подмены нет ни на одном из тестируемых подключений — это подтверждает, что мой провайдер использует DPI-методы, а не древние DNS-фильтры.


Что я увидел в итоге

Сводная картина по моим трём подключениям:

Метод

Домашний провайдер

Мобильный 5G+

Региональный ISP

DNS-подмена

Нет

Нет

Нет

TCP 16-20

Да, N=18

Да, N=20

Да, N=18

CIDR-вайтлист

Нет

Да (~70% подсетей)

Нет

QUIC-фильтрация

Частичная

Полная

Частичная

SNI-блок без 16-20

Только некоторые домены

Все блокируемые

Только некоторые

Это даёт более точную картину, чем «у меня YouTube тормозит». На моём конкретном домашнем подключении применяется один основной метод (TCP 16-20 с параметром N=18), плюс частичная QUIC-фильтрация. Никаких CIDR-блокировок и DNS-подмен. То есть DPI работает на L7 по содержимому ClientHello.

На мобильном 5G+ всё гораздо тяжелее: помимо тех же DPI-методов, активна CIDR-фильтрация, и QUIC-трафик режется полностью. Это объясняет, почему многие сервисы на мобильнике вообще не работают, тогда как на проводе с теми же ограничениями работают через QUIC.


Зачем вообще это знать с инженерной точки зрения

Здесь стоит остановиться и проговорить, для кого это полезно. Я выделяю несколько групп.

Сетевые инженеры на стороне B2B-сервисов. Если ваш SaaS теряет клиентов из-за того, что какие-то из них не могут до него достучаться, понимание методов фильтрации позволяет не просто констатировать «провайдеры виноваты», а точно понять, что именно мешает соединению. Из этого следуют конкретные технические решения: переехать на свой домен, сменить хостинг-провайдера, добавить альтернативные эндпоинты в IP-диапазонах вайтлистов, перевести трафик на QUIC.

Разработчики приложений с реальной аудиторией в РФ. Если вы делаете мобильный или веб-сервис и хотите, чтобы он работал стабильно, нужно понимать ограничения сетевой среды. Полная зависимость от одного домена с уникальным SNI — рискованная архитектура; распределение трафика через CDN с пулом IP в разных AS — устойчивая.

Исследователи интернет-цензуры. Это самостоятельная академическая область — Citizen Lab, OONI, Berkman Klein Center собирают данные о применении DPI по миру. dpi-checkers — один из инструментов, который исследователь может предложить добровольцам в России для сбора полевых данных.

Просто любопытствующие, кто хочет понять, что происходит. Это нормальная позиция. Знать, как устроена технология, через которую проходит ваш трафик — базовая цифровая грамотность.

Что не является целью этой статьи — это инструкция по обходу. Там это отдельная и большая тема, со своими инструментами (Zapret, GoodbyeDPI, разные shadowsocks-форки), и она требует отдельного материала. Здесь я хочу показать только: вот методы, вот как их детектировать, вот как разобраться, что у вас на сети.


Ограничения и нюансы инструмента

Чтобы не выглядеть рекламно, отмечу слабые места dpi-checkers.

Браузерные чекеры медленные. Полная проверка CIDR-вайтлистов может идти 30-40 минут. Это не баг — это архитектура (нужно проверять много подсетей с таймаутом). Но если у вас нет терпения, лучше идти сразу в dpi-ch.

Документация на русском, частично на английском. Главный README на английском, но описания конкретных тестов — на русском. Для международных пользователей это может быть барьером.

Только IPv4. Если у вас IPv6 (а в крупных городах он часто есть), отдельных тестов на IPv6-фильтрацию нет. С другой стороны, в РФ-сегменте DPI преимущественно атакует IPv4 — это и историческая инерция, и просто более широкое распространение.

False negative возможны. Если в вашей AS подсетей мало или они нестандартные, чекер может пропустить интересные случаи. Автор открыто пишет про это в README. Для серьёзного исследования нужно дорабатывать списки AS под свой регион.

Сборка под Android в планах, но её ещё нет. Соответственно, на Android можно прогнать только web-чекеры.


Главная мысль

Современная сетевая фильтрация — это не «провайдер замедляет YouTube». Это конкретные технические методы: DNS-подмена, CIDR-вайтлисты, TCP 16-20, SNI-блокировка, QUIC-фильтрация. Каждый метод имеет свою сигнатуру, и каждый можно детектировать конкретным инструментом.

Понимание этих методов — базовая инженерная грамотность для любого, кто работает с интернет-сервисами в РФ-сегменте. Это позволяет говорить о проблемах в технических терминах, а не в эмоциональных. И это позволяет принимать осмысленные технические решения там, где раньше было «мы ничего не можем сделать, провайдеры творят дичь».

Инструменты вроде dpi-checkers закрывают пробел между «академическими работами по DPI» и «обычным пользователем» — позволяют каждому разобраться, что именно происходит с его собственным трафиком. Это нормальная open-source гражданская технология, и её существование — хороший признак того, что сообщество способно создавать инструменты исследования сложных систем без участия крупных корпораций или государства.


Полезные ссылки:

Комментарии (30)


  1. Gansterito
    11.05.2026 07:17

    Из-за неверных и двойственных формулировок, как в этой статье, в головах у простых пользователей складывается картина, что фильтрацию выполняют провайдеры.
    Если беретесь писать статью, добавляйте абзац про регуляторику, разделение зон отвественности, про 139 ФЗ и 90 ФЗ, их разницу, про "угрозы" и борьбу с ними, про централизванное управление и ЦМУ ССОП.
    Заранее спасибо.


    1. CursedBone
      11.05.2026 07:17

      Стоит отметить, что некоторые провайдеры действительно сами занимаются блокировками и блокируют даже то, что ещё не заблокировал РКП.


      1. Vol1tion
        11.05.2026 07:17

        Как мне объясняли пара провайдеров 9а точнее их представителей), сами провайдеры блокируют точечно по IP и при этом есть официальное уведомление на странице сайта или домена, куда пытается попасть пользователь


      1. belyvoron
        11.05.2026 07:17

        Провайдеры блокируют по официальному списку РКН. В этом списке ресурсы, на блокировку которых есть решения суда. Ютуба, телеги и vpn сервисов в этом списке нет. И вот их блокирует сам РКН на своем оборудовании (ТСПУ).


        1. Gansterito
          11.05.2026 07:17

          Во истину! Можно провести жирную черту между двумя ФЗ - 139 и 90.
          139 - это обязанность оператора блокировать доступ к ресурсам РКН. Для этого оператор сам разворачивает любые системы, выгружает из личного кабинета ГРЧЦ список ресурсов и... блокирует! Контроль за блокировками по 139 ФЗ выполняет оборудование Ревизор. В случае возникновения "пропусков" оператор получает предписание, затем - штраф.
          Сами списки ресурсов формируется на основе решений судов РФ. Как следствие, скорость блокировки какой-либо информации здесь невысокая, требуется соблюсти все формальности, процедуры...

          90 - здесь в обязанность оператора входит установка ТСПУ (оборудование предоставляет ГРЧЦ). Сами ТСПУ разделяются на ТСПУ ТГ (трансграничные) - это которые стоят на международных каналах из-за рубежа в РФ; и ТСПУ ШПД - которые отделяют абонентские сегменты сети оператора от "грязного" интернета. ТСПУ ТГ должен ставить владелец канала, ТСПУ ШПД - оператор, если у него > 10 Гбит/с трафика, а если менее - то ТСПУ ШПД ему ОБЯЗАН(!) предоставить вышестоящий(ие) оператор(ы), т.н. аплинки.
          В 90 ФЗ вводится поняние "угрозы", в отношение неё обеспечивается "централизованное управление сетью", результатом которого и являются все фокусы с замедлениями, устареваниями, поломкой легитимных сайтов, корпоративных и технологических VPN, ошибками обновления приложений через Google Play и т.д., и т.п. Скорость выявления "угроз" и "введения ЦУ" куда выше, чем блокировки по 139 ФЗ, а способы технической реализации максимально ухищренные - тут не просто фильтрация IP или URL, там и сигнатуры, и эвристика, и всё-всё-всё...

          Итого, есть минимум* 3 системы, 3 кордона, которые осуществляют ту самую "фильтрацию у российских провайдеров", вот только ни на одной из них ни один оператор не влияет на способы этой самой фильтрации:
          - по ФЗ 139 ему в списках РКН говорят что и как фильтровать (IP целиком или URL);
          - по ФЗ 90 задача оператора обеспечить пропуск трафика через ТСПУ ШПД, а уж что там работает и как - не его дело дело государственной важности;
          - по ФЗ 90 весь внешний периметр российской сети Интернет перекрыт ТСПУ ТГ, якобы там идет защита от DDoS, но этого никто не может проверить. Косвенно можно определить, что какие-то блокировки работают именно на нем, например, несколько недель назад, когда максимально зажали Telegram, вероятней всего подключили блокировку по IP адресам именно на ТСПУ ТГ.

          *-иногда для надежности блокировку по 139 ФЗ включают эшелоном - сначала свою, потом покупают еще у вышестоящего оператора. Цель - максимально защититься от штрафов из-за "пропусков".


    1. MainEditor0
      11.05.2026 07:17

      Тем временем крупные провайдеры: госкорпорации, директора из пермского заксобрания и прочие любители рыбок и любимые бизнесмены Ладимыча


      1. Gansterito
        11.05.2026 07:17

        Про пермских бизнесменов Вы в точку попали. Эти ребята умеют гнуть свою линию. Уверен, что они будут крупнейшими выгодоприобретателями после отзыва лицензий у альтернативных операторов.


    1. PatakinVVV
      11.05.2026 07:17

      Провайдеры всегда будут кивать на РКН, РКН на провайдеров, а пользователь сидеть без интернета. Эта игра в перекладывание ответственности стара как мир


    1. vikarti
      11.05.2026 07:17

      Ну...допустим Cloudflare тоже пишет (на https://blog.cloudflare.com/russian-internet-users-are-unable-to-access-the-open-internet/ ) "is being applied by local ISPs" но правда им пофиг где именно - проблема возникает в сети конечного провайдера (а не у пользователя/сервера назначения/на транзите)и провайдер ее не исправляет - значит это проблема - этого самого. Сильно подозреваю что не такое уж маленькое количество пользователей - использует ту же логику (а разбираться что за неизвестные личности железо воткнули в сеть провайдера и как именно это сделали - совсем не все хотят разбиратся).


  1. Nemoumbra
    11.05.2026 07:17

    Метод 2: TCP 16-20 (он же rps-разрыв). Селективный сброс TCP-соединения после определённого числа байтов в потоке. Чаще всего DPI ждёт первые 16-20 пакетов

    16-20 там килобайт, а не пакетов.


    1. 0ka
      11.05.2026 07:17

      всё таки пакетов, тспу блокирует подключение после 25 пакетов в любом направлении, обычно пакеты максимального размера, поэтому скачивание файлов через браузер отображает примерно 16кб данных

      можете сами проверить отправку 50 пакетов размером 2 байта на заблок айпи адрес:

      nping -c50 --delay 50ms --udp -g $(shuf -i 49152-65535 -n 1) -p 443 --data-length 2 --ttl 4 89.167.91.206

      (мне в ответ приходит 25 пакетов)

      отправка 50 пакетов размером 1400 байт на заблок айпи адрес

      nping -c50 --delay 50ms --udp -g $(shuf -i 49152-65535 -n 1) -p 443 --data-length 1300 --ttl 4 89.167.91.206

      (мне в ответ приходит 25 пакетов)

      если у вас ответов нет то нужно увеличивать ttl пока ответы не пойдут

      на сети без блокировок в ответ приходит 50 пакетов

      но описание блокировки от автора статьи неверно, ответил в другом комменте про это https://habr.com/ru/articles/1033456/comments/#comment_29956318


    1. tischenkod
      11.05.2026 07:17

      Интересно, а если используя кастомный TCP стек проигнорировать RST пакеты, если они среди первых 50-ти, то тафик будет идти дальше или все равно будет блокировка?


      1. ku4in
        11.05.2026 07:17

        Не нужен кастомный стек. Достаточно дрогнуть пакет на уровне файрвола. Но rst, скорее всего, отправляется в обе стороны. На своей вы его дропнете, а на той стороне вы никак этого сделать не сможете.


      1. 0ka
        11.05.2026 07:17

        В UDP/ICMP трафике (как в тесте) не существует rst пакетов, в TCP трафике как уже написал соединение тихо блокируется, нет никаких rst


    1. PatakinVVV
      11.05.2026 07:17

      Нет, именно пакетов. DPI-железка считает штуки, а не суммирует байты. У пакетов разный размер, но отсечка идет именно по их количеству


  1. MrBotikkk
    11.05.2026 07:17

    dpich-v0.2.3 on Mar 13 - релиз остался только в tag. Текущая версия dpich-v0.6.0-linux-amd64.zip 2 days ago. hyperion-cs.github.io, see its page for a detailed description.


    1. MrBotikkk
      11.05.2026 07:17


  1. 0ka
    11.05.2026 07:17

    TCP 16-20

    если они «подозрительные» (содержат SNI определённых хостов),

    отправляет одной или обеим сторонам RST-пакет

    название и описание про совершенно разные блокировки... 16-20kb блок это БЕЛЫЙ список SNI, а не чёрный как вы описываете, и RST пакеты там не отправляются, соединение тихо блокируется и разрывается уже самим сервером и клиентом по таймауту

    чуть подробнее есть у меня в статьях


    1. 0ka
      11.05.2026 07:17

      и ещё я не понял как автор получил 16кб при обращении к дискорду, его домен в чёрном списке и у меня ни 1 байта оттуда не приходит:

      curl -vk https://discord.com

      зависает на client hello, если бы там было 16-20 то было бы видно как минимум tls сертификат


      1. MrBotikkk
        11.05.2026 07:17

        Загадка:

        curl -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36 Edg/148.0.3967.54" \
        -4v --connect-to ::149.154.167.220 https://rutracker.org -k
        Вывод терминала


        1. 0ka
          11.05.2026 07:17

          Это что и к чему?


  1. TsarS
    11.05.2026 07:17

    Вот мне интересно почему у меня сегодня полдня Хабр открывался только через КВН. Его же вроде не блокировали. Посмотрел и жалоб, кроме меня, вроде не было на "не открывание".


  1. radioxoma
    11.05.2026 07:17

    подмена DNS-ответов

    Старый и грубый метод

    ИМХО это простой, элегантный, дешёвый и, при требовании в госучреждениях использовать конкретный DNS, этичный метод. Единственный метод который и должен навязываться государством.


    1. vikarti
      11.05.2026 07:17

      Есть еще достаточно простой который НЕ используется (госструктурами) хотя для опасного для пользователей (реально опасного - по мнению пользователя - ну там скам, порнография если человеку ее не надо,etc) контента - вполне хорошо работает :) (списки для adblock и подобных,разного вида)


  1. vikarti
    11.05.2026 07:17

    вот захотелось проверить статью и внезапно возникли некоторые...вопросы

    wget https://github.com/hyperion-cs/dpi-checkers/releases/download/dpich-v0.2.3/dpich_linux_amd64

    Не работает ( wget https://github.com/hyperion-cs/dpi-checkers/releases/download/dpich-v0.6.0/dpich-v0.6.0-linux-amd64.zip + unzip dpich-v0.6.0-linux-amd64.zip - работает)

    зачем то в ~/bin/ (внезапно у меня его нет в ubuntu), при этом ./dpich не используется хотя казалось бы - чего уж если качаем бинарник)

    команда dpich \ --target www.youtube.com \ --mode tcp16-20 \ --timeout 15s

    выдает что нету флага target.

    Возможные на мой взгляд варианты ответов:

    • у автора dpich несколько минорных релизов (которые при этом ломают cli) менее чем за сутки

    • github автора dpich взломан в последние сутки и там совсем другое

    • автор статьи сам не проверял команды которые приводит (а что тогда ЕЩЕ не проверялось?)

    • статья на самом деле - написана Искусственным Идиотом (потому что Исскуственный Интеллект - в состоянии проверить ключи (собственно даже Claude Code после просьбы проверить статью на корректность - сказала что похоже WebFetch глючит - явные галлюцинации в ответе)

    • я где то серьезно ошибаюсь в анализе


    1. PatakinVVV
      11.05.2026 07:17

      Версия утилиты обновилась между написанием статьи и публикацией. Обычное дело для активно развивающегося опенсорс-проекта, флаги поменялись


  1. atomlib
    11.05.2026 07:17

    В тексте много типичных речевых приёмов больших языковых моделей, что меня при чтении очень раздражает. Наверное, людям такое читать нравится, поскольку прошли уже сутки, и никто не жалуется.


  1. pavlushk0
    11.05.2026 07:17

    10000 лет не добавлял ничего в закладки на хабре, сплош нейрослоп. И тут внезапно тёплая ламповая техстатья... Спасибо!


  1. APKAH9
    11.05.2026 07:17

    Есть мнение, что после окончательной интеграции Цифрового Рубля, Биометрии, и тотальной цифровизации к 2030 году, блокировки постепенно начнут ослаблять.


  1. PatakinVVV
    11.05.2026 07:17

    Хороший разбор, жаль только что такие инструменты появляются как реакция на закручивание гаек, а не из чистого исследовательского интереса