Shadowsocks(常简称 SS)是一种开源的加密代理协议,客户端把需要代理的流量用预先约定的密码加密后发往服务器,由服务器解密并代为访问目标网站。它开销小、几乎所有客户端都支持,是机场最常见的协议之一;对选机场而言,SS 节点好不好用主要取决于搭配的线路,而不是协议本身。
概念:SS 是什么样的协议
SS 只做两件事:加密和转发。它不模仿 HTTPS 握手,也不需要域名和证书,而是让加密后的数据流看起来像没有明显特征的随机数据。正因为结构简单,它对设备性能要求很低,路由器、旧手机都能流畅运行。
原理:一次连接的过程
- 应用把请求交给本地代理客户端。
- 客户端用约定的密码和加密方式加密目标地址与数据,经 TCP 或 UDP 发往服务器。
- 服务器用相同密码解密,代为访问目标网站。
- 响应数据同样加密后返回客户端。
这里的关键是“预先约定”:客户端和服务器必须使用完全相同的密码和加密方式,任何一项不一致都会导致连接失败,而且客户端往往不会给出明确的错误提示。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 节点有的快有的慢?
协议相同,但每个节点的线路、出口位置和负载不同,晚高峰时差异会更明显,应按节点分别测试。