
Android-приложение прокси, обходящее цензуру Deep Packet Inspection путём фрагментации пакетов TLS ClientHello и перезаписи версии TLS для восстановления доступа к заблокированным HTTPS-сайтам.
Say NO to blocking!
[!IMPORTANT] Этот проект является ответвлением репозитория https://github.com/theo0x0/nodpi и разрабатывается независимо от него. Не путайте с https://github.com/raspabamos/nodpi !
[!NOTE] Эта версия предназначена только для Android. Версия для настольных компьютеров доступна здесь: https://github.com/GVCoder09/NoDPI
🌐 Веб-сайт и документация - удобное руководство и обзор
💬 NoDPI Lab — форум сообщества по вопросам NoDPI, DPI, сетевой фильтрации и обхода ограничений.
Read this in other languages / Читайте на других языках
NoDPI4Android — это графическая надстройка над NoDPI. Это приложение предназначено для работы только на устройствах Android, версии для Windows и Linux доступны здесь
NoDPI — это утилита, предназначенная для обхода DPI (Deep Packet Inspection). Что такое DPI? DPI — это технология анализа сетевых пакетов на основе их содержимого для регулирования и фильтрации трафика. Она часто используется интернет-провайдерами для цензуры и блокировки доступа к определённым веб-ресурсам и протоколам. Цель этой программы — «обмануть» DPI, модифицируя сетевые пакеты, хотя на самом деле этот "обман" часто является следствием нехватки вычислительных ресурсов и времени на стороне провайдера.
Эта утилита была разработана в первую очередь для российских пользователей как более простая (но менее мощная) замена аналогичным инструментам. В большинстве случаев она справляется со своей задачей; в частности, она позволяет без проблем пользоваться YouTube.
Но, к сожалению, абсолютная работоспособность этой утилиты не может гарантироваться. Некоторые сайты, например, YouTube, легко поддаются разблокировке, в то время как другие, например, Instagram.com или Facebook.com, требуют совершенно иных методов обхода блокировок, которые пока не реализованы в этой утилите из-за их низкоуровненности и сложности. Иногда работоспособность определенных сайтов может зависеть и от провайдера — того, как именно он блокирует сайт и какие технические средства применяет.
NoDPI запускает на вашем устройстве прокси-сервер, через который вы перенаправляете http(s)-трафик. Программа перехватывает исходящие ClientHello соединений и фрагментирует их одним из следующих способов::
Фрагментация по SNI (по умолчанию)
В пакете есть поле, содержащее запись SNI. ClientHello разбивается на несколько TLS-записей: часть до SNI, SNI посимвольно, и часть после SNI. К каждой части прикрепляется заголовок, указывающий на тип Clienthello, и затем все это отправляется в одном пакете.
Случайная фрагментация
ClientHello разбивается на несколько частей случайной длины. Каждая часть склеивается префиксами типа ClientHello, и всё это отправляется одним пакетом.
Также, независимо от способа, версия TLS заменяется на версию 1.3, которая является самой современной на данный момент (хотя это не означает, что ваши данные начинают передаваться в соответствии со спецификациями этой версии). Всё это в совокупности позволяет обойти блокировку. По всей видимости, DPI пока не обладает необходимыми мощностями, чтобы распутать этот «клубок», и просто игнорирует такой трафик, экономя время и силы. Но, возможно, скоро эти методы перестанут работать.
[!IMPORTANT] NoDPI работает только с HTTPS-трафиком. Он также может принимать HTTP-трафик, но исключительно для совместимости — HTTP-сайты практически не подлежат разблокировке, и программа просто отправляет трафик адресату.
NoDPI не собирает и не отправляет никаких данных о вас, не использует сторонние программы, не вмешивается в системные процессы и не требует прав администратора для работы.
Весь код написан полностью на Python и использует такие библиотеки, как Kivy и KivyMD.
По состоянию на май 2026 года следующие сервисы и веб-сайты нельзя разблокировать с помощью NoDPI: