ShadowLink is a next-generation local VPN and secure tunnel application that uses ChaCha20-Poly1305 and X25519 key exchange (the cryptographic primitives of WireGuard) to encrypt traffic. It comes with both a Command Line Interface (CLI) and a Native GUI (via PyQt6) for optimal performance and integration.
- Double Encryption: Traffic is encrypted locally using ephemeral keys before leaving your device.
- DPI Bypass (Obfuscation): Evades Deep Packet Inspection (DPI) on strict university/corporate networks via Fake HTTP handshakes and payload masking.
- Full UDP Support: Tunnels UDP datagrams (e.g., for VoIP and online gaming) over the secure TCP obfuscation layer via SOCKS5 UDP Associate.
- Strict Mode (Kill Switch): Automatically cuts traffic if the secure tunnel drops.
- System-Wide Proxy: Routes all system traffic through the secure tunnel with one click.
- Modern UI: Clean native Windows GUI with real-time stats (PyQt6).
- Cross-Platform: Built natively with Python.
ShadowLink now uses a fully native Python architecture:
- Core Backend:
src/api.py, handling specific encryption, connection tunnels, and socket operations. - CLI Frontend:
src/cli.py, a lightweight command line application. - GUI Frontend:
src/gui.py, a native Windows desktop GUI usingPyQt6.
| Feature | Standard SOCKS5 Proxy | ShadowLink |
|---|---|---|
| Encryption | None (Usually plaintext) | ChaCha20-Poly1305 (WireGuard) |
| Key Management | Static Password / None | Ephemeral X25519 (New key per session) |
| Purpose | IP Masking | DPI Obfuscation & Layered Security |
| Dependency | Remote Server | Local-Only (Server runs on your localhost) |
Why use this locally? It isolates your application traffic from the rest of the OS until it is fully encrypted. Even if malware on your PC packet-sniffs your network card, they only see the encrypted ShadowLink traffic, not the raw application data.
- Performance Overhead: Double encryption (ShadowLink + ProtonVPN) adds a small amount of latency and CPU overhead.
- Manual Proxy Config: You must configure your browser/app to use the provided SOCKS5 proxy if not using System-Wide mode.
- Python 3.10+
# Install Python dependencies
pip install -r requirements.txtFor a lightweight, terminal-based experience:
python src/cli.pyFor a fully native Windows desktop graphical interface:
python src/gui.pyTo verify the encryption implementation (X25519 + ChaCha20-Poly1305), run the included verification script
python src/verify_encryption.pyThis script simulates a full handshake and encryption cycle, printing the keys and ciphertext to the console for inspection.
MIT