Shadowsocks(影梭)最新教程: 服务器搭建和优化,软件下载和配置

Shadowsocks(影梭)教程:从服务器搭建、优化,到客户端下载、配置

(2018年8月发布)

在翻墙变得越来越难、好用的VPN越来越少的今天,很多人开始尝试使用Shadowsocks(影梭)来翻墙。比起传统的VPN,Shadowsocks具有一定的优势,比如不容易被网络监控系统发现和干扰,等等。

在这篇文章里,我们将使用尽量简单易懂的语言来提供一个从搭建、优化Shadowsocks服务器到下载、配置和使用Shadowsocks软件的全面教程。在不同版本的Shadowsocks中,本教程主要介绍ShadowsocksR(SSR)。

第一部分:Shadowsocks简介

Shadowsocks本质上并不是一个软件或品牌,而是一种用于翻墙的技术协议。Shadowsocks背后也并没有一家公司在支持,而是由志愿者免费开发,并开源提供给大家使用的。

目前Shadowsocks在熟悉技术的网友(尤其是程序员)中比较流行,这是因为Shadowsocks的搭建并不简单,需要涉及一定技术。

Shadowsocks翻墙系统的组成部分:

一个Shadowsocks翻墙翻墙系统,由两大部分组成:

  • Shadowsocks服务器(Server):
    • 搭建在位于墙外(国外)的电脑服务器上。
    • 可以为多个用户、多种设备提供翻墙服务。
    • 可以自己搭建,也有公司出售服务(提供用于连接的IP、密码等)。
  • Shadowsocks客户端软件(Client):
    • 运行在不同的设备上:如电脑、手机(苹果、安卓)等。
    • 可以免费下载。
    • 使用时连接到Shadowsocks服务器上,达到翻墙的作用。

Shadowsocks的不同版本:

Shadowsocks目前有两个不同的版本:

  • 原始版本的Shadowsocks(SS):
    • 这是最早的Shadowsocks版本
    • 仍然可用,但功能有限。
  • ShadowsocksR(SSR):
    • 在SS版本上做了一些改进,增加了一些功能,如用于反干扰的混淆协议等。
    • 一部分用户反应SSR目前在国内比SS更好用。

在这篇教程里,我们将使用ShadowsocksR(SSR)版本。

自己搭建Shadowsocks服务器需要的条件:

在这篇教程里,我们将花相当篇幅讲解Shadowsocks服务器的搭建和设置。自己搭建Shadowsocks服务器需要以下条件:

  • 熟悉基本的电脑Linux系统操作指令:如cd、pwd、ls、cp等,如果这几个指令你根本没听说过,那么你可能不适合自己搭建Shadowsocks服务器。
  • 有能力购买海外服务器(VPS):
    • 费用:大概每个月5美元左右。
    • 语言:需要掌握基本的英文来完成服务器的购买等步骤。
    • 付款方式:需要有信用卡或PayPal账户(也有公司支持支付宝)。
  • 懂得如何通过SSH方式连接VPS服务器:Mac用户可以使用电脑自带的终端Terminal,Windows用户可以使用Putty或者Windows 10最新开始提供的Ubuntu。

第二部分:Shadowsocks服务器的搭建和优化

一、购买海外VPS服务器:

在VPS服务器供应商的选择上,常见的包括DigitalOceanVultr、Amazon AWS等等。在本教程里我们将以DigitalOcean为例,新用户可以点击这里获得10美元DigitalOcean开户优惠

具体注册、购买DigitalOcean的步骤因为篇幅原因在这里省略,大家可以自己搜索相关教程。

二、创建虚拟主机VPS:

购买服务器之后,下一步就是创建主机VPS。以下是在DigitalOcean创建主机的步骤:

  • 点击页面上端”Create”,从下拉菜单中选择“Droplets”(虚拟主机在DigitalOcean被称为Droplet)。
  • 创建Droplet时的选项:
    • Choose an image(重要):选择Distribution下面的”Ubuntu”(目前缺省版本是16.04.4 x64,选这个即可)。
    • Choose a size:选择Standard Droplets下面最便宜的选项(目前是1GB, 1vCPU, 25GB SSD Disk, 1 TB transfer, $5/month)。
    • Add Backups:不需要。
    • Add Block Storage:不需要。
    • Choose a datacenter region(选择服务器地理位置,重要):建议选择美国西海岸或亚洲的服务器,因为这些位置离国内较近,Shadowsocks的速度也会更快一些。具体来说,如果选择美国的服务器,选择San Francisco(1或2都可以),如果选择亚洲服务器,目前只有Singapore(新加坡)。如果拿不定注意,建议选择San Francisco(1或2都可以)。如果用vultr的服务器,建议选择日本。
    • Select additional options:不需要。
    • Add your SSH keys(重要):添加自己用于登录虚拟主机的SSH公钥。
    • How many Droplets? 不改变,1个。
    • Choose a hostname:给虚拟主机起一个名字。
  • 创建好虚拟主机之后,你会看到这个虚拟主机的IP地址,记住这个地址,用于下一步登录。

三、使用SSH连接主机:

下一步需要使用SSH连接创建好的虚拟主机VPS,一般来说,命令行是“ssh [email protected][IP 地址]”。具体如何SSH在这里因为篇幅有限就不写了,Mac用户可以使用电脑自带的终端Terminal,Windows用户可以使用Putty或者Windows 10最新开始提供的Ubuntu。

连接好之后,运行以下命令更新主机:

apt-get update && apt-get upgrade -y

四、安装ShadowsocksR:

