协议知识 · 知识百科

Shadowsocks 是什么

作者:机场a 编辑部 更新: 阅读约 3 分钟

Shadowsocks(常简称 SS)是一种开源的加密代理协议,客户端把需要代理的流量用预先约定的密码加密后发往服务器,由服务器解密并代为访问目标网站。它开销小、几乎所有客户端都支持,是机场最常见的协议之一;对选机场而言,SS 节点好不好用主要取决于搭配的线路,而不是协议本身。

概念:SS 是什么样的协议

SS 只做两件事:加密和转发。它不模仿 HTTPS 握手,也不需要域名和证书,而是让加密后的数据流看起来像没有明显特征的随机数据。正因为结构简单,它对设备性能要求很低,路由器、旧手机都能流畅运行。

原理:一次连接的过程

  1. 应用把请求交给本地代理客户端。
  2. 客户端用约定的密码和加密方式加密目标地址与数据,经 TCP 或 UDP 发往服务器。
  3. 服务器用相同密码解密,代为访问目标网站。
  4. 响应数据同样加密后返回客户端。

这里的关键是“预先约定”:客户端和服务器必须使用完全相同的密码和加密方式,任何一项不一致都会导致连接失败,而且客户端往往不会给出明确的错误提示。2022 系列加密对密钥格式还有额外要求,一般需要 Base64 编码的固定长度密钥,手动填写时尤其容易出错,通过订阅导入则无需关心。

常见区别:加密方式的演进

阶段 典型加密方式 说明
早期流加密 rc4-md5、aes-256-cfb 等 已淘汰,存在被主动探测和篡改的风险
AEAD 加密 aes-128-gcm、aes-256-gcm、chacha20-ietf-poly1305 长期主流,同时提供加密和完整性校验
Shadowsocks 2022 2022-blake3-aes-128-gcm、2022-blake3-aes-256-gcm 等 新版规范,改进了重放防护等设计,需客户端支持

与其他协议相比:

对比项 Shadowsocks Trojan VLESS + Reality Hysteria2
传输层 TCP / UDP TCP + TLS TCP + Reality QUIC(UDP)
伪装方式 无明显特征的加密流 模仿 HTTPS 借用真实网站的 TLS 握手 模仿 HTTP/3
性能开销 很低 低 低 中
客户端支持 最广 广 较广,需较新客户端 需较新客户端

更多协议介绍见 Trojan 和 VLESS 与 Reality。

实际作用:优点与局限

优点:轻量高效,适合低性能设备;配置只需地址、端口、密码和加密方式;支持 UDP,可用于游戏、语音(需服务器开启);兼容性最好。

局限:“看起来没有特征”本身在某些检测方式下也可能成为特征,直连 SS 在部分网络环境下更容易受干扰;也没有 Trojan、Reality 那样的内置伪装。

因此机场中的 SS 节点常与中转或专线搭配:入口到出口走专线或优化线路,SS 只负责加密,协议特征的影响较小,又能发挥低延迟的优势。线路差异见 直连与中转的区别。

使用场景与客户端

  • 路由器、旧手机、电视盒子等性能有限的设备;
  • 专线或中转节点,追求低延迟和低开销;
  • 需要在多种客户端间通用的场景。

几乎所有主流客户端都支持 SS,例如 Android 上的 Clash Meta for Android,iOS 上的 Quantumult X 和 Shadowrocket,跨平台的 sing-box。使用 2022 系列加密时,要确认客户端版本支持。

选机场时看什么

  • 协议不是决定性因素:同样是 SS,搭配专线和搭配普通直连,体验差别很大。
  • 看加密方式是否现代:优先 AEAD 或 2022 系列,仍在用流加密的机场说明配置陈旧。
  • 多协议更灵活:同时提供 SS 和其他协议的机场,某种协议受干扰时可以切换。

宣传里要警惕把“SS 节点”说成“更安全”或“更快”的说法:协议只决定加密和封装方式,速度和稳定性主要看线路与负载。

常见问题

SS 和 SSR 是一回事吗?

不是。SSR(ShadowsocksR)是早年基于 SS 的分支,增加了混淆和协议插件,现已基本停止维护,新客户端支持也越来越少。

SS 节点导入后连不上?

先确认客户端支持该加密方式,尤其是 2022 系列;再检查系统时间和本地网络,最后换同地区其他节点对比。

SS 适合玩游戏吗?

SS 支持 UDP 转发,可以用于游戏,但前提是服务器开启了 UDP,且线路延迟和丢包足够低。游戏体验更多取决于线路。

为什么同一机场的 SS 节点有的快有的慢?

协议相同,但每个节点的线路、出口位置和负载不同,晚高峰时差异会更明显,应按节点分别测试。

相关阅读

按 ⌘K / Ctrl+K 打开搜索