Shadowsocks 2022 搭建教程:多用户与重放防护

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
喜欢就支持一下吧
点赞6 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容