Getting Started
First, you need to pick a shadowsocks server and client implementation. Any implementation below is compatible with each other.
CLI implementations
- shadowsocks: The original Python implementation.
- shadowsocks-libev: Lightweight C implementation for embedded devices and low end boxes. Very small footprint (several megabytes) for thousands of connections.
- go-shadowsocks2: Go implementation focusing on core features and code reusability.
- shadowsocks-rust: A rust port of shadowsocks.
Feature comparison
ss | ss-libev | go-ss2 | ss-rust | |
---|---|---|---|---|
TCP Fast Open | ✓ | ✓ | ✗ | ✓ |
Multiuser | ✓ | ✓ | ✗ | ✓ |
Management API | ✓ | ✓ | ✗ | ✓ |
Redirect mode | ✗ | ✓ | ✓ | ✓ |
Tunnel mode | ✓ | ✓ | ✓ | ✓ |
UDP Relay | ✓ | ✓ | ✓ | ✓ |
MPTCP | ✗ | ✓ | ✗ | ✓ |
AEAD ciphers | ✓ | ✓ | ✓ | ✓ |
Plugin | ✗ | ✓ | ✗ | ✓ |
Plugin UDP (Experimental) | ✗ | ✗ | ✗ | ✓ |
GUI Clients
- shadowsocks-android: Android client.
- shadowsocks-windows: Windows client.
- shadowsocksX-NG: MacOS client.
- shadowsocks-qt5: Cross-platform client for Windows/MacOS/Linux.
Feature comparison
ss-win | ssx-ng | ss-qt5 | ss-android | |
---|---|---|---|---|
System Proxy | ✓ | ✓ | ✗ | ✓ |
CHNRoutes | ✓ | ✓ | ✗ | ✓ |
PAC Configuration | ✓ | ✓ | ✗ | ✗ |
Profile Switching | ✓ | ✓ | ✓ | ✓ |
QR Code Scan | ✓ | ✓ | ✓ | ✓ |
QR Code Generation | ✓ | ✓ | ✓ | ✓ |