月下博客

使用shadowsocks看外面的世界

众所周知的原因,外面世界的内容不是你想看就能看。许多先进的科学技术内容,例如google上的内容,有时候就非常奢侈。为了突破自己人的封锁,借梯子翻墙是必须的。因为有国外的vps,之前一直使用ssh的socks5代理。由于socks5代理越来越不稳定,加上foxmail莫名不能连接到gmail,一直用着gmail的表示这样就不好玩了,没办法那就试试比ssh更好的socks5代理服务:shadowsocks。

什么是Shadowsocks

Shadowsocks 是一个安全的socks5代理,用于保护网络流量,是一个开源项目。通过客户端以指定的密码、加密方式和端口连接服务器,成功连接到服务器后,客户端在用户的电脑上构建一个本地socks5代理。使用时将流量分到本地socks5代理,客户端将自动加密并转发流量到服务器,服务器以同样的加密方式将流量回传给客户端,以此实现代理上网。 其流行起来的一大原因,是国内某些地区的SSH Tunnel连接被禁用。

Shadowsocks优势

  1. 如前面所说,使用SSH来创建本地socks5代理的方法容易被发现,某些地区干脆进行了封锁,而Shadowsocks的代理方式更为隐蔽和安全;
  2. 无需保持实时连接,不用考虑断线问题。在使用SSH时,总会发生断开连接的情况,如网络不稳定、电脑休眠、切换wifi,此时SSH连接将断开,浏览网页什么的会提示无法连接到代理服务器。虽然客户端大都支持断线重连,但是反应经常不太灵敏,平均需要30秒左右的时间(而且这个时间是从你点开网页开始算的)。如果你用的是手机的话,鉴于手机网络的多变性,人一旦动起来就几乎不可用了。
  3. 更丰富的客户端支持。目前Shadowsocks官网(是shadowsocks.org,不是.com那个,.com那个是售卖账号的,并非官网,有假冒官网的嫌疑)提供几乎全平台支持,包括linux和非越狱iPhone在内。尤其是OS X版的自动代理模式(PAC)非常稳定,胜过GoAgentX,完美支持safari。同时,各个平台上的客户端使用都十分简单,基本上就是填写一下地址端口密码什么的,就能开始使用了,连点击连接都不用(原因见2点)。另外,大部分客户端支持扫描屏幕二维码完成配置,这个指导新手不要太爽。

PS: 以上两段介绍来自: http://ilovetile.com/3423

shadowsocks的主页:https://github.com/shadowsocks/shadowsocks

官方教程: https://github.com/shadowsocks/shadowsocks/wiki

以下是安装配置记录:

安装

在服务器上安装非常简单,如果系统是centos,只需运行命令:yum install python-setuptools && easy_install pip && pip install shadowsocks

配置

个人建议基于文件的方法来控制shadowsocks的运行。默认的配置文件为 /etc/shadowsocks.json,采用json的方式配置。快速而又简单的示例是:

{
     "server":"my_server_ip",
     "server_port":8388,
     "local_address": "127.0.0.1",
     "local_port":1080,
     "password":"mypassword",
     "timeout":300,
     "method":"aes-256-cfb",
     "fast_open": false
 }

加密方式建议使用aes-256-cfb,其他配置下均是自解释的。

shadowsocks的认证是基于端口和密码的,所以上述配置只出现了密码(password),没有用户名相关的信息。如果给多用户分别使用,则可监听多个端口,然后配置多个密码,示例如下:

{
     "server":"my_server_ip",
     "local_address": "127.0.0.1",
     "local_port":1080,
     "port_password": {
         "port1": "passwod1",
         "port2": "passwod2",
         ....
     },
     "timeout":300,
     "method":"aes-256-cfb",
     "fast_open": false
 }

PS: 如果有防火墙,需要将配置文件中的端口开放。

启动

接着可以使用配置好的文件启动shadowsocks服务: ssserver -c /etc/shadowsocks.json --log-file /var/log/shadowsocks -d start

其他参数通过 ssserver -h查看。

连接

服务器配好之后,接下来便是在用户端配置和使用它来上网啦!下载shadowsocks的客户端(蛋疼的是这个有可能也需要翻墙才可以下载),然后输入刚才的配置,示例截图为:

然后点击“确定”之后,软件会最小化到系统托盘。点击右键,勾选“启用系统代理”,软件会自动设置IE的系统代理。这个时候应该就达到了浏览器翻墙上网的目的了。

其他

像chrome,默认不使用ie的连接设置,需要单独配置。可以使用switchysharp插件来控制chrome上的代理。代理地址为127.0.0.1:配置文件里的本地端口,协议为socks5。

其他软件,例如foxmail,可以通过类似的设置实现翻墙。如果需要翻墙的软件很多,可以使用诸如 proxifier 这样的全局代理软件定制规则来实现。

点击下载shadowsocks客户端