2551 字
13 分钟

Shadowsocks 协议完全指南:轻量加密原理、shadowsocks-rust 部署与全平台客户端配置(2026最新)

Shadowsocks(常缩写为 SS)是科学上网协议里的「老前辈」,也是轻量加密代理的代名词。它足够简单:一个 SOCKS5 代理 + 一层 AEAD 加密,几乎不消耗 CPU,部署一行命令就能跑。但它也有众所周知的软肋——流量特征明显、易被主动探测。本文既讲清它的原理与部署,也重点讲 2026 年还能让它「活下来」的混淆方案,补齐 VMess / VLESS Reality / Hysteria2 / Trojan 之外的最后一块协议拼图。

Shadowsocks 协议完全指南

阅读提示

Shadowsocks 与 《Trojan 协议完全指南》《VLESS Reality 协议完全指南》《Hysteria2 协议完全指南》《V2Ray / VMess 完全配置指南》 互为补充。四篇(现已补上 SS 共五篇)合起来就是 2026 年自建节点的完整协议图谱。SS 适合「轻量、低延迟、弱审查」场景,强审查环境务必加混淆。


一、协议原理:Shadowsocks 到底是什么#

1.1 轻量加密代理的鼻祖思路#

Shadowsocks 的本质 = SOCKS5 代理 + 一层对称加密

客户端 App ──▶ SS 本地监听(1080) ──▶ AEAD 加密 ──▶ 服务器 ──▶ 解密 ──▶ 目标网站
  • 客户端把「要访问的目标 + 真实数据」用密钥加密后发给服务器;
  • 服务器解密、按 SOCKS5 协议解析出目标地址、代为请求;
  • 返回数据同样加密回传。

整个过程不依赖 TLS、不依赖域名,所以部署极简、握手极快、CPU 占用极低。

1.2 AEAD 加密(为什么别再用老 cipher)#

现代 Shadowsocks 一律使用 AEAD(认证加密) 算法,主流:

算法特点推荐度
aes-256-gcm硬件 AES 加速,Intel/AMD 平台最快✅ 通用首选
chacha20-ietf-poly1305无 AES 指令的设备(部分 ARM)更快✅ 移动/低功耗首选
2022-blake3-aes-256-gcmSS2022 新算法,安全性更高✅ 新部署首选
2022-blake3-chacha20-poly1305SS2022 新算法,移动端友好✅ 新部署首选
aes-256-cfb / rc4流密码,已被证明不安全❌ 禁用

老式 aes-256-cfb 等非 AEAD 算法在 2017 年的「SS 被大规模识别」事件中暴露出可被主动探测破解的缺陷,2026 年任何新部署都不应使用。

1.3 致命弱点:流量特征与主动探测#

Shadowsocks 的加密流量「看起来就是一段随机字节」,没有合法协议外壳:

  • 被动识别:流量统计特征(包长分布、时序)与正常 HTTPS 差异明显,机器学习型审查可区分。
  • 主动探测(最关键):审查节点向你的 443/端口发一个伪造请求,真正的 HTTPS 服务会回一个合法的 TLS 响应,而 Shadowsocks 服务器因为「解不开这层加密」会返回错误或静默——这个异常响应就是铁证。

所以:裸 SS 在强审查环境(GFW)下基本活不过几天。要长期稳定,必须给它套一层「像正常流量」的外壳(见第七章)。

1.4 与其他协议对比#

协议是否套 TLS流量特征抗主动探测部署复杂度性能
Shadowsocks否(裸)明显随机字节极低极快、省 CPU
Trojan是(真 TLS)标准 HTTPS中(需证书)
VLESS Reality是(偷证书)标准 HTTPS极强低(免证书)
VMess否(自带加密)自定义协议
Hysteria2否(QUIC)UDP 混淆弱网极强

二、Shadowsocks 2022 与旧版区别#

如果你看到教程还在用 method: aes-256-cfb + 任意字符串密码,那套已经过时。SS2022 的关键升级:

  1. 强制 AEAD,淘汰流密码;
  2. BLAKE3 新 cipher(见 1.2);
  3. 多用户支持:服务端配置一个 main_key,每个用户再分配一个独立 key,可单独吊销;
  4. 密钥格式标准化:SS2022 的密钥是固定长度(如 32 字节)的 base64,不再接受任意弱密码。
