本文最后更新于 2026 年 4 月 26 日
本文以 Debian 13 / Ubuntu 24.04 LTS 系统为例,介绍如何部署 shadowsocks-rust 服务端。同样适用于其他基于 Debian 的发行版。
注:请先参照 Debian & Ubuntu 服务器的初始化配置 一文对服务器进行必要配置。本文以 sammy 用户为例,默认已完成初始化配置。
准备
- 一台拥有公网 IP 的服务器(例如 BandwagonHost、Vultr 等 VPS)
- 基础 Linux 操作知识,了解
vim编辑器的基本用法
关于加密方式的选择
shadowsocks-rust 目前支持两代 AEAD 加密:
旧版 AEAD(仍可用,但不再推荐):aes-256-gcm、chacha20-ietf-poly1305 等。存在重放过滤器误报率随时间增长、无 UDP 重放保护等已知问题。
AEAD-2022(SIP022,强烈推荐):2022-blake3-aes-256-gcm、2022-blake3-chacha20-poly1305 等。使用 BLAKE3 派生会话子密钥,内置完整的重放保护和时间戳校验,性能与安全性均优于旧版。密钥必须是符合算法长度要求的 Base64 编码随机密钥,不再支持自定义明文密码。
建议:如果客户端支持(shadowsocks-rust、sing-box、Clash.Meta/mihomo 等均已支持),一律使用 2022-blake3-aes-256-gcm。如果客户端仅支持旧版 AEAD(如部分老旧移动客户端),退而使用 aes-256-gcm。
安装
1 | sudo apt update && sudo apt install snapd -y |
生成密钥
使用 snap 自带的 ssservice 工具生成符合算法要求的密钥:
1 | sudo snap run shadowsocks-rust.ssservice genkey -m "2022-blake3-aes-256-gcm" |
输出类似:qGbN2mZlrmBLjFr0HNpJp1sOJzP+AliPuOLmVXqG2U0=
妥善保存此密钥,后续配置中使用。
配置
1 | sudo mkdir -p /var/snap/shadowsocks-rust/common/etc/shadowsocks-rust |
1 | { |
配置说明:
"server": "::"— 同时监听 IPv4 和 IPv6,如果仅需 IPv4 可改为"0.0.0.0"server_port— 建议使用常用端口(如 443)以降低被识别的概率password— 必须是ssservice genkey生成的 Base64 密钥,不要使用自定义明文密码fast_open— 启用 TCP Fast Open,需要内核支持,见初始化配置中的相关小节timeout— 空闲超时时间(秒)
启动并检查
激活服务并设为开机自启:
1 | sudo snap start --enable shadowsocks-rust.ssserver-daemon |
查看服务状态:
1 | sudo snap services shadowsocks-rust.ssserver-daemon |
查看运行日志:
1 | sudo snap logs shadowsocks-rust.ssserver-daemon |
如果需要自定义启动参数(如指定配置文件路径),可以编辑 systemd 服务:
1 | sudo systemctl edit snap.shadowsocks-rust.ssserver-daemon.service |
添加以下内容覆盖默认启动命令:
1 | [Service] |
然后重启服务:
1 | sudo systemctl daemon-reload |
防火墙配置
1 | sudo ufw allow 你的端口 |
性能调优
如果尚未启用 BBR 和 TCP Fast Open,请参照初始化配置中的相关章节操作。
优化内核网络参数(可选)
1 | cat << 'EOF' | sudo tee /etc/sysctl.d/99-shadowsocks.conf |
客户端配置示例
客户端配置需与服务端加密方式和密钥一致:
1 | { |
常用的支持 AEAD-2022 的客户端:shadowsocks-rust(sslocal)、sing-box、Clash.Meta (mihomo)、Shadowrocket (iOS)、v2rayN (Windows) 等。