Shadowsocks 使用
利用docker搭建属于自己的shadowsocks服务器
一键式部署,操作方便
基础
- 每一个网络请求都是有数据特征的,不同的协议具备不同的特征,比如 HTTP/HTTPS 这类请求,会很明确地得到它们要请求哪个域名;再比如 TCP 请求,它只会告诉 GFW 它们要请求哪个 IP。
- ssh tunnel 是比较具有代表性的防窃听通讯隧道,通过 ssh 与境外服务器建立一条加密通道,此时的通讯 GFW 会将其视作普通的连接。由于大家都这么玩,GFW 着急了,于是它通过各种流量特征分析,渐渐的能够识别哪些连接是 ssh 隧道,并尝试性的对隧道做干扰,结果还是玩不过 GFW,众多隧道纷纷不通。
Shadowsocks 及其部署
原理
- 具体而言,Shadowsocks 将原来 ssh 创建的 Socks5 协议拆开成 Server 端和 Client 端,两个端分别安装在境外服务器和境内设备上。
1
2
3+------+ +------+ +=====+ +------+ +-------+
| 设备 | <-> |Client| <-> | GFW | <-> |Server| <-> | 服务器 |
+------+ +------+ +=====+ +------+ +-------+
境外服务器购买
- 推荐购买centos7
- 提供几个以供参考:
服务端
Docker安装
- 为了实现一键式开启/停止服务,可以将shadowsocks服务运行在docker中,并且有大佬向Docker Hub上传了相关的镜像,我们可以直接拿来用。
- 安装docker的教程网络上有很多,我推荐一篇:
拉取镜像
1
docker pull oddrationale/docker-shadowsocks
- 启动容器
- 命令中 12345 端口号可以根据自己的喜好进行修改
- YOUR_PASSWORD 替换成自己的密码
1
docker run -d -p 12345:12345 oddrationale/docker-shadowsocks -s 0.0.0.0 -p 12345 -k YOUR_PASSWORD -m aes-256-cfb
- 启动容器
客户端
- Android :
- 可以在Google Play中下载到
- https://github.com/shadowsocks/shadowsocks-android/releases
- Window : https://github.com/shadowsocks/shadowsocks-windows/releases
- MacOS : https://github.com/shadowsocks/ShadowsocksX-NG/releases