Censorship circumvention · 1 min read

Shadowsocks Setup Guide: Server and Clients

Shadowsocks is a lightweight encrypted proxy designed to slip past network filtering. This guide walks through installing a server on a VPS, configuring it securely, and connecting clients — with honest notes on modern DPI and where it fits.

What Shadowsocks is and is not

Shadowsocks is an open-source, encrypted proxy that behaves like a SOCKS5 proxy but wraps traffic in a cipher with no obvious protocol signature. It was created specifically to circumvent censorship, and for years its unremarkable-looking traffic slipped past deep packet inspection that would catch a normal VPN. It is fast, light, and easy to run on a cheap VPS.

Honest framing: Shadowsocks is not a full VPN — it proxies the apps you point at it, not your whole device by default. Modern DPI can sometimes detect plain Shadowsocks, which is why obfuscation plugins (like v2ray-plugin or simple-obfs) exist to disguise it further, and why newer tools like VLESS+Reality emerged. Always use a modern AEAD cipher (for example chacha20-ietf-poly1305 or aes-256-gcm); the old stream ciphers are broken and detectable. s4m does not run Shadowsocks as a service — you host it on your own server or VPS.

Why choose Shadowsocks over a plain VPN in the first place? On a network that fingerprints and blocks WireGuard or OpenVPN via deep packet inspection, a standard tunnel simply will not connect, while Shadowsocks traffic looks like ordinary encrypted data with no recognisable protocol handshake. It is also lightweight enough to run comfortably on the cheapest VPS and to keep mobile battery use reasonable. The trade-off is scope and maintenance: you route apps individually rather than the whole system, and you are responsible for keeping the server, cipher choice and any obfuscation plugin up to date as detection evolves.

Stand up a Shadowsocks server

On a fresh VPS (or an s4m private server) with root access.

Install a server implementation

The Rust implementation shadowsocks-rust is a common, actively maintained choice. Install its ssserver binary from your package manager or the project's releases.

Write a config with an AEAD cipher

Create /etc/shadowsocks/config.json with your server address, a high random port, a strong password and a modern AEAD method. Never reuse a weak stream cipher.

Open the firewall and start the service

Allow the chosen TCP (and UDP, for full support) port, then run ssserver as a systemd service so it survives reboots.

Connect a client

Install a Shadowsocks client (desktop or mobile), enter the same server, port, password and cipher, and route your apps through it. Verify your exit IP after connecting.

Example server config

A minimal shadowsocks-rust config.json. Replace the password and port; keep the AEAD cipher. Do not translate or reuse these placeholder values in production.

json
{
  "server": "0.0.0.0",
  "server_port": 8388,
  "password": "CHANGE_ME_to_a_long_random_secret",
  "method": "chacha20-ietf-poly1305",
  "mode": "tcp_and_udp",
  "timeout": 300
}

# Start it (shadowsocks-rust):
#   ssserver -c /etc/shadowsocks/config.json
# Client uses the SAME server IP, port, password and method.
Share this page
FAQ

Questions, answered

Is Shadowsocks a VPN?

No. Shadowsocks is an encrypted proxy: it routes the apps you configure to use it, not your entire device by default. A VPN like WireGuard tunnels all traffic system-wide. Shadowsocks trades that breadth for lightness and censorship-resistant traffic that is harder to fingerprint.

Which Shadowsocks cipher should I use?

A modern AEAD cipher such as chacha20-ietf-poly1305 or aes-256-gcm. The older stream ciphers (like rc4-md5 or aes-256-cfb) are cryptographically broken and easier for DPI to detect. Never use them for a censorship-circumvention setup.

Can DPI still detect Shadowsocks?

Sometimes, yes. Plain Shadowsocks traffic is unremarkable but not invisible, and advanced DPI has learned to flag it. Obfuscation plugins help, and some users have moved to VLESS+Reality for tougher networks. As always, no method guarantees it gets through.

Host Shadowsocks on your own box

s4m provides a private VPN server and dedicated IP you fully control — ideal for self-hosting Shadowsocks or other obfuscation tools. No-logs by design, anonymous accounts, crypto accepted.

People found this page by searching for

Real search phrases this page answers — the linked ones open the page that covers them in depth.