第六节 Shadowsocks

Shadowsocks,简称 ss,既指基于 Socks5 代理方式的加密传输协议,也指实现 Shadowsocks 协议的各种传输包,是中国大陆最为流行的翻墙工具之一。

一、Shadowsocks 发展简史

Shadowsocks 是 clowwindy 开发的翻墙软件,经推广后因过于火爆引起了公安的关注,作者 clowwindy 被警方约谈后迫于压力于 2015 年 8 月 22 日在 Github 上删除了 Shadowsocks 项目的全部代码并停止开发。

破娃酱 (breakwa11) 接手开发了 ShdowsocksR(简称 SSR)分支,在原版 Shdowsocks 基础上提高了安全性并加入了混淆。2017年7月27日,breakwa11 遭到自称“ESU.TV”的不明身份人士的人身攻击,对方宣称如果不停止开发 SSR 将公开更多包含个人隐私的资料。breakwa11 称遭对方人肉的是无关人士,为了防止对方继续伤害无关人士将删除 SSR 在 GitHub 上的所有代码、停止维护 ShadowsocksR 项目并解散相关 Telegram 交流群组。之后 Akkariiin 宣布接手 SSR 项目并在此基础上开发 ShadowsocksRR 分支。其他较为知名的Shadowsocks 分支还有 Shadowsocks-libev,ShadowsocksR-python,Shadowsocks-python,Shadowsocks-go,libQtShadowsocks 等。

二、Shadowsocks 与 VPN 的区别

Shadowsocks 与 VPN 都被用于翻墙,常有人把 Shadowsocks 与 VPN 混为一谈,但事实上两者并不是一回事—— Shadowsocks 是加密版的 Socks,而前文中已经提到 Socks 是与 VPN、HTTP 相并列的代理模式。此外 Shadowsocks 与 VPN 的区别还在于:

(一)设计目的

Shadowsocks 的初衷就是突破网络封锁,而 VPN 原本的用途是保障恶劣网络环境下的通信安全。因此 VPN 在世界范围内被广泛使用,而只有在中国大陆、伊朗、土耳其等存在严格网络管制的地区被用于突破网络封锁。

(二)代理模式

Shadowsocks 可以实现智能分流,即访问被 GFW 屏蔽的网址时由代理服务器转发数据,访问墙内网址时直连;也可开启全局代理,让所有的流量都走代理;此外用户可以自行修改 Shadowsocks 的配置文件,根据自身需要添加规则,实现屏蔽广告等功能。VPN 默认全局代理,即开启后所有流量都会被传输到海外服务器,只有极少数 VPN 服务提供智能分流功能。

(三)流量特征

VPN 的流量特征很明显,GFW 已经实现对 PPTP、IPSec、L2TP 等 VPN 协议的精准识别,因而完全可以在党代会、两会、六四等具有政治敏感性的时间点上屏蔽所有 VPN 流量。就 Shadowsocks 而言,其流量特征明显弱于 VPN,GFW 仍可以通过机器学习加以识别。目前基本可以精准识别原版 Shadowsocks 协议,不过后续演化的 Shadowsocks 的流量特征会随着加密协议和混淆协议组合的不同而呈现不同的样态,GFW 尚无能力探测和屏蔽所有的 Shadowsocks 流量,目前主要采取批量封杀服务器 IP 段这样盲目粗暴的方法来对付 Shadowsocks。

(四)直观体验

  1. Shadowsocks 的连接速度快于 VPN

  2. Shadowsocks 的稳定性优于 VPN

    Shadowsocks 连接以后基本不会出现断线,VPN 在网络质量不佳的情况下很容易出现断线。在长时间待机后唤醒的场景下,Shadowsocks 还能保持连接状态, VPN 基本会断线,需用户手动打开开关重连。

  3. Shadowsocks 可实现智能分流, 可以无缝突破 GFW 的封锁快速访问国际互联网。VPN 默认全局代理,在使用微信等墙内服务时网速会明显变慢。

  4. Shadowsocks 的 iOS 客户端大多支持隐藏 VPN 图标的功能 (iOS 平台上的 Shadowsocks 客户端应用调用了 Network Extension 接口,在连接 Shadowsocks 后顶栏也会显示 “ VPN ” 图标),可以避免你在分享手机截图或在人多眼杂的场所连接 Shadowsocks 时显示 VPN 图标。 VPN 应用基本不提供隐藏 VPN 图标的功能。

三、如何使用 Shadowsocks

Shadowsocks 分为服务器端和客户端两部分,像 Shadowrocket 这样的 Shadowsocks 客户端本身只是一个空壳,必须手动导入 Shadowsocks 的服务器节点信息后才能连接使用。就这点而言 Shadowsocks 和 VPN 很不一样,VPN 软件基本采用客户端应用内置服务的模式,用户下载 VPN 客户端并购买服务后打开 VPN 开关就可连接。

(一)服务器端

