Shadowsocks简介
Shadowsocks(中文名: 影梭) 是一款开源的安全SOCKS 5代理,它主要用于在大陆翻墙。
原理
与SSH动态代理相似,客户端呈现为SOCKS 5代理服务,客户端与服务器之间采用加密通信。服务器部署于GFW之外,从而实现代理翻墙服务。
特点
- 使用自行设计的协议加密通信,支持多种加密算法:AES、Blowfish、IDEA、RC4等。除创建TCP连接外无需握手,每次请求只转发1个连接,因此使用起来网速较快,在移动设备上较省电。
- 通过异步I/O和事件驱动实现,响应速度快。
- 客户端支持主流操作系统平台:Windows、Linux、OS X、Android、iOS和OpenWrt
shadowsocks-libev简介
网络中普遍采用Python版本的shadowsocks,该版本看似安装简单,却存在如下缺点:
- 没有Linux操作系统原生安装包(如:RPM和DEB):从Ubuntu 16.04开始,提供shadowsocks安装包。
- 没有操作系统的服务脚本(如init.d和upstart)。
- Python程序占用内存较多,运行效率不佳。
而shadowsocks-libev是Shadowsocks在嵌入式和低端设备的轻量级实现:
- 纯C实现,不仅占用内存极小,且运行效率更快。
- 在几乎所有Linux平台都存在原生安装包,且具有对应平台的服务启动脚本。
下面基于Ubuntu 14.04/16.04介绍它的安装和配置。
安装shadowsocks-libev
客户端和服务端的安装方法相同:
sudo add-apt-repository ppa:max-c-lv/shadowsocks-libev
sudo apt-get update
sudo apt-get install -y shadowsocks-libev
配置shadowsocks-libev服务端
编辑/etc/shadowsocks-libev/config.json:
{
"server_port": 8388,
"password": "<共享密码>",
"timeout": 60,
"method": "aes-256-cfb"
}
server_port
为服务端监听端口password
为客户端和服务端预设的共享密码,它最好由安全密码生成器生成(如LastPass或KeePass),且长度不小于6个字符。timeout
为连接超时时间。method
为加密算法,aes-256-cfb
的安全性较好。
配置完成后,需重启:
sudo service shadowsocks-libev restart
配置shadowsocks-libev客户端
创建/etc/shadowsocks-libev/client.json (文件名可修改):
{
"server": "<服务端地址>",
"server_port": "<服务端端口>",
"local_port": "22357",
"password": "<共享密码>",
"method": "aes-256-cfb"
}
Ubuntu 14.04
安装包没有提供系统服务脚本,故须自己创建Upstart脚本/etc/init/ss-local.conf (文件名可修改):