利用VPS搭建shadowsocks-科学上网

之前一直在用免费的shadowsocks上google,但免费的时不时改密码,比较麻烦。高峰时期不是很稳定。 因此,准备寻找付费的服务,但发现这种供应商太多了,又不知道哪个稳定,偶然发现可以用vps自己建立,那就开始折腾一下。 网上此类教程很多,我参考了一些,在此做个总结。

什么是Shadowsocks

简单来说,Shadowsocks就是一个开源的基于socks5的翻墙工具,比goagent、VPN等要稳定的多。最好的就是它的客户端很多,各类平台都有。 放个原理图吧:

shadowsocks

下面就讲解搭建教程:

一.选择VPS

之前对比了一些,都说 bandwagon 很便宜,但我当时搭建时,一年9刀的特价已经没有了,最便宜的都是2.5刀/月了,而且据说不是很稳定。 因此选了 DigtalOcean,之所以选它而不是linode,是因为一注册就会送10刀(点击上面链接注册才有优惠哦),每月最低5刀,而且如果是学生,还有 教育优惠,额外赠送100刀!这样下来,很划算了。

付款后,按官方指导建立,系统推荐用 Ubuntu 14.04 (内核是这个vmlinuz-3.13.0-46-generic),原因主要是支持锐速,这个稍后介绍,优化后速度提升真的很明显。

二.服务端Shadowsocks安装

1.安装Shadowsocks

建立好vps后,会收到邮件,里面会有IP地址和密码,打开电脑终端,直接进行ssh连接(OS X自带,win系统安装ssh请点 这里):

ssh root@你的ip

根据提示,修改root密码后,即可进行安装。

Ubuntu下命令:

apt-get update #用于更新安装源,防止有些组件下载不到
apt-get install python-pip
pip install shadowsocks

2.优化Shadowsocks速度

官方有推荐一种 方法,即增加TCP最大限制数,但改完之后发现效果并不理想。 因此又试了社区里推荐的 锐速,免费注册一个就可以使用,虽然也是优化TCP,但速度提升明显。

确定自己的内核版本在支持列表里,就可以使用以下命令快速安装了。

wget http://my.serverspeeder.com/d/ls/serverSpeederInstaller.tar.gz
tar xzvf serverSpeederInstaller.tar.gz
bash serverSpeederInstaller.sh

输入在官网注册的账号密码进行安装,参数设置直接回车默认即可, 最后两项输入 y 开机自动启动锐速,y 立刻启动锐速。之后可以通过lsmod查看是否有appex模块在运行。

到这里还没结束,我们还要修改锐速的3个参数,nano /serverspeeder/etc/config

rsc="1" #RSC网卡驱动模式  
advinacc="1" #流量方向加速  
maxmode="1" #最大传输模式

digitalocean vps的网卡支持rsc和gso高级算法,所以可以开启rsc="1"gso="1"

重新启动锐速

service serverSpeeder restart

3.启动shadowsocks

新建一个json配置文件,用来初始化shadowsocks,并且支持多用户(即多个端口)。

比如新建一个ss_cfg.json

nano /etc/ss_cfg.json

复制如下配置,并更改ip和密码:

{
    "server": "my_server_ip",
    "port_password": {
        "8381": "foobar1",
        "8382": "foobar2",
        "8383": "foobar3",
        "8384": "foobar4"
    },
    "timeout": 300,
    "method": "rc4-md5"
}

单一用户,也可以选用如下配置:

{
    "server":"my_server_ip",
    "server_port":8000,
    "local_address": "127.0.0.1",
    "local_port":1080,
    "password":"mypassword",
    "timeout":300,
    "method":"rc4-md5"
}

然后使用配置文件在后台运行:

ssserver -c /etc/ss_cfg.json -d start

安装完成!

如果要停止运行,将命令中的start改成stop

4.ipv6配置(2015.08更新)

最近发现配置后,google学术上不去,会提示“流量访问异常”,搜了一下,发现是Digital Ocean的SFO的IP被google封了,因此找解决方案,发现可以利用ipv6访问。

此种方法,配置成功后,即使本地没有ipv6地址,用shadowsocks也同样可以访问ipv6的站点。

DO的服务器开启ipv6的教程就不在这里介绍了,一般建立的时候,建议钩上ipv6,反正不勾白不勾,这样就不需要怎么配置。 详细的教程 见此

当在服务端ping6的ipv6站点测试成功后,在服务器端加入以下hosts即可:

nano /etc/hosts #编辑hosts文件
2607:f8b0:4007:805::100f scholar.google.cn
2607:f8b0:4007:805::100f scholar.google.com
2607:f8b0:4007:805::100f scholar.google.com.hk
2607:f8b0:4007:805::100f scholar.l.google.com

保存后,一定要记得重启shandowsocks(是服务端的,不是客户端)

ssserver -c /etc/ss_cfg.json -d stop //停止
ssserver -c /etc/ss_cfg.json -d start //重新启动

这样就可以轻松上学术啦。

三.客户端安装

客户端安装比较简单,真的是一键操作,软件下下来就知道怎么配置了。详细的教程可以见 这里。 附上常用的几种平台的客户端下载链接:

OS X

Windows