shadowsocks_install: Shell Scripts for Installing Shadowsocks Server
Auto Install Shadowsocks Server for CentOS/Debian/Ubuntu
At a glance
- What is it?
- shadowsocks_install is a collection of shell scripts from Teddysun that automate the installation of Shadowsocks server implementations on CentOS, Debian, and Ubuntu. It covers four implementations: Python, libev, Go, and ShadowsocksR.
- Who is it for?
- shadowsocks_install is useful for anyone who needs to deploy a Shadowsocks server on a Linux VPS without writing installation logic from scratch. The all-in-one script shadowsocks-all.sh covers all four implementations and is the practical starting point.
- Can I use it commercially?
- Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
- Is it still maintained?
- Activity is slowing. The repository last received commits 6 months ago.
- What is it written in?
- Mainly Shell, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 29, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What shadowsocks_install Does and Who Uses It
Shadowsocks is a proxy protocol designed to relay traffic through an encrypted tunnel between a client and a server. Setting up a Shadowsocks server from scratch involves fetching source code or packages, configuring the daemon, and setting it to start on boot. shadowsocks_install reduces this to running a single shell script as root on a CentOS, Debian, or Ubuntu host.
The repository is aimed at users who need to run their own Shadowsocks server on a virtual private server. The README describes it as an auto-install system and links to blog posts on teddysun.com for detailed usage instructions.
The copyright notice in the README covers 2014 to 2019. The last push to the repository was on 2026-03-07, which is more than six months before the current date. The scripts themselves have been in use for well over a decade, and the installation targets (CentOS, Debian, Ubuntu) are long-standing distributions, so many users treat them as stable references even without active updates. That said, anyone deploying against a current distribution release should test before relying on the scripts in a production environment.
Scripts in the Repository and What They Install
The README lists seven main scripts, each targeting a specific implementation or support function:
`shadowsocks.sh` installs the Python implementation of Shadowsocks on CentOS, Debian, and Ubuntu.
`shadowsocks-libev.sh` installs the libev C implementation on CentOS only.
`shadowsocks-libev-debian.sh` installs the libev implementation on Debian and Ubuntu.
`shadowsocks-go.sh` installs the Go implementation on CentOS, Debian, and Ubuntu.
`shadowsocksR.sh` installs ShadowsocksR, a fork with additional obfuscation and protocol options, on CentOS, Debian, and Ubuntu.
`shadowsocks-all.sh` is the all-in-one script that can install any of the above on CentOS, Debian, and Ubuntu.
`haproxy.sh` installs HAProxy as a load balancer in front of a Shadowsocks server.
`shadowsocks-crond.sh` adds a cron job that checks whether the Shadowsocks process is running and restarts it if not.
The repository also contains a `sample_config/` directory for reference configurations and a `docker/` directory for containerized deployments.
Running the All-in-One Installer
The `shadowsocks-all.sh` script at the root of the repository is described by the README as covering all Shadowsocks implementations for CentOS, Debian, and Ubuntu. The README links to teddysun.com/486.html for the full usage guide.
The repository top-level entries include the init scripts for each implementation in directories such as `shadowsocks`, `shadowsocks-libev`, `shadowsocks-go`, `shadowsocks-libev-debian`, and `shadowsocksR`. These are the service control scripts that the installers place on the system.
The README does not include inline installation commands. Detailed invocation instructions are documented in the linked blog posts at teddysun.com. The copyright notice in the README reads "Copyright (C) 2014-2019 Teddysun," which suggests the scripts were written between 2014 and 2019. The last push to the repository was on 2026-03-07.
HAProxy and the Monitoring Script
Two supporting scripts extend a basic Shadowsocks deployment. `haproxy.sh` installs HAProxy and is described in the README as adding a load balancer in front of Shadowsocks. The README links to shadowsocks.be/10.html for details.
`shadowsocks-crond.sh` adds a cron entry that checks all installed Shadowsocks versions for a running process and restarts any that have stopped. The README describes it as checking whether the server is running and starting it if not. This provides basic process supervision without requiring a separate init system integration.
The combination of the monitoring script and HAProxy suggests the repository was designed for single-server deployments where uptime relies on cron-based recovery rather than a process manager.
Limitations and Cases Where It Is the Wrong Tool
The repository has no license file listed in the top-level entries. The README includes a copyright notice but no license terms. This matters for any deployment in an organizational or commercial context: without a license, the default is all-rights-reserved, and redistribution or modification may require explicit permission.
The copyright notice covers 2014 to 2019, and the last push was on 2026-03-07, which is more than six months before the current date. The scripts may not account for changes in package names, service management conventions, or security requirements in current versions of the supported distributions.
The repository does not include an uninstall script. If a deployment needs to be removed or migrated, the process is not documented.
The scripts require root access. Running untested shell scripts as root on a production host is a meaningful risk. The README does not include a checksum or signature to verify script integrity before execution.
Comparison with Manual Installation
The alternative to shadowsocks_install is following the upstream Shadowsocks documentation for the specific implementation being deployed. The Python, libev, and Go implementations each have their own installation guides with package manager instructions.
The difference in approach is significant: shadowsocks_install trades transparency for convenience. A shell script fetches, compiles, and configures everything in one step but makes it harder to audit what changed or to reproduce a deployment exactly. A manual installation following package manager steps is slower but gives the operator full visibility over each change.
For one-off personal VPS deployments, the convenience is the point. For production deployments that need documented, reproducible builds, direct package manager installation or container-based deployment is more appropriate.
The repository also contains a `docker/` directory, which suggests containerized deployment was considered at some point. However, the README does not document Docker usage. Teams wanting a containerized Shadowsocks server can use the existing docker-compose tooling from the repository or the official Docker images available from the Shadowsocks project, which are maintained separately from this installer script collection. The `sample_config/` directory provides reference configuration files for the server daemon, which can be useful for understanding the configuration parameters before running the install script. Reviewing these sample files before running any install script is a practical first step for understanding what the script will configure.
Editorial conclusion
shadowsocks_install is useful for anyone who needs to deploy a Shadowsocks server on a Linux VPS without writing installation logic from scratch. The all-in-one script shadowsocks-all.sh covers all four implementations and is the practical starting point. The last push was on 2026-03-07, which is more than six months before today; the project should be treated as stable but not receiving new updates. The repository carries no license file, which is a meaningful gap for anyone deploying it in a commercial or organizational context. Verify compatibility with the target Linux distribution before running any script.
Frequently asked questions
Which Linux distributions does shadowsocks_install support?
The README documents support for CentOS, Debian, and Ubuntu. Some scripts are distribution-specific: shadowsocks-libev.sh targets CentOS only, while shadowsocks-libev-debian.sh targets Debian and Ubuntu. The all-in-one shadowsocks-all.sh covers all three distributions.
What is the difference between the Python, libev, and Go implementations?
The README lists them as separate implementations but does not document the differences in detail. Each implementation is installed by a separate script; shadowsocks-all.sh can install any of them. The documentation is on the linked teddysun.com blog posts.
When was shadowsocks_install last updated?
The last push to the repository was on 2026-03-07. The README copyright notice covers 2014 to 2019. The project should be treated as stable but not receiving ongoing updates.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/teddysun-shadowsocks-install)