跳到正文
备课日 10 月 12 日34 家机场7 家固定位,其余每月重排开讲说明全部讲次

协议课

Shadowsocks 是什么,今天还有多少用处

更新于 读完约 8 分钟

划重点

Shadowsocks 简称 SS,是 2012 年出现的一种轻量加密代理协议:客户端在本机开一个代理入口,把数据加密成毫无格式可循的密文送到服务器。后来的 SSR、V2Ray、Trojan、Hysteria 都是沿着它之后的路一步步改出来的。到了今天,「看不出规律」本身也会被识别,SS 在机场里主要跑在专线和中转线路上,图的是轻、快、几乎所有客户端都认。

这一讲回到代理协议的源头,看 Shadowsocks 是什么。它是 2012 年出现的一种加密代理协议,常简称 SS。做法很轻:客户端在你的设备上开一个本机代理入口,程序把连接交给它,它把目的地址和数据一并加密,变成外人读不出任何格式的密文,送到境外的服务器;服务器解开后替你去访问,再把回应加密送回来。没有复杂的握手,没有证书,几行配置就能跑起来。

它在当时解决的问题很具体:老一代 VPN 协议的握手一眼就能认出来,连到境外常被干扰,而 SS 的数据从第一个字节起就是密文,没有可供辨认的协议头。此后十多年里出现的 SSR、V2Ray、Trojan、Hysteria,几乎都可以看作是对它的修补和改道。下面把这条演变线理一遍,再讲 SS 今天在机场里待在什么位置、订阅里怎么认。

shadowsocks 是怎么工作的:一个本机入口,加一层加密

拆开看,SS 只有两端:

  • 本机这一端:在设备上监听一个本机端口,对程序来说,它就是一个普通的 SOCKS5 代理。程序把要访问的地址和数据交给它,它负责加密、发送。
  • 服务器那一端:收到密文,用同一个密码和加密方式解开,读出目的地址,替你去连目标网站,回来的数据再加密送回。

两端共享的只有三样东西:服务器地址和端口、密码、加密方式。这也是 SS 容易配置的原因,客户端填这几项就能连。它也不只转发 TCP,游戏、语音这类 UDP 流量同样能经 SS 节点走。

名字里的 socks 来自 SOCKS5。SOCKS5 是一种老牌的代理协议,本身不加密,拿它直接连境外服务器,路上看到的就是明文的目的地址;SS 等于在这个思路上补了一层加密,并把本机和服务器之间的那一段换成自己的格式。2015 年原作者停止维护后,项目由社区接手,延续出好几种实现,协议本身一直沿用到今天。

从 SS 到 SSR、V2Ray、Trojan、Hysteria:演变线上的几站

时间 名字 想解决什么 留下的问题
2012 年 Shadowsocks 传统 VPN 特征明显,换成轻量的加密代理 早期的流加密方式容易被探测识别
2015 年前后 ShadowsocksR 加协议插件和混淆,把流量装成 HTTP 等 2017 年停止维护,此后少有人更新
2015 年前后 V2Ray 与 VMess 做成平台,一个程序支持多种协议、传输方式和分流 配置繁琐,VMess 的格式仍有特征
2017 年 SS 的 AEAD 加密 补上早期加密方式的漏洞,内容被篡改能发现 外观仍是一串随机字节
2019 年 Trojan 不再「什么都不像」,改为模仿 HTTPS 离不开域名和证书
2020 年 VLESS 与 Xray 去掉重复加密,后来加上 Vision、Reality 要较新的客户端
2022 年 Shadowsocks 2022 加强防重放,密钥格式更严格 外观仍是随机字节
2023 年 Hysteria2、Reality 一个改走 UDP 抢速度,一个借真网站的握手 前者怕运营商限 UDP
2025 年 AnyTLS 打散 TLS 套 TLS 留下的包长规律 还新,客户端在跟进

顺着这张时间线能看出一个转向:早期的协议追求让流量「什么都不像」,2019 年以后的主流改成「像某种常见的东西」。Trojan 为什么这样转,Trojan 是什么那一讲交代了来龙去脉;V2Ray 这个名字今天指什么、和 v2rayN 是什么关系,见 v2rayN 是什么。

「什么都不像」为什么后来不灵了

SS 的伪装思路是「没有特征」:从第一个字节起全是密文,熵很高,没有任何可读的协议头。早些年这足以让它混过去。

问题在于,正常的网络流量很少是这样的。网页有 TLS 的握手格式,视频通话有自己的包头,一条从头到尾都像随机数的连接,反而和周围格格不入。2021 年以后,有研究者观察到这类「完全加密、看不出协议」的流量会被按特征整体拦截,直连境外的 SS 节点存活时间明显变短。

SS 社区的应对有两条:

  1. 把加密本身做扎实。 2017 年的 AEAD 加密让被篡改的数据会被发现,2022 年的新版加密又加强了防重放,探测者录下一段流量再发一遍,服务器不会上当。
  2. 在外面再套一层伪装。 通过插件把 SS 包进 WebSocket、TLS 握手之类的外观里,比如 v2ray-plugin、shadow-tls。后者的做法是先替你和一个真实网站完成 TLS 握手,再在这条连接里跑 SS 的数据,从外面看像在访问那个网站。用了插件的节点,链接里会多一个 plugin 参数。

但这两条都没改变一个事实:裸 SS 直连境外,越来越难长久。这正是它后来主要待在专线和中转线路上的原因。

划重点:「什么都不像」早年是 SS 的护身符,后来反倒成了破绽;它今天留在机场里,靠的是轻、快、客户端几乎全认,不再是伪装。

