机场知识 知识解读

Shadowsocks 是什么?SS 协议原理、加密方式与机场中的用法

Shadowsocks(SS)是轻量的加密代理协议,用对称加密让流量呈现随机字节外观。本文讲清 AEAD 与 SS2022 加密、插件伪装、优缺点、客户端支持,以及它在机场专线节点中的常见用法。

首次发布
最后更新
内容类型
知识解读
资料核对
阅读时间
约 3 分钟

信息可能随服务调整而变化,请以最新官方信息为准。

直接答案

Shadowsocks(简称 SS)是一种轻量的加密代理协议:客户端与服务器共享一个密码,用对称加密把数据整体加密后转发,没有握手特征,外观接近一串随机字节。它结构简单、资源占用低、几乎所有客户端都支持,并原生支持 UDP 转发。它的短板是缺少伪装,直接穿越公网时容易被「完全加密流量」类检测识别,因此在机场中更常用于 IEPL、IPLC 等专线中转节点。

定义 Shadowsocks
一种开源的加密代理协议,客户端与服务器使用相同的密码和加密方式,对代理数据进行对称加密后通过 TCP 或 UDP 转发。协议本身不包含 TLS 握手或网站伪装,加密后的流量在外观上接近随机数据。

Key Takeaways · 要点速览

  • Shadowsocks 是基于预共享密码的对称加密代理,没有 TLS 握手,也没有伪装外观。
  • 目前应使用 AEAD 加密或 Shadowsocks 2022 系列加密,旧的流加密方式已不推荐。
  • 直接跨境使用时缺少伪装,可借助插件或 ShadowTLS 等方案补充,但配置更复杂。
  • 在专线中转节点中,SS 因轻量、低开销而常见,客户端兼容性也是各协议中最好的之一。

Shadowsocks 的直接解释

Shadowsocks 的设计非常朴素:客户端和服务器事先约定一个密码和一种加密方式,客户端把要访问的目标地址和数据一起加密后发给服务器,服务器解密后代为访问,再把结果加密送回。整个过程没有证书、没有域名、也没有类似 HTTPS 的握手,加密后的数据流看起来只是一串随机字节。

这种「什么都不像」的外观在早期是一种优势,但随着检测技术发展,它也成为最主要的短板。理解这一点,就能理解为什么 SS 至今仍然很常见,却又多出现在特定类型的节点里。

工作原理

  1. 客户端在本地开启 SOCKS5 / HTTP 代理或 TUN 接管流量。
  2. 每个连接开始时,客户端生成随机盐值,并用密码派生出本次会话的密钥。
  3. 目标地址与后续数据按加密方式分块加密,附带认证标签后发送。
  4. 服务器用相同的密码解密并校验,校验失败的数据直接丢弃。
  5. UDP 数据按包独立加密转发,因此游戏、语音等 UDP 应用也可以走 SS。

加密方式的演变

类别 代表算法 状态
流加密(Stream) rc4-md5、aes-256-cfb 等 已不推荐,缺少完整性校验,存在被主动探测的风险
AEAD aes-128-gcm、aes-256-gcm、chacha20-ietf-poly1305 目前的常用选择,兼顾安全性与兼容性
Shadowsocks 2022 以 2022-blake3 开头的系列算法 加强了重放防护与密钥规范,需要客户端支持,并要求系统时间基本准确

提示移动设备或没有 AES 硬件加速的路由器上,chacha20-ietf-poly1305 往往更省电、更流畅;电脑端 aes-128-gcm 与 aes-256-gcm 通常都足够快。使用机场订阅时,加密方式由服务端决定,不需要手动修改。

伪装方式与插件

Shadowsocks 本身没有伪装层。公开研究表明,审查系统可以基于数据的随机程度、可打印字符比例等启发式规则识别「完全加密流量」,因此裸 SS 直接跨境容易被干扰。为此出现过几类补充方案:

组合 思路 说明
SS 原生(TCP + UDP) 无伪装 最轻量,适合专线中转或内网链路
SS + simple-obfs 伪装为 HTTP 或 TLS 外观 较早期方案,伪装较浅,已不推荐
SS + v2ray-plugin 走 WebSocket,可叠加 TLS 伪装为网站流量,可经过 CDN
SS + ShadowTLS 借用真实网站的 TLS 握手 思路与 Reality 接近,需要客户端支持

插件需要客户端和服务端同时配置,不同客户端对插件的支持差异较大,以客户端最新说明为准。

优点与局限

优点

  • 协议简单、开销小,CPU 占用低,适合手机和路由器。
  • 原生支持 UDP 转发。
  • 客户端覆盖面极广,几乎所有代理客户端都能识别 ss:// 链接或订阅中的 SS 节点。

局限

  • 没有伪装层,直接穿越公网时抗识别能力弱。
  • 预共享密码模式下,同一密码泄露会影响该节点所有使用者。
  • 不同加密方式与插件组合较多,自建时容易配错。

客户端支持情况

客户端 SS(AEAD) SS2022 插件
Clash Verge Rev(Mihomo 内核) 支持 支持 部分支持,以说明为准
sing-box 支持 支持 部分支持,以说明为准
v2rayN 支持 取决于所选内核 取决于所选内核
Shadowrocket 支持 以最新版本说明为准 部分支持
Stash / Surge 支持 以官方说明为准 以官方说明为准

在机场中的使用场景

  • 专线中转节点:入口在国内、经 IEPL 或 IPLC 等专线到海外,公网出境段不暴露在普通跨境链路上,轻量的 SS 很常见。
  • 游戏与语音:需要 UDP 转发时,SS 节点是兼容性较好的选择。
  • 老旧设备:路由器或旧手机上,SS 的低开销优势明显。

如果你的订阅里同时有 SS 与 Trojan、VLESS 节点,可以把 SS 作为专线或 UDP 场景的选择,把 TLS 类协议作为直连节点的主力。中转与直连的区别见 中转机场和直连机场有什么区别。

结论

Shadowsocks 是最早普及、至今仍广泛使用的代理协议之一。它的价值在于轻量和兼容,而不在于伪装。在专线中转、UDP 应用和低性能设备上它依然好用;需要直接跨境且强调抗识别时,TLS 或 Reality 类方案通常更合适。各协议的横向对比可参考 代理协议对比。

常见问题

Shadowsocks 和 Trojan 哪个好?

两者取向不同。Trojan 依赖 TLS,外观与 HTTPS 网站一致,适合直接穿越公网;Shadowsocks 更轻量,没有伪装,适合专线中转或对伪装要求不高的场景。机场订阅里两者都有时,按机场推荐和实际稳定性选择即可。

SS 节点的加密方式应该怎么选?

用机场订阅自动下发的加密方式即可,客户端与服务端必须一致。自行搭建时优先选择 AEAD 类(如 aes-128-gcm、chacha20-ietf-poly1305)或 Shadowsocks 2022 系列,不要再使用旧的流加密方式。

SS2022 节点连不上可能是什么原因?

常见原因是客户端或内核版本过旧不支持 2022 系列加密,或者系统时间偏差较大。先更新客户端并校准系统时间,再重新更新订阅。

为什么专线机场常用 Shadowsocks?

专线入口到海外出口的这一段不经过普通公网出境,对伪装的要求较低,此时轻量、开销小的 SS 更有优势。具体使用哪种协议由机场决定,以订阅中的实际节点为准。