// SS2022 多用户配置示例(节选)
{
"method": "2022-blake3-aes-256-gcm",
"main_key": "<32字节base64主密钥>",
"users": [
{ "name": "phone", "key": "<用户1密钥>" },
{ "name": "laptop", "key": "<用户2密钥>" }
]
}

2026 年新部署:一律 SS2022。


三、准备工作#

  • 一台境外 VPS(SS 极轻量,512MB 内存也跑得动)
  • 开放一个 TCP 端口(如 8388;抗封锁走插件时常用 443)
  • 如需混淆(v2ray-plugin / shadow-tls),准备一个域名并解析到 VPS

四、服务端部署:shadowsocks-rust#

shadowsocks-rust 是目前社区维护最活跃、性能最好的实现(C++ 原版已停止维护,Go 版 go-shadowsocks2 偏底层)。下面以它为例。

4.1 安装#

Terminal window
# 方式一:Docker(推荐,环境干净)
docker run -d --name ss-rust \
-p 8388:8388 \
-v /etc/shadowsocks:/etc/shadowsocks \
ghcr.io/shadowsocks/ssserver-rust:latest
# 方式二:下载二进制
curl -L https://github.com/shadowsocks/shadowsocks-rust/releases/latest/download/shadowsocks-v1.x.x.x86_64-unknown-linux-gnu.tar.xz | tar -xJ
sudo mv ssserver /usr/local/bin/

4.2 配置文件(SS2022 单用户)#

{
"server": "0.0.0.0",
"server_port": 8388,
"method": "2022-blake3-aes-256-gcm",
"password": "<你的base64密钥,可用 `ssservice genkey` 生成>",
"mode": "tcp_and_udp",
"fast_open": true
}
Terminal window
# 生成 SS2022 密钥
ssservice genkey --method 2022-blake3-aes-256-gcm
# 输出:password: xxxxxxxx(这就是 password 字段值)
# 启动
ssserver -c /etc/shadowsocks/config.json

4.3 防火墙#

Terminal window
# UFW 放行
ufw allow 8388/tcp
ufw allow 8388/udp

4.4 (推荐)加 v2ray-plugin 抗封锁#

裸 SS 在强审查环境活不久。最稳妥的是用 v2ray-plugin 把 SS 流量塞进 WebSocket + TLS,从而伪装成正常 HTTPS 并走 CDN:

Terminal window
# 服务端启动 v2ray-plugin(TLS + WS)
ssserver -c config.json \
--plugin v2ray-plugin \
--plugin-opts "server;tls;host=trojan.example.com;path=/ray;cert=/etc/xray/trojan.crt;key=/etc/xray/trojan.key"

对应客户端也要开启同样的 plugin 选项(见第五章)。


五、客户端配置#

5.1 Clash Meta(mihomo)#

proxies:
- name: "SS-节点"
type: ss
server: example.com
port: 8388
cipher: 2022-blake3-aes-256-gcm
password: "<服务端 password 密钥>"
udp: true
# 若服务端用了 v2ray-plugin:
plugin: v2ray-plugin
plugin-opts:
mode: websocket
host: example.com
path: /ray
tls: true
skip-cert-verify: false

5.2 sing-box#

{
"outbounds": [
{
"type": "shadowsocks",
"tag": "ss-out",
"server": "example.com",
"server_port": 8388,
"method": "2022-blake3-aes-256-gcm",
"password": "<服务端密钥>",
"plugin": "v2ray-plugin",
"plugin_opts": "path=/ray;host=example.com;tls"
}
]
}

5.3 Shadowrocket(iOS)#

