If you are often in a cafe or library with shared internet, it’s best to go through a VPN so any unencrypted traffic isn’t detected by any local hackers – while there are many vpn packages, it is easy enough to make your own and connect to it with shadowsocks. This can give you good performance even on a $5/mo digitalocean server!*
To install Shadowsocks on a server (that will be accessing the internet for you), ssh to your server and use:
sudo apt install python-pip3 -y
sudo pip3 install -U git+https://github.com/shadowsocks/shadowsocks.git@master
sudo nano /etc/shadowsocks.json
In the editor, add the following in your file:
{
"server":"IP.OF.SERVER",
"server_port":8388,
"local_port":0,
"password":"somesecretpassword",
"timeout":600,
"method":"aes-256-gcm"
}
Your password is whatever you want it to be and the IP.OF.SERVER would be replaced with the numbers you see in your Digitalocean account’s droplet that you see here:
Then start this on the server:
ssserver -c /etc/shadowsocks.json –user nobody -d start
Note the “nobody” user is often used to keep any possibly hacked process from writing files as root or as your ordinary user. If you want to restart it again with different options, you will likely get:
2020-09-08 01:20:32 INFO loading libcrypto from libcrypto.so.1.1
2020-09-08 01:20:32 INFO loading libsodium from libsodium.so.23
2020-09-08 01:20:32 ERROR already started at pid 9022
In this case, run “kill 9022” and run again.
Now, install Shadowsocks for your Android or other device, and set it up with the options above filled out – Port=8388, IP=server IP, method=aes-256-gcm, password = chosenpassword.
Parts of this article based off of the troubleshooting guide here.
*Disclosure – affiliate link here, get $100 in digital-ocean usage over 60 days free.