Shadowsocks is a cross-platform, Open Source encryption protocol project allowing for secure and anonymous web surfing.
Shadowsocks is not a proxy on its own. Generally, the client software connects to a third-party SOCKS5 proxy, speaking the Shadowsocks language on the machine it is running on. Internet traffic can then be directed towards, similar to an SSH tunnel. But unlike an SSH tunnel, Shadowsocks can also proxy UDP traffic.
The Shadowsocks local component (ss-local) acts like a traditional SOCKS5 server and provides proxy service to clients. It encrypts and forwards data streams and packets from the client to the Shadowsocks remote component (ss-remote), decrypting and forwarding to the target. Replies from target are similarly encrypted and relayed by ss-remote back to ss-local, decrypting, and eventually returning to the original client.
Even though the Shadowsocks description makes it appear complicated, it is designed to be an easy option for those who need to circumvent all kinds of restrictions and browse anonymously.