ShadowLink is a next-generation Decentralized VPN (dVPN) built in Go. Moving away from traditional client-server architectures, ShadowLink utilizes Multi-hop Onion Routing and a Distributed Hash Table (DHT) to provide a completely serverless, highly secure, and untraceable network tunnel.
- Multi-Hop Architecture: Traffic bounces through Entry, Relay, and Exit nodes. No single node knows both your IP and your destination, protecting you from tracking.
- XChaCha20-Poly1305 AEAD: State-of-the-art authenticated encryption with random nonces ensures robust security against tampering and replay attacks.
- DPI Evasion: Multi-layered encryption prevents Deep Packet Inspection from identifying traffic type.
- Serverless Node Discovery: Uses
libp2pKademlia DHT to find available nodes on the network dynamically. No central tracking servers to shut down. - Community Driven: Purely free network. Anyone can run an Entry, Relay, or Exit node to contribute bandwidth.
- Written in Go: Extremely fast, memory-safe, and highly concurrent networking.
- Universal Support: Compiles natively to Windows, macOS, Linux, and can be ported to iOS/Android via
gomobile. - System-Wide Proxy: Built-in OS proxy configuration (SOCKS5).
- Go 1.21+ (for building from source)
- Git
git clone https://github.com/TUSHAR91316/ShadowLink.git
cd ShadowLink
# Download dependencies
go mod tidy
# Build the binary
go build -o shadowlinkShadowLink operates as a unified node. You can run it in different roles using command-line flags.
Start an Entry Node (Client) with System Proxy:
./shadowlink --role entry --socks 1080 --sysproxyThis starts a local SOCKS5 server on port 1080 and configures your OS to route traffic through it.
Start a Relay Node:
./shadowlink --role relay --port 9001Start an Exit Node:
./shadowlink --role exit --port 9002ShadowLink has been completely rewritten from Python to Go.
- Legacy Code: The old Python Client-Server architecture (v1) has been archived in the
legacy_python/directory. - New Core: The new architecture embraces P2P networking via
libp2pand replaces basic XOR obfuscation with strictx/cryptostandards.
As a decentralized network, the strength of ShadowLink relies on the community.
- Fork the repository
- Create a feature branch:
git checkout -b feature-name - Commit changes and submit a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.