多的不说了,标题已经不言而喻。

什么是shadowsocks?

Shadowsocks 可以指:一种基于 Socks5 代理方式的加密传输协议,也可以指实现这个协议的各种传输包。 Shadowsocks 分为服务器端和客户端,在使用之前,需要先将服务器端部署到服务器上面,然后通过客户端连接并创建本地代理。

摘自 维基百科

需要注意的一点是shadowsocks不是vpn, 它只是一种基于SOCKS5协议的对于网络请求的加密/解密方法, 以达到科学上网的目的.

shadowsocks原理

一般情况下, 如果在本机上想要访问外网(Google/Twitter/Youtube)是直接与远程服务建立连接并传输数据. 但在受限的网络环境下传输的数据会先经过防火墙(GFW)的检查, 如果检查出传输内容包含受限内容的话, 就会阻止此次传输, 导致无法获取远程服务数据.

而shadowsocks则是根据SOCKS5协议封装的一种数据传输的方法.

  1. 从主机上发出的请求会先经过本地的ss客户端(ss-local), ss客户端会根据配置的加密方法与密码对原数据进行加密, 再将加密过的数据发送给GFW.
  2. 由于数据经过了加密, GFW无法识别出该请求是否受限, 于是通过此次请求.
  3. 按照用户配置的内容, 该被加密的数据会先发送到境外的ss服务端(ss-server), 通过同样的算法解密后得到真正的请求数据, 然后从指定的服务器获取返回数据.
  4. 最后通过类似的过程, 受限网络的返回数据就会被主机接收到了.

为什么选择shadowsocks?

现在网上这么多vpn服务, 为什么要使用shadowsocks呢?

现在一个能够使用的VPN也比较难找, 毕竟因为众所周知的原因, VPN很容易就被封. 就性价比来说, 买来的VPN也不如自己租的服务器.

最关键的是, 用自己的能力科学上网是非常爽的.

准备步骤

现在知道原理了之后, 就明白实现shadowsocks有三个关键点:

  • 一台在防火墙之外的服务器
  • 本地安装的 shadowsocks 客户端, 用于加密以及传输数据
  • 安装在服务器的 shadowsocks 服务端, 用于解密以及数据的中转

就像开头所说的, 这篇教程使用的是 Vultr 的服务器, 最便宜的一种是2.5美元/月, 500G流量/月, 实际上一般人连100G都用不到. Vultr 的服务器是按小时计费的, 只要账户里有钱, 就会每小时自动扣除, 即使关机也会计费. 另外, Vultr 支持支付宝(UPDATE 2019: 现在也支持微信了 ).

点击这个Vultr链接注册帐号并部署服务器

对了, 本机的系统是 Windows/Mac/Linux 甚至手机都没关系。使用 SSH 连接服务器的话 Windows 推荐安装 Xshell,Mac 和 Linux 上直接使用Terminal 就可以了。

好了, 这就开始吧!

部署

Vultr服务器部署

注册完Vultr帐号了并且向账户内存入足够的钱后就可以开始服务器的部署了. 点击Deploy now或者部署服务器进入服务器部署页面. 一次对以下内容修改:

  1. 选择服务器位置. 这里的位置可以随意, 速度差距不大, 不过建议不要选择日本的服务器, 因为虽然日本的服务器速度最快, 但是ip常常被封, 需要经常换ip. 如果想要测试服务器速度的话可以从这个网站测试, 或者ping一下也可以.

  2. 选择服务器系统. CentOS 6+,Debian 7+,Ubuntu 12+都可以支持的, 这里建议选择 Ubuntu 18.04 64bits 的版本, 因为这可以方便之后用锐速或者 BBR 加速.

选择服务器系统

  1. 选择价位. 值得高兴的是最近(2018.8.19)Vultr推出了全部服务器$2.5/mo的价位, 以前的话只有一些特定服务器才会有这价位, 所以机会难得. 这里选择随意, 虽然高价位提升了带宽和流量, 但说实话如果只是单人使用的话$2.5/mo就足够了.

优惠

  1. 额外选项. 这里选择第一个Enable IPv6就可以了.

Vultr额外选项

  1. 其他选项保持默认, 点击右下Deploy Now就开始自动部署了.

新建的服务器需要几分钟的时间部署, 这段时间可以用来下载Xshell(windows)或者吃瓜, 部署结束后在个人页面就可以看到Status显示部署完成.

点击新建的服务器, 在Overview标签下可以看到IP Address, Username, 以及Password,这三行就是之后连接服务器的关键.

Overview

服务端ss服务搭建

Windows

连接到服务器

首先需要安装有Xshell, 可以通过链接或百度搜索下载.

  1. 打开File-New(Alt+N)

Xshell新建服务器设置

  1. 如图设置服务器的信息, Name是服务器的名字, 可以随便填. Host填写在Vultr注册的服务器的IP Address, 其他选项保持默认就行.

Xshell服务器IP

  1. 接着设置用户名和密码, 用户名和密码分别是在 Vultr 上的 UsernamePassword, 填写完后勾上记住用户和密码就行了.

  2. 如果如下图所示, 则表明已经连接成功了. 注意连接的服务器必须是已经部署好的. 如果没有连接成功的话就多试几次, 还不行的话就ping一下ip, 看一下是不是被墙了. 如果ping不上的话就重新再部署一个服务器吧.

Xshell连接成功

搭建ss服务

  1. 下载一键搭建ss服务脚本, 直接复制粘贴就行了.

    1
    
    git clone https://github.com/flyzy2005/ss-fly
  2. 运行搭建ss代码

    1
    
    ss-fly/ss-fly.sh -i yourpassword 1024

这里把yourpassword替换为你想要设置的密码就行了, 随意设定, 以后使用ss客户端就用这个密码. 后面的1024是服务的端口号, 默认是1024.

  1. 等待一会后出现成功提示就可以了.

  2. 启动服务:

    1
    
    /etc/init.d/ss-fly start

其他相关操作:

1
2
3
4
5
6
   启动:/etc/init.d/ss-fly start
   停止:/etc/init.d/ss-fly stop
   重启:/etc/init.d/ss-fly restart
   状态:/etc/init.d/ss-fly status
    
   修改配置文件:vim /etc/shadowsocks.json

ss服务启动之后一般情况下不需要调整服务端了, 服务器常开就行.

ss客户端

shadowsocks的官方client地址是shadowsocks clients, 但似乎是被墙了. windows的GUI Client可以从Github上下载.

下载后解压启动shadowsocks, 会在右下角显示一个的图标,右击即可打开选项. 服务器添加窗口打开后填写服务器相关数据即可.

客户端设置

服务器添加成功后, 右键图标选择启动服务即可启动shadowsocks, 其他选项例如开机自启动,自动更新之类的看自己需求.

参考文章

[一键脚本搭建SS/搭建SSR服务并开启BBR加速 | flyzy小站]