Skip to content

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
Step-by-step guide: how to use shadowsocksInstall, first run, examples, tips and FAQs

How to get it

  1. 1

    Install with a package manager

    You'll need: Rust toolchain with cargo (for cargo install)

    Install from crates.io

    cargo install shadowsocks-rust

    Install with Homebrew (macOS and Linux)

    brew install shadowsocks-rust
  2. 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. 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

ProjectStarsTypeLevelUpdatedBest for
shadowsocks-rust (this)11kCLIintermediate4 days agoDevelopers who want a native Rust build of shadowsocks
v2ray-core46.9kOtheradvanced2 months agoDevelopers who want to read the source of a Go proxy platform
v2ray-core34.7kOtheradvanced5 days agoDevelopers who want to build and configure their own proxy server
gost18.3kCLIintermediate2 months agoDevelopers who want a single binary to run a local or remote SOCKS5 or HTTP proxy
hysteria22.8kAppintermediate10 days agoPeople on networks with heavy packet loss who want a faster proxy connection
gitleaks30.6kCLIbeginner9 days agoDevelopers 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.