首先需要一个国外的服务器
我买的搬瓦工最便宜的服务器,一百多rmb一年,可以支付宝
操作系统是Ubuntu16

安装SS

pip install shadowsocks

/etc下新建一个配置文件

nano shadowsocks.json

配置内容如下:
server填当前服务器的ip地址
password随便设置一个登录密码
其余不用动,注意最后一行没有逗号

{
"server": "服务器ip",
"server_port": 8388,
"local_address": "127.0.0.1",
"local_port": 1080,
"password": "密码",
"timeout": 300,
"method": "aes-256-cfb",
"fast_open": false
}

如需多人使用,配置内容如下
端口1和端口2填两个不同的端口,如8388 8389
密码1和密码2是两个端口对应的登录密码,随便填

{
"server": "服务器ip",
"port_password": {
"端口1": "密码1",
"端口2": "密码2"
},
"timeout": 300,
"method": "aes-256-cfb",
"fast_open": false
}

保存配置文件后,启动SS

ssserver -c /etc/shadowsocks.json -d start
下载客户端,有Windows、Mac、Android、iOS版本
https://github.com/shadowsocks/shadowsocks/wiki/Shadowsocks-%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E#%E5%AE%A2%E6%88%B7%E7%AB%AF

打开客户端
地址填server,端口填server_port端口,加密方式填method,密码填password密码
保存刷新(关闭再打开),就能科学上网了

Mac上有个选项是从GFW List更新PAC,用不了就刷新试试
Windows客户端需要启用系统代理

关闭命令

ssserver -c /etc/shadowsocks.json -d stop

阿里云香港服务器的坑
配置文件里server不填服务器ip,填0.0.0.0

开放端口,阿里云的服务器默认关闭所有端口的
在阿里云服务器实例本实例安全组-配置规则-添加安全组规则里设置

协议类型:自定义 TCP
端口范围:8388/8395(需要开放的端口,单人用一个8388就行)
授权类型:地址段访问
授权对象:0.0.0.0/0(允许所有ip访问)

其余默认

验证,telnet能访问端口,就可以用了

telnet ip地址 8388