划重点
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 社区的应对有两条:
- 把加密本身做扎实。 2017 年的 AEAD 加密让被篡改的数据会被发现,2022 年的新版加密又加强了防重放,探测者录下一段流量再发一遍,服务器不会上当。
- 在外面再套一层伪装。 通过插件把 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 流量,订阅付款后向客服要。
文中提到的机场
课后自查
示范课一翻云的订阅里,给的是 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 的机场,说明它的服务端多年没有更新过,值得多掂量。