Shadowsocks Guide: Working Around the Great Firewall

I’ve just came back from China, Beijing, and had to find a way to work around the great firewall of China as I needed access to my email (Gmail) and other sites that I usually frequent. I did not want to spend money on a VPN service just for the short 2 weeks trip. I chanced upon Shadowsocks and it worked great for me.

Finding a Host

As I already have my own server to host the server side of things, I can recommend you guys to look for a very cheap one for as low as maybe a dollar a month on this site called LowEndBox. If you’re going to China, you will want a host that has a good connectivity to China. The Shadowsocks server does not require much resources so all you need to take note of is the location and connection to China. All I have to know is where is my ip address, which is pretty simple and the quality of connection to China that that location has. If you get a server that has poorer connectivity, your connection will be slower. It will still work but performance suffers.

You would usually look for a host that has their servers located in places like Hong Kong, Singapore etc. These geographical locations might cost a premium but should still be much cheaper as compared to a dedicated VPN service. Get yourself a host (VPS if it’s from LowEndBox) and for this guide you may want to install Ubuntu as the operating system.

Once done, you must configure the server settings. I will only walk you through the basics that I’ve configured on my own server (that works and fulfils the purpose). The configuration file is located in /etc/shadowsocks-libev/config.json

Shell

1

sudo nano/etc/shadowsocks-libev/config.json

JavaScript

1

2

3

4

5

6

7

8

{

"server":"{YOUR SERVER IP}",

"server_port":8388,

"local_port":1080,

"password":"{YOUR PASSWORD}",

"timeout":60,

"method":"aes-256-cfb"

}

You can choose to change the server_port and local_port accordingly but do take note of what you change them to. Make sure you put in your own server’s IP as well and a password for authentication. The rest of the parameters can be left untouched.

Once you have finished editing the configuration file, restart the service:

Shell

1

sudo service shadowsocks-libev restart

NOTE: If you have a firewall configured, you must allow for the port you configured in the parameter “server_port” to be accessed from the outside.

Client Applications

Once you have your server all set up and ready, you can now download the relevant applications onto your devices. Shadowsocks is supported on all major desktop and mobile OSes. You can find all the clients here: https://shadowsocks.org/en/download/clients.html

Configuring the applications is self-explanatory, simply put in the server_port and password according to what you have configured at the server side. In addition, make sure the encryption method used is “aes-256-cfb”.

Once you have the application installed, the additional step you need to take on your desktop/laptop is that you will need to use a browser that points to the shadowsocks proxy server. On Google Chrome, you can install a plugin called SwitchyOmega. Once you have the plugin installed, create a new profile and fill in as such:

Conclusion

Doing the above steps will allow you to work around the great firewall of China. I’ve tried it out myself and it worked great. Despite my server being located in the US, it still ran fine enough especially for basic emailing and browsing. If you want to do some streaming off YouTube and whatnot, you must make sure your server has a good connection to China.

Do let me know if you have any questions, otherwise enjoy the additional and much needed freedom especially for people relying on Google based services.