概述
Shadowsocks 是一种轻量级加密代理协议,诞生于 2012 年,设计目标是简洁高效,主要用于对抗基于关键字或简单模式的网络拦截。客户端使用事先共享的密码与加密算法派生会话密钥,直接将流量加密发送,服务端用同一密码解密,流程简单,没有独立的认证握手。

工作原理
用户 → Shadowsocks 客户端(对称加密)→ Shadowsocks 服务端(对称解密)→ 目标网站
每个 TCP/UDP 数据包都经加密处理,协议头尽量紧凑,无额外握手或协商过程。
加密方式
在应用层进行对称加密,常见算法包括 AES-256-GCM、ChaCha20-Poly1305 等。早期支持的不安全加密方式(如 rc4、aes-128-cfb)已在最新版本中移除。
特点
- 轻量化设计,延迟低,CPU 占用少
- 实现简单,客户端生态极其丰富(Windows / macOS / Linux / iOS / Android / 路由器)
- 默认无流量伪装,协议特征相对明显
- 可通过插件(如 simple-obfs、v2ray-plugin)增强伪装能力
优势
- 延迟低:无复杂握手,首包延迟极小
- 资源占用少:适合低配设备(路由器、树莓派等)
- 部署简单:只需一个密码和端口即可运行
- 生态成熟:所有主流客户端均支持
劣势
- 抗检测能力弱:默认无流量伪装,容易被深度包检测(DPI)识别特征
- 无内置认证机制:仅依赖密码,缺乏完善的防重放攻击设计
- 单连接模型:不支持多路复用,高并发场景性能受限
- 协议特征已被广泛研究,裸跑在当前网络环境下几乎必被封
适用场景
- 资源受限的设备(路由器、嵌入式设备)
- 无强烈 DPI 审查的网络环境
- 追求极低延迟的轻量代理需求
- 配合插件使用作为入门级方案