BlindDPI is a high-performance Rust utility designed to bypass Deep Packet Inspection (DPI) systems using TLS ClientHello fragmentation and SNI spoofing / TTL packet manipulation at the network layer via NFQUEUE.
The tool analyzes incoming/outgoing traffic, extracts Server Name Indication (SNI) hostnames from TLS handshakes, and performs selective split-tunneling based on a customizable whitelist.
-
OS: Linux (Kernel
$\ge 5.0$ ) -
Dependencies:
-
nftables -
libnetfilter_queue(Debian/Ubuntu:sudo apt install libnetfilter-queue-dev build-essential) -
Privileges:
rootaccess (required for raw sockets andiptablesmanipulation).
- Clone the repository:
git clone https://github.com/bypassOS-dev/BlindDPI.git
cd BlindDPI- Compile the binary using
cargo:
cargo build --releaseThe output binary will be located at ./target/release/BlindDPI.
Also you can change domain list and add some domain that is need you! (supports comments using # and empty lines):
# New domain:
example.com
my_site.com
some_site.com
Run the compiled binary with elevated privileges:
sudo ./target/release/BlindDPI
To stop the program, press Ctrl+C. BlindDPI will automatically flush the applied iptables rules and perform a clean exit.
Important
But if something went wrong use this command:
sudo nft delete table inet blind_dpiThank you for downloading and using BlindDPI! This project was built with a lot of passion for low-level networking, performance, and digital freedom.
Blazingly fast & built with love in Rust. 🦀✨
Found a bug, or have an idea to improve it? Feel free to open an Issue or submit a Pull Request! Any feedback and contributions are greatly appreciated.
If you find this tool helpful, don't forget to give it a ⭐ on GitHub!