
Локальный прокси, который обходит глубокий анализ пакетов (DPI) путем фрагментации TLS-пакетов ClientHello, обеспечивая доступ к заблокированным сайтам без прав администратора.
Say NO to blocking!
[!IMPORTANT] Этот проект является ответвлением репозитория https://github.com/theo0x0/nodpi и разрабатывается независимо от него. Не путайте с https://github.com/raspabamos/nodpi !
[!NOTE] Эта версия предназначена для настольных систем. Версия для Android доступна здесь: https://github.com/GVCoder09/NoDPI4Android
Read this in other languages / Читайте на других языках
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 не собирает и не отправляет никаких данных о вас, не использует сторонние программы и библиотеки, не вмешивается в системные процессы и не требует прав администратора для работы.
Весь код NoDPI написан исключительно на Python и использует только его стандартную библиотеку.
По состоянию на февраль 2026 года следующие сервисы и веб-сайты нельзя разблокировать с помощью NoDPI:
Для них вы можете использовать GoodbyeDPI от @ValdikSS или другие инструменты. Также недоступны все сайты, заблокированные по IP.
[!WARNING] Используя это программное обеспечение в любой форме или распространяя его, вы принимаете следующие условия использования и отказ от ответственности.
Разработчик и/или поставщик данного программного обеспечения не несет никакой ответственности за любые убытки или ущерб, включая, но не ограничиваясь, прямые, косвенные, случайные, штрафные или косвенные убытки, возникшие в результате использования или невозможности использования данного программного обеспечения, даже если разработчик или поставщик были уведомлены о возможности таких убытков.
Разработчик и/или поставщик данного программного обеспечения не несут ответственности за любые юридические последствия, возникшие в результате использования данного программного обеспечения. Это включает, но не ограничивается, нарушение законодательства, правил или нормативных актов, а также любые претензии или иски, возникшие в результате использования данного программного обеспечения. Пользователь несет полную ответственность за соблюдение всех применимых законов и нормативных актов при использовании данного программного обеспечения.
Разработчик и/или поставщик данного программного обеспечения не несут ответственности за любые убытки или ущерб, возникшие в результате неправомерного использования данного программного обеспечения. Неправомерное использование включает, но не ограничивается, использование программного обеспечения для незаконных целей, нарушение авторских прав, патентных прав, торговых марок или других прав интеллектуальной собственности, а также использование программного обеспечения в нарушение условий лицензии данного программного обеспечения.
Данное программное обеспечение не может использоваться в противоправных целях или целях, нарушающих законодательство. Любое использование программного обеспечения для незаконных действий, включая, но не ограничиваясь, мошенничество, взлом, нарушение конфиденциальности, распространение вредоносного ПО или любые другие действия, противоречащие закодательству и нормативным актам, строго запрещено. Пользователь несет полную ответственность за любые юридические последствия, возникшие в результате использования данного программного обеспечения в противоправных целях.
Использование данного программного обеспечения означает ваше согласие с условиями данного отказа от ответственности. Если вы не согласны с этими условиями, вы должны немедленно прекратить использование данного программного обеспечения.
nodpi.exe --blacklist blacklist.txt в Windows или ./nodpi --blacklist ./blacklist.txt в Linux. Вы можете заменить файл blacklist.txt своим. Если файл blacklist не указан, программа по умолчанию будет искать blacklist.txt в текущем каталоге.[!IMPORTANT] Не забудьте отключить прокси-сервер в настройках системы или браузера после закрытия программы!
Пожалуйста, сообщайте нам о любых проблемах и неполадках на странице Issues
По умолчанию используется черный список, содержащий только домены YouTube. Дополнительные списки можно найти здесь.
[!NOTE] Эта опция доступна только в исполняемых версиях.
[!IMPORTANT] Убедитесь, что файл
blacklist.txtнаходится в одной папке с исполняемым файлом.
nodpi --install. Программа будет добавлена в автозагрузку через реестр Windows (HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run) или через systemd в Linux.usage: nodpi [-h] [--host HOST] [--port PORT] [--out-host OUT_HOST]
[--blacklist BLACKLIST | --no-blacklist | --autoblacklist]
[--fragment-method {sni,random}]
[--domain-matching {loose,strict}]
[--auth-username AUTH_USERNAME] [--auth-password AUTH_PASSWORD]
[--log-access LOG_ACCESS] [--log-error LOG_ERROR]
[-q] [--start-in-tray]
[--install | --uninstall]
options:
-h, --help show this help message and exit
--host HOST Proxy host
--port PORT Proxy port
--out-host OUT_HOST Outgoing proxy host
--blacklist BLACKLIST
Path to blacklist file
--no-blacklist Use fragmentation for all domains
--autoblacklist Automatic detection of blocked domains
--fragment-method {sni,random}
Fragmentation method (sni by default)
--domain-matching {loose,strict}
Domain matching mode (strict by default)
--auth-username AUTH_USERNAME
Username for proxy authentication
--auth-password AUTH_PASSWORD
Password for proxy authentication
--log-access LOG_ACCESS
Path to the access control log
--log-error LOG_ERROR
Path to log file for errors
-q, --quiet Remove UI output
--start-in-tray Start minimized to tray (Windows only)
--install Add proxy to Windows/Linux autostart (only for executable version)
--uninstall Remove proxy from Windows/Linux autostart (only for executable version)
Готовой сборки для Windows 7 пока нет. Для запуска NoDPI на этой ОС вам потребуется Python 3.7-3.8. Вы также можете использовать встраиваемый пакет Python, не требующий инсталяции.
git clone https://github.com/GVCoder09/NoDPI.git или скачайте архив с исходным кодом и распакуйте его.python3 src/main.py.Вы можете включить логирование ошибок и доступа с помощью параметров --log_error и --log_access.
pip install pyinstallergit clone https://github.com/GVCoder09/NoDPI.git или скачайте архив с исходным кодом и распакуйте его.pyinstaller ./nodpi.spec./distgit clone https://github.com/GVCoder09/NoDPIcd NoDPI
sudo docker build -t nodpi-proxy .
sudo docker run -d \
--name nodpi \
-p 8881:8881 \
-v $(pwd)/blacklist.txt:/tmp/nodpi/blacklist.txt \
nodpi-proxy \
--host 127.0.0.1 \
--port 8881 \
--blacklist /tmp/nodpi/blacklist.txt \
--quiet
В: Законно ли использование NoDPI в России?
О: Да, его использование полностью законно по состоянию на октябрь 2025 года. Однако вы можете быть привлечены к административной ответственности за рекламу и распространение инструментов, предназначенных для обхода блокировок.
В: Безопасно ли это?
О: Да, использование этой утилиты безопасно. Весь трафик, передаваемый по HTTPS, остаётся зашифрованным, как и раньше. Более того, мы не собираем никакой информации о пользователях.
В: Эта программа маскирует мой трафик? Провайдер не видит какие сайты я посещаю?
О: Нет, в отличии от VPN или Tor, эта программа не скрывает трафик от провайдера. Он по прежнему может видеть IP адреса сайтов, к которым вы обращаетесь.