{"id":50103139,"url":"https://github.com/GVCoder09/NoDPI","last_synced_at":"2026-06-09T00:00:49.653Z","repository":{"id":270233480,"uuid":"909708155","full_name":"GVCoder09/NoDPI","owner":"GVCoder09","description":"NoDPI is a utility for bypassing the DPI (Deep Packet Inspection)","archived":false,"fork":false,"pushed_at":"2026-06-01T10:42:23.000Z","size":19675,"stargazers_count":1483,"open_issues_count":2,"forks_count":102,"subscribers_count":24,"default_branch":"main","last_synced_at":"2026-06-01T12:24:37.802Z","etag":null,"topics":["anticensorship","censorship-circumvention","deep-packet-inspection","dpi","dpi-bypassing","proxy","python"],"latest_commit_sha":null,"homepage":"https://gvcoder09.github.io/nodpi_site/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"theo0x0/nodpi","license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GVCoder09.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-12-29T14:51:15.000Z","updated_at":"2026-06-01T12:03:18.000Z","dependencies_parsed_at":null,"dependency_job_id":"10c794ad-b12e-431c-9c3c-91e2f8ac1ddc","html_url":"https://github.com/GVCoder09/NoDPI","commit_stats":null,"previous_names":["gvcoder09/nodpi"],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/GVCoder09/NoDPI","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GVCoder09%2FNoDPI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GVCoder09%2FNoDPI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GVCoder09%2FNoDPI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GVCoder09%2FNoDPI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GVCoder09","download_url":"https://codeload.github.com/GVCoder09/NoDPI/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GVCoder09%2FNoDPI/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34085321,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-08T02:00:07.615Z","response_time":111,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["anticensorship","censorship-circumvention","deep-packet-inspection","dpi","dpi-bypassing","proxy","python"],"created_at":"2026-05-23T09:00:21.140Z","updated_at":"2026-06-09T00:00:49.647Z","avatar_url":"https://github.com/GVCoder09.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cp\u003e\n    \u003ca href=\"#\"\u003e\u003cimg src=\"./assets/ico.png\" height=\"150px\" alt=\"logo\" /\u003e\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n# NoDPI\n\u003cb\u003e\u003ci\u003eSay NO to blocking!\u003c/b\u003e\u003c/i\u003e\n\n[![Visitors](https://visitor-badge.laobi.icu/badge?page_id=GVCoder09.NoDPI)](https://github.com/GVCoder09/NoDPI)\n[![License: GPL-3.0](https://img.shields.io/badge/License-GPL3.0-yellow.svg)](https://www.gnu.org/licenses/gpl-3.0.txt)\n[![GitHub Release](https://img.shields.io/github/v/release/GVCoder09/nodpi)](https://github.com/GVCoder09/NoDPI)\n[![Github All Releases](https://img.shields.io/github/downloads/GVCoder09/nodpi/total.svg)](https://github.com/GVCoder09/NoDPI)\n[![Github Latest Release](https://img.shields.io/github/downloads/GVCoder09/nodpi/latest/total.svg)](https://github.com/GVCoder09/NoDPI)\n[![GitHub Stars](https://img.shields.io/github/stars/GVCoder09/nodpi.svg?style=dark)](https://github.com/GVCoder09/NoDPI)\n[![GitHub Forks](https://img.shields.io/github/forks/GVCoder09/nodpi.svg?style=dark)](https://github.com/GVCoder09/NoDPI)\n[![GitHub Last commit](https://img.shields.io/github/last-commit/GVCoder09/nodpi.svg?style=dark)](https://github.com/GVCoder09/NoDPI)\n[![GitHub Pages](https://img.shields.io/badge/Website-Live-green?style=flat\u0026logo=github)](https://gvcoder09.github.io/nodpi_site/)\n\n\u003e [!IMPORTANT]\n\u003e This project is a fork of the repository https://github.com/theo0x0/nodpi and is developed independently. Do not confuse with https://github.com/raspabamos/nodpi !\n\n\u003e [!NOTE]\n\u003e This version is for desktop systems. **The Android version is available here:** https://github.com/GVCoder09/NoDPI4Android\n\n🌐 **[Website \u0026 Documentation](https://gvcoder09.github.io/nodpi_site/)** - user-friendly guide and overview\n\n**Read this in other languages / Читайте на других языках**\n- **[English](README.md)**\n- [Русский](README.ru.md)\n\n## Table of Content\n\n- [NoDPI](#nodpi)\n  - [Table of Content](#table-of-content)\n  - [Description](#description)\n    - [How does this work](#how-does-this-work)\n    - [Key advantages and features](#key-advantages-and-features)\n    - [Sites currently unavailable via NoDPI](#sites-currently-unavailable-via-nodpi)\n    - [Alternatives](#alternatives)\n  - [Terms of Use and Disclaimer](#terms-of-use-and-disclaimer)\n  - [Quick start](#quick-start)\n    - [Additional Blacklists](#additional-blacklists)\n    - [Add to startup in Windows and Linux](#add-to-startup-in-windows-and-linux)\n    - [Supported arguments](#supported-arguments)\n    - [Running on Windows 7](#running-on-windows-7)\n  - [Run from source code](#run-from-source-code)\n  - [Building the executable](#building-the-executable)\n  - [Run in Docker](#run-in-docker)\n  - [FAQ](#faq)\n  - [Star History](#star-history)\n\n## Description\n\n NoDPI is a utility designed to bypass DPI (Deep Packet Inspection). What is DPI? DPI is a technology for inspecting network packets based on their content to regulate and filter traffic. It is often used by internet service providers to censor and block access to certain web resources and protocols. The goal of this program is to \"trick\" DPI by modifying network packets, although in reality, this trickery is often simply a consequence of a lack of computing resources and time. \n \n This utility was developed primarily for Russian users as a simpler (but less powerful) replacement for similar tools. In most cases, it gets the job done; in particular, it allows you to use YouTube without any problems.\n\n But unfortunately, the absolute performance of this utility cannot be guaranteed. Some sites, such as YouTube, are good to unlock, while others, as Instagram.com or Facebook.com, require completely different methods for bypassing locks, which are not yet implemented in this utility from their low-leveling and difficulty. Sometimes, the performance of certain sites can also depend on the provider - how it blocks the site and what technical means applies.\n\n[![\"Screenshot\"](./assets/screenshot.png)]()\n\n### How does this work\n\nNoDPI launches a proxy server on your computer through which you direct http(s) traffic. The program intercepts ClientHello of outing connections and fragments them according to one of the following methods:\n\n*Fragmentation by SNI (by default)*\n\nThe packet contains a field containing the SNI record. The ClientHello is split into several TLS records: the pre-SNI portion, the SNI character-by-character, and the post-SNI portion. Each portion is appended with a header indicating the ClientHello type, and then the entire packet is sent in a single packet.\n\n*Random fragmentation*\n\nClienthello is divided into several parts of random length. Each part is glued with the prefixes of the type of Clienthello and then all this is sent in one package.\n\nAlso regardless of the method, the TLS version is replaced by version 1.3, which is the most modern (but this does not mean that your data begins to be transmitted according to the specifications of this version). All this together allows you to get around the lock. Apparently DPI does not yet have the necessary capacities to unravel this \"ball\" and simply ignore such traffic, saving time and effort. But it is possible that soon these methods will not be workers.\n\n\u003e [!IMPORTANT]\n\u003e NoDPI only works with HTTPS traffic. He can also take HTTP traffic, but purely for compatibility - sites working through this outdated protocol are practically not subject to unlock and the program simply sends traffic to the addressee.\n\nNoDPI does not collect and does not send any data about you, does not use any third -party programs and libraries, does not interfere in the system processes and does not require administrator rights to work.\n\nThe entire NoDPI code is written exclusively on the Python and uses only its standard library.\n\n### Key advantages and features\n\n- Open source\n- Easy to use, launch, and configure. The program has an intuitive interface. Using the utility requires no special knowledge; it can be launched by any user without administrator rights.\n- The program works with a list of blocked domains and can automatically detect blocked websites.\n- Cross-platform support ensures stable operation on Windows/Linux/MacOS. An Android version is also [available](https://github.com/gvcoder09/nodpi4android).\n- The program can be integrated into a corporate network and used by staff, rather than just an individual.\n- Supports error and access logging. You can see who visited specific websites and when.\n- Ability to add yourself to autostart on Windows/Linux\n\n### Sites currently unavailable via NoDPI\n\nAs of February 2026, the following services and websites cannot be unblocked using NoDPI:\n- Instagram\n- Facebook\n- X (Twitter)\n- Telegram\n- WhatsApp \n- Voice and video in Discord\n\nPlease use [GoodbyeDPI](https://github.com/ValdikSS/GoodbyeDPI) by @ValdikSS or another tools. All sites blocked by IP address are also unavailable.\n\n### Alternatives\n\n- **[GoodbyeDPI](https://github.com/ValdikSS/GoodbyeDPI)** by @ValdikSS (for Windows)\n- **[zapret](https://github.com/bol-van/zapret)** by @bol-van (for MacOS, Linux and Windows)\n- **[Green Tunnel](https://github.com/SadeghHayeri/GreenTunnel)** by @SadeghHayeri (for MacOS, Linux and Windows)\n- **[DPI Tunnel CLI](https://github.com/nomoresat/DPITunnel-cli)** by @zhenyolka (for Linux and routers)\n- **[DPI Tunnel for Android](https://github.com/nomoresat/DPITunnel-android)** by @zhenyolka (for Android)\n- **[PowerTunnel](https://github.com/krlvm/PowerTunnel)** by @krlvm (for Windows, MacOS and Linux)\n- **[PowerTunnel for Android](https://github.com/krlvm/PowerTunnel-Android)** by @krlvm (for Android)\n- **[SpoofDPI](https://github.com/xvzc/SpoofDPI)** by @xvzc (for macOS and Linux)\n- **[SpoofDPI-Platform](https://github.com/r3pr3ss10n/SpoofDPI-Platform)** by @r3pr3ss10n (for Android, macOS, Windows)\n- **[GhosTCP](https://github.com/macronut/ghostcp)** by @macronut (for Windows)\n- **[ByeDPI](https://github.com/hufrea/byedpi)** for Linux/Windows + **[ByeDPIAndroid](https://github.com/dovecoteescapee/ByeDPIAndroid/)** for Android (no root)\n- **[youtubeUnblock](https://github.com/Waujito/youtubeUnblock/)** by @Waujito (for OpenWRT/Entware routers and Linux)\n\n## Terms of Use and Disclaimer\n\n\u003e [!WARNING]\n\u003e By using this software in any form or distributing it, you accept the following terms of use and disclaimer\n\nThe developer and/or supplier of this software shall not be liable for any loss or damage, including but not limited to direct, indirect, incidental, punitive or consequential damages arising out of the use of or inability to use this software, even if the developer or supplier has been advised of the possibility of such damages.\n\nThe developer and/or supplier of this software shall not be liable for any legal consequences arising out of the use of this software. This includes, but is not limited to, violation of laws, rules or regulations, as well as any claims or suits arising out of the use of this software. The user is solely responsible for compliance with all applicable laws and regulations when using this software.\n\nThe developer and/or supplier of this software shall not be liable for any loss or damage arising out of the unauthorized use of this software. Unauthorized use includes, but is not limited to, using the software for illegal purposes, infringing copyrights, patents, trademarks or other intellectual property rights, or using the software in violation of the license terms of the software.\n\nThis software may not be used for illegal or unlawful purposes. Any use of the software for illegal activities, including but not limited to fraud, hacking, privacy violation, distribution of malware or any other actions contrary to the code and regulations is strictly prohibited. The user is fully responsible for any legal consequences arising from the use of this software for illegal purposes.\n\nYour use of this software constitutes your agreement to the terms of this disclaimer. If you do not agree to these terms, you must stop using this software immediately.\n\n## Quick start\n\n1) Download the latest version for your OS from [the Releases page](https://github.com/GVCoder09/NoDPI/releases) and unzip it\n2) Go to the directory with the unzipped utility and run it with the command `nodpi.exe --blacklist blacklist.txt` in Windows or `./nodpi --blacklist ./blacklist.txt` in Linux. You can replace the file `blacklist.txt` with your own file. **If the blacklist file is not specified, the program will search for the file `blacklist.txt` in the current directory by default.**\n3) In the browser or system settings, set the proxy to 127.0.0.1:8881\n4) Enjoy!\n\n\u003e [!IMPORTANT]\n\u003e Don't forget to disable the proxy in your system or browser settings after closing the program!\n\nPlease report any problems and malfunctions to us on [the Issues page](https://github.com/GVCoder09/NoDPI/issues)\n\n### Additional Blacklists\n\nBy default, a blacklist containing YouTube-only domains is used. Additional lists can be found [here](https://github.com/GVCoder09/NoDPI/tree/main/blacklists).\n\n### Add to startup in Windows and Linux\n\n\u003e [!NOTE]\n\u003e This option is only available in executable versions\n\n\u003e [!IMPORTANT]\n\u003e Make sure the file `blacklist.txt` is located next to the executable file.\n\n1) Run the command `nodpi --install`. The program will be added to startup via the Windows registry (`HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run`) or via `systemd` in Linux\n2) Restart your computer\n3) Enjoy!\n\n### Supported arguments\n\n```\nusage: nodpi [-h] [--host HOST] [--port PORT] [--out-host OUT_HOST] \n[--blacklist BLACKLIST | --no-blacklist | --autoblacklist]\n               [--fragment-method {sni,random}] \n               [--domain-matching {loose,strict}] \n               [--auth-username AUTH_USERNAME] [--auth-password AUTH_PASSWORD] [--log-access LOG_ACCESS] [--log-error LOG_ERROR] \n               [-q] [--start-in-tray]\n               [--install | --uninstall]\n\noptions:\n  -h, --help            show this help message and exit\n  --host HOST           Proxy host\n  --port PORT           Proxy port\n  --out-host OUT_HOST   Outgoing proxy host\n  --blacklist BLACKLIST\n                        Path to blacklist file\n  --no-blacklist        Use fragmentation for all domains\n  --autoblacklist       Automatic detection of blocked domains\n  --fragment-method {sni,random}\n                        Fragmentation method (sni by default)\n  --domain-matching {loose,strict}\n                        Domain matching mode (strict by default)\n  --auth-username AUTH_USERNAME\n                        Username for proxy authentication\n  --auth-password AUTH_PASSWORD\n                        Password for proxy authentication\n  --log-access LOG_ACCESS\n                        Path to the access control log\n  --log-error LOG_ERROR\n                        Path to log file for errors\n  -q, --quiet           Remove UI output\n  --start-in-tray       Start minimized to tray (Windows only)\n  --install             Add proxy to Windows/Linux autostart (only for executable version)\n  --uninstall           Remove proxy from Windows/Linux autostart (only for executable version)\n```\n\n### Running on Windows 7\n\nThere is no ready-to-use build for Windows 7 yet. To run NoDPI on this OS, you will need Python 3.7-3.8. You can also use the [Python embeddable package](https://www.python.org/ftp/python/3.8.8/python-3.8.8-embed-win32.zip), which does not require installation.\n\n## Run from source code\n\n1) Make sure you have Python 3.8 or higher installed. No third-party libraries are required\n2) Clone the repository `git clone https://github.com/GVCoder09/NoDPI.git` or [download the archive](https://github.com/GVCoder09/NoDPI/archive/refs/heads/main.zip) with the source code and unzip it\n3) Go to the main directory and run the code with the command `python3 src/main.py`\n4) In the browser or system settings, set the proxy to 127.0.0.1:8881\n5) Enjoy!\n\nYou can enable error or access logging using parameters `--log_error` and `--log_access`\n\n## Building the executable\n\n1) Make sure you have Python 3.8 or higher installed.\n2) Install pyinstaller: `pip install pyinstaller`\n3) Clone the repository `git clone https://github.com/GVCoder09/NoDPI.git` or [download the archive](https://github.com/GVCoder09/NoDPI/archive/refs/heads/main.zip) with the source code and unzip it\n4) Go to the main directory and run the command `pyinstaller ./nodpi.spec`\n5) The compiled file will be located in ist folder `./dist`\n\n## Run in Docker\n\n1) [Install Docker](https://docs.docker.com/).\n2) Clone the repository: `git clone https://github.com/GVCoder09/NoDPI`\n3) Navigate to the project directory and build the container: \n   ```bash\n   cd NoDPI\n   sudo docker build -t nodpi-proxy .\n   ```\n4) Run the container with the command: \n   ```bash\n   sudo docker run -d \\\n    --name nodpi \\\n    -p 8881:8881 \\\n    -v $(pwd)/blacklist.txt:/tmp/nodpi/blacklist.txt \\\n    nodpi-proxy \\\n    --host 127.0.0.1 \\\n    --port 8881 \\\n    --blacklist /tmp/nodpi/blacklist.txt \\\n    --quiet\n    ```\n5) Enjoy!\n\n## FAQ\n\n*Q: Is using NoDPI legal in Russia?*\n\nA: Yes, its usage is completely legal as of October 2025. However, you can be held administratively liable for advertising and distributing tools designed to circumvent blocking.\n\n*Q: Is it safe?*\n\nA: Yes, using this utility is safe. All traffic sent over HTTPS remains encrypted as it was before. Furthermore, we do not collect any user information.\n\n*Q: Does this program mask my traffic? Can my ISP not see which sites I visit?*\n\nA: No. Unlike a VPN or Tor, this program does not hide your traffic from your Internet Service Provider (ISP). Your ISP can still see the IP addresses of the websites you connect to.\n\n## Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=GVCoder09/NoDPI\u0026type=Date)](https://www.star-history.com/#GVCoder09/NoDPI\u0026Date)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGVCoder09%2FNoDPI","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FGVCoder09%2FNoDPI","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGVCoder09%2FNoDPI/lists"}