添加节点 → 类型选 Shadowsocks → 填写:

  • 服务器 / 端口 / 密码(密钥)/ 加密方法(2022-blake3-aes-256-gcm
  • 若用了 plugin:传输方式WebSocket,填写 Host / Path,并开启 TLS

5.4 v2rayN(Windows)#

服务器添加 [Shadowsocks] 服务器 → 填写地址、端口、密码、加密方法。用 plugin 时在「插件选项」里配置 v2ray-plugin 的 WS/TLS 参数。


六、URI 链接格式#

SS 的分享链接(SIP002 标准):

ss://<base64(method:password)>@<host>:<port>#<节点名>

SS2022 则把密钥直接作为密码段:

ss://2022-blake3-aes-256-gcm:<base64密钥>@example.com:8388#我的SS节点

机场订阅通常把这类链接打包进订阅 URL,客户端一键导入。


七、进阶:让 SS 「活下来」的三种混淆方案#

裸 SS 在强审查环境几乎必死,下面是 2026 年仍有效的三条出路:

7.1 v2ray-plugin(WebSocket + TLS,走 CDN)#

最成熟方案。把 SS 流量包进 WebSocket,再套自有 TLS 证书,最后经 Cloudflare 等 CDN 转发:

  • 外界看到的是「访问 CDN 上的正常 HTTPS 站点」
  • 好处:CDN 隐藏真实 VPS IP,换机不改域名
  • 代价:需要域名 + 证书,延迟略增

7.2 shadow-tls(借用真实站点证书)#

shadow-tls 的思路类似 Reality:借用真实大型站点的 TLS 证书来伪装 SS 的握手,无需自有证书:

  • 服务端配置 shadow-tls server,指定一个「伪装目标站点」(如 www.apple.com
  • 客户端 shadow-tls client 连接时,审查者看到的是与真实站点的标准 TLS 握手
  • 比 v2ray-plugin 省去域名证书负担,但配置稍复杂

7.3 直接改用 Trojan / Reality#

如果你的目标就是「长期稳定抗封锁」,老实说——Trojan 或 VLESS Reality 比「加了混淆的 SS」更简单也更稳。SS 的核心优势是轻量和低延迟,抗封锁并非它的强项。务实建议:弱审查/自用轻量场景用 SS,强审查/长期主力用 Trojan/Reality。


八、性能优化#

  1. 选对 cipher:x86 服务器用 aes-256-gcm(AES 硬件加速);ARM/旧设备用 chacha20-ietf-poly1305
  2. 开 UDP 转发:配置 mode: tcp_and_udp,让 DNS 查询、QUIC(HTTP/3)、游戏走 UDP 不被降级。
  3. BBR 加速:VPS 开 BBR(见 《Linux VPS 网络优化与 BBR 加速完全指南》),首包延迟显著下降。
  4. fast_open:开启 TCP Fast Open 减少一次握手往返。
  5. 多用户用 SS2022:避免多人共用同一密钥导致互相牵连限速或被封。

九、实测数据#

测试环境:境外 VPS(1C1G),本地电信 500M,2026-07 实测。

指标裸 SS (aes-256-gcm)SS + v2ray-pluginTrojanVLESS Reality
单连接吞吐跑满带宽跑满带宽跑满带宽跑满带宽
CPU 占用(1Gbps)极低
握手延迟最低略高(多一层 WS)
抗主动探测弱(易封)极强

结论:SS 的性能与延迟是五协议里最靓的,但安全余量最小,必须靠混淆补强。


十、常见问题排错#

Q1:能连但几小时就被封 IP

  • 裸 SS 在强审查环境几乎必封。立刻加 v2ray-plugin 或 shadow-tls,或直接换 Trojan/Reality。

Q2:客户端提示 cipher / 密钥错误

  • 确认服务端和客户端 method 完全一致(含 SS2022 的 2022-blake3-* 前缀)
  • SS2022 的 password 必须是 ssservice genkey 生成的 base64 密钥,不能用任意字符串

Q3:UDP 不通(DNS 解析慢 / 游戏连不上)

  • 服务端配置加 "mode": "tcp_and_udp",客户端也开启 UDP 支持

Q4:v2ray-plugin 连不上

  • 服务端和客户端 plugin 参数必须完全对应(host / path / tls 一致)
  • 证书有效时客户端 skip-cert-verify 必须 false

十一、协议选型建议#

  • 轻量、低延迟、弱审查、自用/局域网穿透:选 Shadowsocks(本文)
  • 强审查、长期稳定主力:选 Trojan 或 VLESS Reality
  • 高延迟/丢包网络:选 Hysteria2
  • 老牌稳健、生态兼容广:选 VMess

实战中,不少机场会同时提供 SS(给轻度用户)与 Trojan/Reality(给重度用户)。自建用户若想「一套搞定」,至少掌握 Trojan + Reality;若偏好 SS 的轻量和低延迟,务必记得加混淆,别裸奔。


相关文章

本文命令与配置以 2026 年 7 月 shadowsocks-rust / v2ray-plugin / shadow-tls 稳定版为准。协议与工具迭代较快,具体参数请以官方文档为准。

Shadowsocks 协议完全指南:轻量加密原理、shadowsocks-rust 部署与全平台客户端配置(2026最新)
https://971918.xyz/posts/proxy-tools/shadowsocks-protocol-guide/
作者
九所长
发布于
2026-07-31
许可协议
CC BY-NC-SA 4.0