Shadowsocks is a well-known sock5 proxy, it’s fast and easy to install. Compared to other clients shadowsocks is the most active developed sock5 proxy client and server. SOCK5 proxy usually uses port 1080, but it can use any port. Shadowsocks can run on TCP or UDP, so it’s really flexible to use depend on what you need.
The tutorial on installing shadowsocks separated into part server and client sides. The client can use almost any operating system such as Android, iPhone, Linux, macOS, or Windows.
This how to works on Ubuntu 20.04, Ubuntu 18.04, Debian 9 and Debian 10, it may work on other debian and it derivatives, but only tested on these Linux distro.
Shadowsocks Server
Shadowsocks ported to many different languages and not all the implementation are equal, the most complete is python, but for personal usage the Go version is the most make lightweight, it’s only offer the core feature of Shadowsocks.
Install Go 1.15
To run shadowsock golang version, go 1.15 must be installed.
wget https://golang.org/dl/go1.15.2.linux-amd64.tar.gz
Extract the go1.15.2.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.15.2.linux-amd64.tar.gz
Download shadowsocks latest version
Use this method to download the latest version of shadowsocks from github, it often get bug fixed faster than binary.
/usr/local/go/bin/go get -u -v github.com/shadowsocks/go-shadowsocks2
Start Shadowsocks server
Start shadowsocks in verbose mode to check if something goes wrong
~/go/bin/go-shadowsocks2 -s 'ss://AEAD_CHACHA20_POLY1305:PASSWORD@:8488' -verbose
Shadowsocks Client
From client we’ll need to open 2 tab, 1 connect to the server, another one to test connection.
Install Shadowsock Client
On your computer or different server install shadowsock client
sudo apt install shadowsocks-libev -y
Connect to Shadowsocks server
On first tab connect to the server use following command
ss-local -s SERVER-IP -p SERVER-PORT -k SERVER-PASSWORD -m chacha20-ietf-poly1305 -l 1080
on second tab, check the ip address
curl --socks5-hostname 127.0.0.1:1080 icanhazip.com
the output should IP address of Shadowsock server