Shadowsocks

Shadowsocks is a self-hosted SOCKS5 proxy that uses the open-source Shadowsocks encryption protocol.

  • Network Services
  • Security
  • Tools & Utilities
Shadowsocks is a self-hosted SOCKS5 proxy that uses the open-source Shadowsocks encryption protocol. It runs a lightweight server that accepts connections from compatible SOCKS or Shadowsocks clients and forwards their traffic through an encrypted channel. It is useful for homelab users who need a simple proxy server for remote access or privacy-focused networking. The container has no web interface; configuration is set with container variables, and logs should be checked to confirm operation.

Platform availability

Available on 1 of 6 install platforms

  • Unraid
  • TrueNAS (not listed)
  • Umbrel (not listed)
  • ZimaOS (not listed)
  • Proxmox (not listed)
  • Helm (not listed)

Also on Docker Hub and GitHub

Health score

75/100 Good

Maintained
88last commit 26 days ago
Popular
8416,181 GitHub stars
Easy to install
351 install platform, install notes, Docker image
Light to run
801 GB minimum RAM, runs on ARM
How is this calculated?

A 0-100 score computed nightly from four factors: maintained (40%: recent commits and steady activity), popular (25%: GitHub stars, log scale), easy to install (20%: platforms, install notes, setup guides, Docker image) and light to run (15%: minimum RAM, ARM support). Factors without data are left out and the rest are rescaled.

Availability: platform listings confirmed today, links checked 11 days ago

GitHub stars
16,181
Open issues
32
Last commit
2026-09-12
Latest release
v3.3.6
License
GPL-3.0
Activity
declining

Checked 3 days ago - source: GitHub (shadowsocks/shadowsocks-libev)

Resources & Compatibility

Minimum requirements: 1 GB RAM, 1 CPU core(s), 10 GB disk. ARM (e.g. Raspberry Pi) is supported.

Checked 10 days ago - source: Docker Hub image tags and published docs

First-install notes

  • Install shadowsocks-libev on Debian/Ubuntu Run 'sudo apt update' and then 'sudo apt install shadowsocks-libev'. This puts the ready-to-run server/client on your machine instead of making you compile pieces yourself, which can fail for beginners. source
  • Match obfs settings on server and client If you use obfuscation, start the server with obfs-server and the client with obfs-local using the same option like obfs=http. If one side is missing or the options differ, the connection will fail because the two ends cannot understand each other. source
  • Raise the connection limit before start Run 'ulimit -n 51200' before starting the Shadowsocks server. This allows it to keep more connections open at once, so it is less likely to drop users when traffic gets busy. source
  • Configuration via Environment Variables Shadowsocks has no web interface. Set the listen address, port, password, encryption method, and obfuscation options using container environment variables. After starting the container, check the logs to confirm the proxy is listening on the expected port. source

Fetched yesterday - each note links to its source

Alternatives (12)

  • Geph - Geph is a tool that helps you bypass internet blocks and censorship.
  • GoodbyeDPI - GoodbyeDPI is a Deep Packet Inspection (DPI) circumvention tool that helps home-network users access websites blocked by government or prov…
  • Hyphanet - Hyphanet (former Freenet) is free software which lets you anonymously share files, browse and publish "freesites" (web sites acce…
  • I2P - I2P (Invisible Internet Protocol) is a universal anonymous network layer.
  • Mullvad VPN - Free the internet from data collection with Mullvad VPN – a service that helps keep your online activity, identity, and location private.
  • NordVPN - A minimal, shell-free, actively rebuilt container for the official NordVPN Linux client that gives self-hosted services a shared Virtual Pr…
  • Nym - Offers decentralized mixnet routing for network-level privacy, blocks surveillance and metadata leaks via blinded, re-randomizable credenti…
  • Obscura VPN - Anonymous VPN service with no IP or traffic logs, privacy-focused logins using random accounts, payments via Bitcoin's Lightning Network, a…
  • OpenVPN Connect - OpenVPN Connect provides flexible VPN solutions to secure your data communications, whether it's for Internet privacy, remote access for em…
  • Outline VPN - Journalists need safe access to information to research issues, communicate with sources, and report the news.
  • Psiphon - Secure and high-performance, Psiphon provides open access to the uncensored internet for millions of people around the world, with 150,000,…
  • Tor - Tor is free software and an open network that helps you defend against traffic analysis, a form of network surveillance that threatens pers…

Checked 8 days ago - source: AlternativeTo

Common questions

How can I install a ready-to-run Shadowsocks server on Debian or Ubuntu without compiling it myself?

Run sudo apt update and then sudo apt install shadowsocks-libev. This installs the ready-to-run server/client instead of making you compile pieces yourself, which can fail for beginners.

Why does an obfuscated Shadowsocks connection fail when the server and client obfuscation settings differ?

Shadowsocks obfuscation must be configured on both ends, such as starting the server with obfs-server and the client with obfs-local using the same option like obfs=http. If one side is missing or the options differ, the connection will fail because the two ends cannot understand each other.

How can I reduce user drops when the Shadowsocks server gets busy with many connections?

Run ulimit -n 51200 before starting the Shadowsocks server. This raises the connection limit so it can keep more connections open at once and is less likely to drop users when traffic gets busy.

What basic configuration choices can I control when hosting my own Shadowsocks server?

You can set the security settings, choose the port number, and select the encryption methods.

If my setup was using shadowsocks-libev, does the shadowsocks-c rename break existing commands, package names, or config paths?

No, commands such as ss-local and ss-server, the shadowsocks.h API, and the embedding library ABI remain compatible. Existing configuration paths, distribution package names, and service names are retained, and legacy library filenames and the shadowsocks-libev package lookup name remain available as compatibility aliases.

Answers sourced from cloudzy.com, github.com, github.com, github.com, github.com

Community

Collected 5 days ago - public community threads