在Shadowsocks版本选择上,我们建议选择ShadowsocksR(SSR),因为很多网友反映SSR性能更好,根据我们自己观察,SSR至少不比SS差。

SSR的本身安装步骤较为繁琐,但网友teddysun提供了一个非常方便的一键安装脚本,该脚本还可以用于安装SS等多种Shadowsocks版本。在这里我们将使用这个一键安装脚本来安装SSR。

以Root身份连接到虚拟主机后,运行以下命令:

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

运行完最后的命令行后,会看到一个选项:Which Shadowsocks server you’d select,因为我们要安装ShadowsocksR,就选择ShadowsocksR对应的数字。

然后会看到“Please enter password for ShadowsocksR”,这时需要设定一个以后翻墙时连接Shadowsocks的密码,请自行设定。

下一个选项”Please enter a port for ShadowsocksR [1-65535]”是让选择一个Shadowsocks的服务器端口,建议使用:443。

接下来的选项“Please select stream cipher for ShadowsocksR”,是让选择加密方式,建议选择:chacha20-ietf。

下一个选项“Please select protocol for ShadowsocksR”,是让选择协议,建议选择:origin。

下一个选项“Please select obfs for ShadowsocksR”,是让选择混淆模式,建议选择:http_simple_compatible。

然后出现的指示“Press any key to start…or Press Ctrl+C to cancel”,意思是按任何键开始安装或按“Ctrl+C”取消安装。这时按回车键,就可以开始安装了。安装过程可能需要一段时间,请耐心等待。

安装完成后,屏幕会显示连接Shadowsocks服务器的所有重要参数,包括:Server IP(服务器IP)、Server Port(服务器端口)、Password、Protocol(协议)、obfs(混淆)、Encryption Method(加密)。一定要把所有参数记下来!

这时ShadowsocksR服务器已经成功安装完成了。如果将来想要更改设置,可以使用编辑器更改“nano /etc/shadowsocks-r/config.json”文件:

nano /etc/shadowsocks-r/config.json

每次更改完设置后,需要运行以下命令行重启ShadowsocksR:

/etc/init.d/shadowsocks-r restart

五、Shadowsocks服务器端提速优化(可选项):

下面我们将介绍一些额外的软件和服务器配置的更改,以优化Shadowsocks服务器,让速度变得飞快。

安装Google TCP BBR拥塞控制算法,用以加快服务器网速:

这里我们将仍然使用网友teddysun的一键安装脚本。仍然以Root身份SSH连接主机后,运行以下命令行:

wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh

当看到提示“Press any key…”时,按回车键开始安装。

安装过程中如果出现选项,按回车键选缺省选项即可。最后需要重启服务器主机。

增大服务器可以同时处理的连接数量:

编辑“/etc/security/limits.conf”文件:

nano /etc/security/limits.conf

在文件末尾增加以下两行(注意:*符号也要包括):

* soft nofile 51200
* hard nofile 51200

退出文件后,运行以下命令行:

ulimit -n 51200

优化内核参数:

编辑“/etc/sysctl.conf”文件:

nano /etc/sysctl.conf

在文件末尾添加下面几行:

fs.file-max = 51200

net.core.rmem_max = 67108864
net.core.wmem_max = 67108864
net.core.netdev_max_backlog = 250000
net.core.somaxconn = 4096

net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.ip_local_port_range = 10000 65000
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_fastopen = 3
net.ipv4.tcp_mem = 25600 51200 102400
net.ipv4.tcp_rmem = 4096 87380 67108864
net.ipv4.tcp_wmem = 4096 65536 67108864
net.ipv4.tcp_mtu_probing = 1

退出文件编辑后,运行以下命令:

sysctl -p

然后重启SSR:

/etc/init.d/shadowsocks-r restart

恭喜!到这里,Shadowsocks服务器端已经安装、设置、优化提速完成。下面介绍以下Shadowsock客户端的使用方法。

第三部分:Shadowsocks客户端的下载和配置

Shadowsocks客户端是安装在用户的电脑、手机等设备上的软件或APP,用来连接Shadowsocks服务器以达到翻墙的目的。

Shadowsocks客户端软件下载:

在这里我们仍然以ShadowsocksR为例,来介绍不同设备上的Shadowsocks客户端软件。以下是SSR客户端的下载链接:

Shadowsocks客户端的基本配置:

因为不同平台的Shadowsocks软件和App的界面不尽相同,我们就不一一具体介绍了。在设置时最关键的步骤是输入服务器的信息,包括服务器IP、端口,密码,加密方式等等。只有这些信息全部输入正确,Shadowsocks才能连上。

Shadowsocks代理模式的设置:

Shadowsocks(包括SSR)主要有两种代理模式:

  • 全局模式(Global):访问所有网站都通过Shadowsocks,如果平时大部分时间访问国外网站,选用这种模式即可。
  • PAC模式(PAC):通过PAC文件里的规则列表控制哪些流量走SS,哪些不走(比如国内流量不走)。注:在Windows版本的SSR客户端,这个功能已经可以被“代理规则”(Proxy Rule)设置代替(除非使用gfwlist),因此在Windows版本的SSR客户端一般不建议用这一模式。
  • 直连模式(Disable System Proxy):基本可以理解为关掉Shadowsocks。

好了,到这里我们的Shadowsocks教程就告一段落了。希望大家能成功地使用Shadowsocks、顺利地翻墙。

篇末小福利:

最后给大家提供几个翻墙小福利:

服务器福利:

VPN福利:

最后祝翻墙愉快!