| Crates.io | dpibreak |
| lib.rs | dpibreak |
| version | 0.2.2 |
| created_at | 2025-12-28 12:50:54.685265+00 |
| updated_at | 2026-01-17 16:48:03.680037+00 |
| description | Simple and efficient DPI circumvention tool in Rust. |
| homepage | https://github.com/dilluti0n/dpibreak |
| repository | https://github.com/dilluti0n/dpibreak.git |
| max_upload_size | |
| id | 2008775 |
| size | 1,312,362 |

[!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.
Enable fake ClientHello packet injection before sending each packet
fragmented. (See --fake section on
dpibreak(1) for more information.)
dpibreak.exe or start_fake.bat to use
fake. (See WINDOWS_GUIDE.txt for more information.)tar -xf DPIBreak-X.Y.Z-x86_64-unknown-linux-musl.tar.gz
cd DPIBreak-X.Y.Z-x86_64-unknown-linux-musl
sudo make install
sudo dpibreak
sudo dpibreak --fake --fake-ttl 8
dpibreak --help
man 1 dpibreak # manual
sudo make uninstall
Available in the GURU repository.
eselect repository enable guru
emaint sync -r guru
emerge --ask net-misc/dpibreak
Install Rust toolchain from https://www.rust-lang.org/learn/get-started.
cargo install dpibreak
libnetfilter_queue development files (e.g.,
libnetfilter-queue-dev on Ubuntu/Debian).# Option 1: Run with full path
sudo ~/.cargo/bin/dpibreak
# Option 2: Symlink to system bin (Recommended)
sudo ln -s ~/.cargo/bin/dpibreak /usr/local/bin/dpibreak
sudo dpibreak
Simply running the program should work without any issues. It requires administrator privileges to run:
sudo dpibreak).dpibreak.exe or start_fake.bat will
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).
See dpibreak(1)#BUGS. Report bugs at https://github.com/dilluti0n/dpibreak/issues.
Release builds and deployments are automated via GitHub Actions. See .github/workflows/release.yml for details. Compilation requires Rust toolchain. See https://www.rust-lang.org/learn/get-started.
Windows:
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 zipballLinux: make tarball
Release zip/tarball should be ready on directory dist.
For introducing the circumvention idea:
Alternative tools:
Useful links:
Copyright 2025-2026 Dilluti0n.
Licensed under GPL-3.0-or-later.
