
shadowsocks
A Rust implementation of the shadowsocks proxy tool, with client and server binaries.shadowsocks/shadowsocks-rust
- Stars
- 11k
- Forks
- 1.5k
- Licence
- MIT
- Language
- Rust
- Last update
- 4 days ago
- Type
- CLI
What it is
shadowsocks-rust is a Rust port of shadowsocks, a tunnel proxy that routes network traffic through a server to get around firewalls. It provides command-line programs: sslocal runs on your machine as a local proxy, and ssserver runs on a remote server. The README also lists optional support for SOCKS4, HTTP, transparent proxying, TUN interfaces and a local DNS server, selected through build features.
- Run sslocal as a local SOCKS5 proxy that forwards your browser or app traffic to a shadowsocks server
- Run ssserver on a remote machine to act as the server end of a shadowsocks setup
- Enable the local-dns feature to run a DNS server that proxies queries by ACL rules
- Use the local-tun feature to route traffic through a TUN interface
Great for
- Developers who want a native Rust build of shadowsocks
- People comfortable running command-line proxy tools on their own machine or server
- Users who need to build only the proxy protocols they want through optional features
- Admins who want to run a shadowsocks server on a Linux machine
Not ideal for
- People who want a point-and-click app: the README describes command-line binaries and build options, not a graphical client (it links third-party GUIs separately)
- Anyone needing deprecated stream ciphers without understanding the risk: the README warns they are UNSAFE and gates them behind a feature flag
- Users who need a guarantee of legal or circumvention outcomes: the README does not address this
How to get it
- 1
Install with a package manager
You'll need: Rust toolchain with cargo (for cargo install)
Install from crates.io
cargo install shadowsocks-rustInstall with Homebrew (macOS and Linux)
brew install shadowsocks-rust - 2
Run it
- Install the binaries using one of the commands above.
- Find sslocal and ssserver in $CARGO_HOME/bin if you installed with cargo.
- Prepare a shadowsocks server URL or configuration file; the README does not show the full format in the excerpt provided.
- Start sslocal with your server settings and point your apps at the local proxy address it listens on.
- 3
Get the most out of it
- Enable only the optional features you need (for example local-http or local-tun) to keep builds focused, as described in the feature list.
- Use the aead-cipher-2022 feature for AEAD-2022 ciphers (SIP022) instead of deprecated stream ciphers.
- Use SIP008 online configuration delivery via the local-online-config feature if you manage server lists remotely.
- Pick a memory allocator feature such as jemalloc or mimalloc if you want to experiment with performance; the README does not provide benchmarks.
Downloads
Strengths
- Written in Rust and distributed as static-linked release builds, per the README
- Offers many optional features (HTTP, SOCKS4, redir, DNS, TUN, SIP008 config delivery) you can enable as needed
- Available through several package channels including crates.io, Homebrew and snap
Trade-offs
- Setup relies on the command line and config files, which may be hard for non-experts
- Some features and ciphers are deprecated or non-standard and need explicit opt-in
- The README is truncated here, so detailed configuration and Docker usage are not covered in this analysis
How it compares
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| shadowsocks-rust (this) | 11k | CLI | intermediate | 4 days ago | Developers who want a native Rust build of shadowsocks |
| v2ray-core | 46.9k | Other | advanced | 2 months ago | Developers who want to read the source of a Go proxy platform |
| v2ray-core | 34.7k | Other | advanced | 5 days ago | Developers who want to build and configure their own proxy server |
| gost | 18.3k | CLI | intermediate | 2 months ago | Developers who want a single binary to run a local or remote SOCKS5 or HTTP proxy |
| hysteria | 22.8k | App | intermediate | 10 days ago | People on networks with heavy packet loss who want a faster proxy connection |
| gitleaks | 30.6k | CLI | beginner | 9 days ago | Developers who want to catch accidentally committed credentials before they reach a shared repository |
Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.