Skip to main content
Get TurkeyDPI up and running in under a minute to bypass SNI-based blocking.

Installation

1

Install Rust

TurkeyDPI requires Rust 1.70 or later:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
2

Clone and install

git clone https://github.com/1etu/turkeydpi.git
cd turkeydpi
cargo install --path cli
This installs the turkeydpi binary to ~/.cargo/bin/.
3

Start the bypass proxy

turkeydpi bypass --preset aggressive -v
The proxy listens on 127.0.0.1:8844 by default.
The aggressive preset is recommended for maximum compatibility. It uses the smallest fragments and adds timing delays.
4

Configure your browser

Set your system or browser proxy to:
  • Host: 127.0.0.1
  • Port: 8844
  • Protocol: HTTP/HTTPS proxy (not SOCKS)
Settings → System → Open proxy settings → Manual proxy configuration
  • HTTP Proxy: 127.0.0.1:8844
  • HTTPS Proxy: 127.0.0.1:8844
  • Check “Use this proxy for all protocols”
5

Test the connection

Visit a blocked website (e.g., discord.com, twitter.com) in your browser. If it loads, TurkeyDPI is working!Watch the terminal for real-time logs showing packet fragmentation:
[INFO] Proxy listening on 127.0.0.1:8844
[DEBUG] New connection: discord.com:443
[DEBUG] Detected TLS ClientHello, SNI: discord.com
[DEBUG] Fragmenting packet: 517 bytes → 3 fragments
[DEBUG] Fragment 1: 5 bytes
[DEBUG] Fragment 2: 5 bytes  
[DEBUG] Fragment 3: 507 bytes
[DEBUG] Connection established

ISP-Specific Presets

If the aggressive preset causes issues, try your ISP’s optimized preset:
turkeydpi bypass --preset turk-telekom -v
Each preset is tuned for specific DPI implementations:
PresetSplit PositionFragment SizeDelayBest For
Aggressive05 bytes10msMaximum compatibility
Turk Telekom220 bytes0msTT customers
Vodafone330 bytes100μsVodafone TR
Superonline115 bytes0msSuperonline

Troubleshooting

  • Verify the proxy is running: curl -x http://127.0.0.1:8844 http://example.com
  • Check firewall settings allow localhost connections
  • Try a different preset: --preset turk-telekom
  • Your ISP may use DNS poisoning. TurkeyDPI includes DoH support by default
  • Try the aggressive preset: --preset aggressive
  • Check logs with -v flag for errors
  • Verify proxy settings in your browser
  • The aggressive preset adds 10ms delay. Try turk-telekom or superonline (0ms delay)
  • Disable verbose logging (remove -v)
  • Check your internet connection speed
TurkeyDPI is a transparent proxy and doesn’t intercept TLS. Certificate errors indicate a different issue:
  • Check your system time is correct
  • Verify DNS resolution is working
  • Try clearing browser cache and SSL state

Next Steps

Usage Guide

Learn all CLI commands and options

ISP Presets

Deep dive into preset configurations

macOS App

Use the native menu bar application

How It Works

Understand the bypass techniques

Advanced: Daemon Mode

For persistent operation, run TurkeyDPI as a daemon:
# Start daemon with proxy backend
turkeydpi run --proxy --listen 127.0.0.1:8844

# In another terminal, check status
turkeydpi status

# View live statistics
turkeydpi stats
Daemon mode provides:
  • Background operation
  • IPC control commands
  • Configuration hot-reloading
  • Statistics and health monitoring
See Daemon Control for details.

Build docs developers (and LLMs) love