搭建Shadowsocks并使用

简介

之前科学上网用的是VPN,green的VPN很稳定,速度也快,一个月18元也不算贵,这次搭建Shadowsocks是自己感兴趣,所以尝试搭建了下,写了下来。

买个VPS

关于国外VPS买哪一家好,可以看老左博客,介绍很全面详细,我自己选的是Vultr,老左里面说的活动好像都过期了。

注册Vultr账号和Paypal账号。
PS: 用于付款,不想注册Paypal的话,可以试试搬瓦工,可以用支付宝,具体见老左博客。

新建实例:

服务器位置,一般看你自己经常访问的网址主要在哪里。

服务器系统一般选CentOS,配置我是选的最低(毕竟穷)。

这样创建之后一个月2.5刀,有500G流量,够用也不算贵。用Paypal付款成功之后,就可以看到你的VPS。

安装Shadowsocks

使用Xshell5或者PuTTY连接刚买的VPS,接收密钥,输入用户名root,密码直接复制上面的Password,连接成功。

之后输入以下命令:

wget no-check-certificate https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks.sh
chmod +x shadowsocks.sh
./shadowsocks.sh 2>&1 | tee shadowsocks.log

输入完回车可以看到以下这个界面:

设置密码、端口,敲任意键开始安装设置,完成之后将出现以下信息:

到这里,Shadowsocks已经搭建好了,如果想卸载则执行:

./shadowsocks.sh uninstall

安装Kcptun给Shadowsocks加速

Kcptun,一个免费的加速工具。它是一个非常简单和快速的,基于 KCP 协议的 UDP 隧道,它可以将 TCP 流转换为 KCP+UDP 流。而 KCP 是一个快速可靠协议,能以比 TCP 浪费10%-20%的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降低三倍的传输效果。

安装执行以下命令:

wget https://raw.githubusercontent.com/kuoruan/kcptun_installer/master/kcptun.sh
chmod +x ./kcptun.sh
./kcptun.sh

执行完成,将看到以下界面:

设置Kcptun服务端端口

请输入一个未被占用的端口,Kcptun 运行时将使用此端口。

设置加速的 IP

如果你想加速 Shadowsocks,而 Shadowsocks 就在运行在当前服务器上,直接回车即可。如果 Shadowsocks 运行在其他服务器,请输入服务器的 IP 地址。这也就是说,Kcptun 不仅能加速本地的端口,也能加速远端的端口。

设置加速的端口

输入上面Shadowsocks设置的服务端口。

设置密码

不输入的话,有个默认密码it's a secrect

设置完成,安装成功之后,可以看到以下输出信息:

这些信息记得保存下来,待会客户端配置的时候需要用到。

Kcptun有关命令:

./kcptun.sh update    #更新
./kcptun.sh reconfig    #重新配置
./kcptun.sh uninstall    #卸载

到这里,服务器上的配置就已经完成了,接下来是客户端的配置。

Shadowsocks-Android

下载apk客户端

安装,打开影梭,界面:

新建并设置:

服务器就填服务器的IP,远程端口是填Shadowsocks的服务端口,加密方法就填Shandowsocks设置的加密方法。

配置完成之后,测试一下能否正常联网,如果可以的话,再配置KCP协议。

在新版的Shadowsocks安卓客户端,Kcptun是作为插件来安装的,所以我们得下个Kcptun插件,下载完安装,可以看到配置文件中最下面的插件有了Kcptun:

接下来是参数的设置,可以看到服务器Kcptun的配置信息:

然后是手机端的配置:

这里的参数是用key=value的格式来配置的。另外,如果这个参数是boolean类型,写了参数就表示true,没写则表示false。可以看到右下角有个问号,点开可以看到一些默认参数,对于那些默认值相同的就可以不写了,对照我的服务端配置:

sndwnd=512;remoteaddr=45.32.137.118:29900;key=123456;mode=fast2

设置成功后,保存重新连接,可以发现,速度快了很多,不过,相对地,流量也会多走……

Shadowsocks-Windows

Windows下,我们总共需要下载三个东西,Kcptun客户端Kcptun管理工具Shadowsocks客户端。这里要注意,Kcptun客户端的版本要跟Kcptun服务端的版本一样,Kcptun服务端的版本如下:

Kcptun配置

接下来是配置Kcptun管理工具,我之前配置的时候,逻辑一直错误了,今天了解了Kcptun原理,才知道在客户端设置得反过来,Kcptun原理图如下:

可以看到,本地向服务器发送请求后,服务器会向本地发送数据,数据本来通过服务端的Shadowsocks端口发送到本地的Shadowsocks端口,有了Kcptun之后,服务端的数据通过Shadowsocks端口再通过Kcptun端口发送到本地的Kcptun端口,然后再发送到本地的Shadowsocks端口。知道这个原理之后,我们清楚本地要先配置的是Kcptun,打开Kcptun管理工具:

把Kcptun客户端按住放进来,右上角的路径已经填好了。本地端口自己填一个就好了,Kcp服务器地址填VPS的服务器IP,端口填Kcptun服务器上的端口,我上面是29900。其他的配置信息按照服务端的配置。

Shadowsocks配置

这里的服务器地址写本地127.0.0.1,端口写刚才Kcptun自设的端口10800,密码是Shadowsocks服务端的密码,右下角再填个本地的端口。这个本地的端口,待会要用,数据就是从这个端口出来的。

Chrome装Proxy SwitchyOmega插件

Chrome浏览器安装Proxy SwitchyOmega,之后打开选项:

选个情景模式,把代理协议选为SOCKS5,服务器填本地127.0.0.1,端口就是要填刚才Shadowsocks自设的端口,我的就是10801,填完之后保存,在浏览器选中该情景模式,就可以科学上网了!

总结

哎呀,这次搭建Shadowsocks真是几经波折,网上很多教程都写不全,拼起来看也有很多错误。不过,Kcptun加速的效果实在太显著了,youtube看1080P完全不卡的。

一分一毛,也是心意。