获取 Shadowsocks 节点的方式主要有以下几种:

  1. 购买 Shadowsocks 服务商(也称“机场”、“梯子商”)提供的服务

  2. 使用他人自建或购买后共享的 Shadowsocks 节点

  3. 租用 VPS 自建 Shadowsocks

1. 购买商业服务

购买现成 Shadowsocks 服务的好处在于 Shadowsocks 服务商往往提供十几条到几十条不等的线路,在服务器所在国的选择上更多样,万一有线路被封也有回旋余地。同时Shadowsocks 服务商持续提供技术保障,保证网速;其议价能力较强,在更换代理服务器上更有效率。此外部分厂商会提供 BGP 线路,即在连接境外代理服务器先连国内的中继服务器作中转,有利于规避 GFW 的封锁。

Shadowsocks 服务商有 喵帕斯rixCloudRfcNetwork熊猫翻滚 等(请自行 Google 获取更多厂商信息及服务评价)。笔者不推荐从个人卖家处购买 Shadowsocks 服务,更不要从在 QQ 群、Telegram 群聊中兜售服务的个人卖家处购买服务,以免上当受骗。

参见 聪聪:SS/SSR 简介 - 介绍

2. 使用共享节点

使用共享节点的最大好处是几乎零成本,但弊端也显而易见——众多用户使用同一个节点势必导致低网速,使用体验不佳;同时也容易招致 GFW 的封杀,必须更换新的节点,稳定性无法保证。

Telegram 上有 V2ray,SSR节点最新发布🚀🚀🚀🚀🚀360互联网安全中心 等发布共享 Shadowsocks、V2Ray 节点信息的频道。更多关于提供共享 Shadowsocks 节点的渠道请自行搜索。

V2ray,SSR节点最新发布🚀🚀🚀🚀🚀 提供的 SSR 节点为例,复制 URL “ssr://xxxx……xxxx”后打开 Shadowsocks 客户端即可自动导入节点信息。

3. 租用 VPS 自建 Shadowsocks

自建和购买商业服务对比有什么优势? 最主要的优势是隐私和安全,如果你看下上面 Shadowsocks 的日志,你就知道服务商可以知道你的所有浏览历史的,如果你访问了不支持 HTTPS 的网站,那么请求内容也可能被监控(比如密码信息)。 另外是质量和成本,很多商家是使用和上面同样的机器但是卖给几百个人,你应该能明白了。成本方面没有免费试用的话1个人用可能会有点贵,但如果和朋友家人一起用就超值了,比如使用 $2.5/月的 Vultr,每月500G 流量够很多人用的。

—— Hyperapp 用户文档 - 手把手爱国教程

网络上可以检索到大量的 Shadowsocks(R) 一键安装脚本。如果你不会使用 Linux 系统,可以借助 iOS 平台上的 HyperApp 应用在图形用户界面下配置安装各类 Shadowsocks 的服务端。

参见: ★ HyperApp 用户文档 - 爱国软件 - SSR

由 HyperApp 用户上传的视频教程:YouTube | 五分钟快速建立vpn,可全程手机操作,方便快捷的一款强大软件hyperapp之ssr教程 (需翻墙)

(二)客户端

1. 客户端的选择

(1)iOS

Shadowrocket

物美价廉的 Shadowsocks 客户端,俗称“小火箭”,支持 Shadowsocks、ShadowsocksR、Vmess 等多个协议。美区售价 $ 2.99 (CNY ¥18),中国区已下架。

Quantumult 新生代 Shadowsocks 客户端,TF 版支持 Vmess 协议。美区售价 $ 4.99(CNY ¥30)中国区已下架。

参见: 落格博客:谈谈 Shadowrocket 和 Quantumult

Patatso 2

Patatso Lite 中国区已下架。轻量版的 Patatso,能满足基本的使用需求,不支持 Vmess。

Surge 3 美区售价 $(¥)不建议普通用户购买。除去客户端外还有开发者调试工具的面向,如果你没有这方面的需求则大可选择相对便宜的应用。(注:不支持协议) 49.99(¥ 328) 不建议普通用户购买 Surge。Surge 除去 Shadowsocks 客户端外还有开发者调试工具的面向,如果你没有这方面的需求则大可选择相对便宜的应用。(注:Surge 不支持 ShadowsocksR 协议) iOS 3 Pro Personal License $ 49.99 ( Surge 官网)

(2)macOS ShadowsocksX-NG-R ShadowsocksX-NG Surge for Mac Standard License ( 1 device ) $ 49.99 Pro License ( 3 devices ) $ 69.99 Mega License ( 5 devices ) $ 99.99

★更多 Shadowsocks 客户端参见 聪聪:SS/SSR 简介 - 客户端

2. 客户端的使用

Shadowsocks 客户端的使用方法基本相同——添加节点信息 > 选择协议类型(例如 Shadowscoks、ShadowsocksR、Socks5 等),填写主机 IP 、端口、密码、加密方式、混淆协议及标签等。部分 Shadowsocks 服务商支持像客户端应用一键导入节点信息。

Shadowsocks 服务商往往会提供客户端的使用教程。

参见: