在 Debian 7 上部署 Shadowsocks 服务端

刚刚在运行 Debian 7 系统的 VPS 上部署了 Shadowsocks-libev。分别在 Windows、Android 和 iPad 下都安装了客户端并做了简单测试,到目前为止效果相当不错。之所以选择 Shadowsocks,是因为它基本上符合在我看来算得上是“比较理想”的几点条件:

较低的速度和延迟

我相信在大多数用户看来,对于一项代理服务,速度应该都是放在第一位的。Shadowsocks 程序本身运行十分高效,它的速度很大程度上取决于用于部署服务端的服务器(通常是 VPS、一些 PaaS 服务等等)的速度。我用来部署服务端的 VPS 所在的机房位于美国西部,在我看来速度还不错,而且延迟也不高,这两项指标都优于之前用过的免费的 goagent 服务。

方便地多平台使用

在这一点上,Shadowsocks 同样优于 goagent。两者都可以很方便地在桌面环境下配置使用,但是 Shadowsocks 在移动端上相比于 goagent 更容易配置。Shadowsocks 官方提供 Android 和 iOS 端的客户端程序,用户下载配置即可使用(美中不足的是 iOS 端的 Shadowsocks 客户端仅支持在应用内浏览网页)。而 goagent 虽然也提供了 Android 和 iOS 双平台的客户端,但是配置起来相对麻烦,尤其是 iOS 端,首先你的设备需要越狱,然后你必须一步一步按照文档来安装配置所有具有依赖关系的软件包,对于初级用户来说门槛较高。

分应用代理国内外自动切换

在移动平台上,分应用代理功能显得尤其重要,因为在使用可以直接访问服务器的应用时我们并不希望通过代理连接。在桌面上我们也希望可以根据所访问网站的具体情况来自动切换代理模式(网站可直接访问则直接连接,网站不可直接访问或直接访问速度极慢则使用代理)。通过自有客户端和辅助浏览器插件,Shadowsocks 和 goagent 都可以很方便地实现自动切换以及分应用代理。而一般的 VPN 服务较之 Shadowsocks 的短板也就在这里,不是说 VPN 不能实现多平台的的自动切换功能,只是配置起来麻烦一点。

对持续文件流下载的支持

这是 Shadowsocks 的另一个优点,根据我的使用经验,当有些文件需要使用代理才能下载时,VPN 和 goagent 的表现无法让我满意。而我觉得 Shadowsocks 到目前为止在下载方面的表现都还不错。

Shadowsocks 服务端在 Debian 7 上的配置过程如下:

我选用的是 Shadowsocks-libev,这是一个用 C 语言构建的版本,官方还提供 Python、NodeJS、Go 等版本,大家可以根据自己的环境自行选择版本,当然,各版本的安装过程不相同,因为他们的依赖环境分别不同。

通过 apt 安装

首先,添加 GPG 公钥:

wget -O- http://shadowsocks.org/debian/1D27208A.gpg | sudo apt-key add -

将 Shadowsocks 软件源添加到你的系统软件源中,如果是 Debian 7 之前的版本,执行:

echo "deb http://shadowsocks.org/debian squeeze main" >> /etc/apt/sources.list

如果是 Debian 7 之后的版本(包括 Debian 7.0,即 Debian Wheezy),执行:

echo "deb http://shadowsocks.org/debian wheezy main" >> /etc/apt/sources.list

更新软件库,并安装 Shadowsocks-libev:

sudo apt-get update sudo apt-get install shadowsocks-libev

通过 Git 下载源码并编译安装

git clone https://github.com/shadowsocks/shadowsocks-libev.git

cd shadowsocks-libev

sudo apt-get install build-essential autoconf libtool libssl-dev ./configure && make make install

修改配置文件并重启服务

无论你是通过 apt 安装还是 Git 下载源码编译,安装完成后你都需要按照自己的需求修改配置文件然后重启 shadowsocks-libev 服务,然后才可以通过客户端使用 Shadowsocks 代理。

使用 Vim 打开配置文件:

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

修改服务器 IP、代理端口以及密码等设置:

{ "server":"1.1.1.1", #此处填写你的VPS的IP地址
"server_port":8388, #远程代理端口,避免冲突其他端口不建议修改 "local_port":1080,
"password":"password", #连接Shadowsocks服务器的密码
"timeout":60,
"method":"aes-256-cfb" #多种加密方式可选,这里使用aes-256-cfb }

重启服务:

sudo /etc/init.d/shadowsocks-libev stop

sudo /etc/init.d/shadowsocks-libev start

至此已经完成了 shadowsocks-libev 的安装配置。客户端的配置十分简单,只需要填入服务器的 IP、端口号以及你在配置文件中已经设置好的连接密码即可。关于自动切换的配置,Shadowsocks Windows 客户端可以设置系统代理模式然后通过 PAC 规则文件来实现自动代理;另外 Chrome 浏览器中的 SwitchyOmega 插件也可以轻松实现自动代理。

评论