Shadowsocks 2022(简称 SS2022)是 SS 家族唯一还在认真维护的分支。它修掉了老版本的两个硬伤——重放攻击和多用户共用密码,同时保留了 SS 最大的优点:轻、快、客户端遍地都是。
一、和老 SS 的差别
| 维度 | 老 SS(aes-256-cfb 等) | SS2022 |
|---|---|---|
| 加密 | 流密码 + AEAD 混合 | 强制 AEAD(blake3 派生密钥) |
| 重放保护 | 无 | 有时间窗校验 |
| 多用户 | 共用一个密码 | 每用户独立密钥 |
| UDP | 支持但实现各异 | 原生支持 |
| 维护状态 | 停止 | 活跃 |
二、装 shadowsocks-rust
原版 Python 实现性能一般,生产环境建议用 Rust 版。
apt update && apt -y install curl tar
cd /tmp
VER=$(curl -s https://api.github.com/repos/shadowsocks/shadowsocks-rust/releases/latest | grep tag_name | cut -d'"' -f4)
curl -LO "https://github.com/shadowsocks/shadowsocks-rust/releases/download/${VER}/shadowsocks-v${VER#v}.x86_64-unknown-linux-gnu.tar.xz"
tar -xf shadowsocks-*.tar.xz -C /usr/local/bin/
ssserver --version
三、生成密钥并写配置
SS2022 的密码不是随便写的字符串,而是按加密方式规定的字节长度、base64 编码后的密钥。长度错了直接启动失败。
# 2022-blake3-aes-128-gcm → 16 字节
openssl rand -base64 16
# 2022-blake3-aes-256-gcm → 32 字节
openssl rand -base64 32
cat > /etc/shadowsocks.json <<'EOF'
{
"server": "0.0.0.0",
"server_port": 8388,
"method": "2022-blake3-aes-128-gcm",
"password": "把上面生成的16字节base64粘这里",
"mode": "tcp_and_udp",
"timeout": 300
}
EOF
多用户写法(每个用户独立密钥,泄露不影响别人):
{
"server": "0.0.0.0",
"server_port": 8388,
"method": "2022-blake3-aes-128-gcm",
"password": "服务器主密钥",
"users": [
{ "name": "alice", "password": "alice的独立密钥" },
{ "name": "bob", "password": "bob的独立密钥" }
],
"mode": "tcp_and_udp"
}
四、systemd 常驻
cat > /etc/systemd/system/ssserver.service <<'EOF'
[Unit]
Description=Shadowsocks 2022 Server
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/ssserver -c /etc/shadowsocks.json
Restart=always
RestartSec=3
LimitNOFILE=51200
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable --now ssserver
systemctl status ssserver --no-pager
ss -lunp | grep 8388
五、客户端
ss://2022-blake3-aes-128-gcm:密钥@服务器IP:8388#ss2022-node
- sing-box、Mihomo(1.17+)、Shadowrocket、Surge 均已支持
- 老版本 Clash 内核不支持 SS2022,报
unknown cipher就是这个问题 - 多用户时,客户端密码填自己的那个,不是服务器主密钥
六、排错
| 现象 | 原因 | 处理 |
|---|---|---|
| 启动报 key length | 密钥字节数不对 | 128 用 16 字节,256 用 32 字节 |
| 客户端 unknown cipher | 内核太老 | 升级到支持 2022 的内核 |
| 能连不能开网页 | UDP 未启用 | 配置加 tcp_and_udp |
| 高峰期卡 | 单端口被限速 | 换端口或加中转 |
| 日志刷 replay attack | 时钟偏差或重放 | 校时,换密钥 |
七、它的位置
SS2022 没有 TLS 外观,也就没有”伪装”能力,抗主动探测不如 Reality。但它的优势很实在:协议简单、开销低、兼容性好。适合放在内网穿透、跨境办公、或者已经有稳定线路只需要一个轻量出口的场景。
对外抗审查场景,建议 SS2022 和 Reality 并存:日常走 SS2022 省资源,敏感时期切 Reality。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END









暂无评论内容