shadowsocksr 和 SS 是什么关系,SSR 节点今天还能不能用

ShadowsocksR 简称 SSR,是 2015 年前后从 SS 分出来的项目。它在 SS 的基础上加了两样东西:协议插件,用来改进认证;混淆,把流量开头装成 HTTP 请求或 TLS 握手的样子。在当时,SSR 一度和 SS 平分秋色,不少机场同时提供两种节点。

2017 年 SSR 停止维护,此后几乎没有更新。今天的情况是:

  • 新客户端里,支持 SSR 的越来越少,一些内核已经不再收录它。
  • 它的混淆方式年代久远,放到今天的识别手段面前没有优势。
  • 订阅里还只给 SSR 节点的机场,说明服务端多年没有更新过。

SSR 节点比 SS 多出 protocol 和 obfs 两组参数,分别对应前面说的协议插件和混淆。它的链接以 ssr:// 开头,整条都经过 Base64 编码,看上去是一长串字母;SS 的链接则以 ss:// 开头,两者不通用。

SS 今天在机场里的位置:专线和中转上的轻量协议

不少机场的线路分三段:国内入口、专线或中转、境外落地。你的设备到国内入口这一段不出境;跨境那一段如果走 IEPL、IPLC 专线,也不经过公网的国际出口。整条路径上,协议伪装的分量都轻了很多。这时比的是另一些东西:

  • 轻。 没有 TLS 握手,加密开销小,同样一台服务器能带更多用户。
  • 快。 连接建立少了几个来回,打开网页时的停顿短一点。
  • 兼容。 几乎所有客户端都认 SS,老设备上多年没更新的客户端也读得了。

所以你会看到,写着 SS 协议的机场往往同时写着专线或中转。34 家里官网写明用 SS 协议的有哪几家,可以翻各家协议那一页,SS 自成一组。

订阅里的 SS 节点怎么认,加密方式怎么看

通用订阅里,SS 节点以 ss:// 开头,@ 前面那一截是「加密方式:密码」经过 Base64 编码后的样子。下面是示意,解码后就是 aes-256-gcm 和 password 两项:

ss://YWVzLTI1Ni1nY206cGFzc3dvcmQ=@hk01.example.com:8388#香港01

放进 Clash 系配置时,它写作 type: ss,下面跟着 cipher 和 password 两项。值得看一眼的是加密方式:

加密方式的名字 属于哪一代 怎么看待
带 cfb、ctr、rc4、md5 的 早期流加密 已过时,部分新内核已不再支持
aes-128-gcm、aes-256-gcm、chacha20-ietf-poly1305 AEAD 加密 今天的常见配置
以 2022-blake3 开头的 Shadowsocks 2022 新版,对设备时间有要求,时钟偏差大会连不上

普通人怎么看待 SS 节点

订阅里给了 SS 节点,照常用就是。要留意的有三点:加密方式别是上表第一行那类;节点是不是带着需要插件的 plugin 参数;用的若是 2022 系列加密,手机和电脑的时间都要设成自动同步,手动改过时间的设备常在这一点上卡住。

暮光加速在官网标明用 Shadowsocks,四档周期套餐是 BGP 入口加专线出口,基础版 ¥20/月给 120GB,新账号用码 mm88 打 9 折;要注意它不给通用订阅链接,也就是没有一条能粘进客户端、自动拉取全部节点的地址,具体怎么连要先问客服。U1S1同样写 SS,出口走 IEPL 专线,官网写 iOS、安卓、macOS、Windows 四个系统都能用,只卖年付的就是好用包 ¥96/年、每月 60GB。想用 VLESS 的,一翻云标的是 VLESS 加 IEPL 专线,轻享版一个月 ¥20,含 150GB 流量,订阅付款后向客服要。

文中提到的机场

1

一翻云示范课

IEPL 专线,月付 ¥20 给 150GB,网站测过速度

月付起
¥20/月每月 150GB
年付平摊到月
¥8.2年付小包

码 1FLYYUN · 9 折最大档 1.2TB课上测得微信可付

3

暮光加速

SS 协议、设备不限,基础版月付 ¥20 给 120GB

月付起
¥20/月每月 120GB
年付平摊到月
¥9.1年付轻量版

码 mm88 · 9 折最大档 1500GB微信可付

14

U1S1

三网 BGP 入口接 IEPL 出口,SS 协议

月付起
¥20/月每月 120GB
年付平摊到月
¥8就是好用包

码 U1S1888 · 9 折最大档 1.5TB

课后自查

示范课一翻云的订阅里,给的是 SS 节点吗?

不是。一翻云官网写的协议是 VLESS,属于 Xray / V2Ray 一系,和 SS 不是一条线;线路是 IEPL 专线,轻享版 ¥20/月给 150GB。

SS 节点的加密方式那么多,哪几种已经不该用了?

名字里带 cfb、ctr、rc4、md5 这类的是早年的流加密,已知有被识别和篡改的风险,部分新内核已经拿掉了它们。今天常见的是 aes-128-gcm、aes-256-gcm、chacha20-ietf-poly1305 这些 AEAD 加密,以及以 2022-blake3 开头的新版加密,见到这几类就不用担心。

手里还有 SSR 的订阅,新客户端读不出来怎么办?

SSR 在 2017 年就停止维护,支持它的新客户端越来越少,读不出来是常态。比起去找旧客户端,更实际的做法是问机场有没有 SS 或别的协议的订阅;还只提供 SSR 的机场,说明它的服务端多年没有更新过,值得多掂量。