DPIBreak

[!IMPORTANT]
Please make sure your usage complies with applicable laws and regulations. This software is provided "AS IS", WITHOUT ANY WARRANTY, to the extent permitted by applicable law; see
COPYING(GPLv3 §§15–17).
Simple and efficient tool for circumventing Deep Packet Inspection (DPI) on HTTPS connections. It fragments the TCP packet carrying the TLS ClientHello so that certain DPI devices cannot extract the Server Name Indication (SNI) field and identify the destination site.
It only applies to the packets carrying TLS ClientHello; Other traffic is not even queued to userspace and passes through the kernel normally, unmodified. So, it is fast and does not affect core performance (e.g., video streaming speed) users may be concerned about.
Features
fake
Enable fake ClientHello packet injection before sending each packet
fragmented. (See --fake section on
dpibreak(1) for more information.)
Quickstart
Windows
- Download and unzip the release from https://github.com/dilluti0n/dpibreak/releases/latest.
- Double-click
dpibreak.exeorstart_fake.batto use fake. (SeeWINDOWS_GUIDE.txtfor more information.)
Linux
- Download release tarball from https://github.com/dilluti0n/dpibreak/releases/latest.
- Extract and install:
- To run:
- To uninstall:
Linux with Cargo (crates.io)
Install Rust toolchain from https://www.rust-lang.org/learn/get-started.
-
Requirements:
libnetfilter_queuedevelopment files (e.g.,libnetfilter-queue-devon Ubuntu/Debian). -
Note: Since cargo installs to user directory, sudo might not see it. Use full path or link it:
# Option 1: Run with full path
# Option 2: Symlink to system bin (Recommended)
How to use
Simply running the program should work without any issues. It requires administrator privileges to run:
- On Linux, you must run it with root privileges (e.g.,
sudo dpibreak). - On Windows, double-clicking
dpibreak.exeorstart_fake.batwill automatically prompt for administrator permission. After it starts, a console window will open. You must keep this window open while using the program.
To stop using the program, press Ctrl+C or close the window; it will exit without leaving any global state behind. For more detailed information, please refer to dpibreak(1).
Reporting issues
See dpibreak(1)#BUGS. Report bugs at https://github.com/dilluti0n/dpibreak/issues.
To build
- Install Rust toolchain from https://www.rust-lang.org/learn/get-started.
- Clone this repo.
- (Windows) Download
WinDivert-2.2.2
and unzip it to the project root. Make sure
WinDivert.dllandWinDivert64.sysare located in.../dpibreak/WinDivert-2.2.2-A/x64. - Build it.
- The binary will be available at
./target/release/dpibreak(.exe). - (Windows) Make sure
WinDivert.dllandWinDivert64.sysare in the same folder asdpibreak.exe. (Copy them fromWinDivert-2.2.2-A/x64)
To produce release zip/tarball
Release builds and deployments are automated via GitHub Actions. See release.yml for details.
- Windows:
- Download
WinDivert:
Invoke-WebRequest -Uri "https://reqrypt.org/download/WinDivert-2.2.2-A.zip" -OutFile WinDivert.zip Expand-Archive -Path WinDivert.zip -DestinationPath .\ Remove-Item .\WinDivert.zip.\build.ps1 zipball
- Download
- Linux:
make tarball
Release zip/tarball should be ready on directory dist.
Built with
DPIBreak is built upon these frameworks:
- Netfilter-queue - The user-space packet queuing system for Linux.
- WinDivert - A user-mode packet interception library for Windows.
Thanks
DPIBreak's creation was inspired by these great free software:
- GoodByeDPI by ValdikSS: For its design which shaped the project's UX.
For introducing the circumvention idea:
See more
Alternative tools:
- Green Tunnel by SadeghHayeri (for MacOS, Linux and Windows)
- DPI Tunnel CLI by zhenyolka (for Linux and routers)
- DPI Tunnel for Android by zhenyolka (for Android)
- PowerTunnel by krlvm (for Windows, MacOS and Linux)
- PowerTunnel for Android by krlvm (for Android)
- GhosTCP by macronut (for Windows)
- ByeDPI for Linux/Windows
- ByeDPIAndroid for Android (no root)
- ByeByeDPI for Android
- youtubeUnblock by Waujito (for OpenWRT/Entware routers and Linux)
- NoDPI for Windows and Linux
Useful links:
- https://geneva.cs.umd.edu/papers/geneva_ccs19.pdf
- https://github.com/bol-van/zapret/blob/master/docs/readme.en.md
- https://deepwiki.com/bol-van/zapret/3-dpi-circumvention-techniques
- https://www.ias.edu/security/deep-packet-inspection-dead-and-heres-why
- https://www.cloudflare.com/learning/ssl/what-happens-in-a-tls-handshake/
Notice
Copyright 2025-2026 Dilluti0n.
Licensed under GPL-3.0-or-later.
