Debian & Ubuntu 上部署 shadowsocks-rust 服务端

Contents
  1. 1. 准备
  2. 2. 关于加密方式的选择
  3. 3. 安装
  4. 4. 生成密钥
  5. 5. 配置
    1. 5.1. 启动并检查
  6. 6. 防火墙配置
  7. 7. 性能调优
    1. 7.1. 优化内核网络参数(可选)
  8. 8. 客户端配置示例
  9. 9. References

本文最后更新于 2026 年 4 月 26 日


本文以 Debian 13 / Ubuntu 24.04 LTS 系统为例,介绍如何部署 shadowsocks-rust 服务端。同样适用于其他基于 Debian 的发行版。

注:请先参照 Debian & Ubuntu 服务器的初始化配置 一文对服务器进行必要配置。本文以 sammy 用户为例,默认已完成初始化配置。


准备

  • 一台拥有公网 IP 的服务器(例如 BandwagonHostVultr 等 VPS)
  • 基础 Linux 操作知识,了解 vim 编辑器的基本用法

关于加密方式的选择

shadowsocks-rust 目前支持两代 AEAD 加密:

旧版 AEAD(仍可用,但不再推荐):aes-256-gcmchacha20-ietf-poly1305 等。存在重放过滤器误报率随时间增长、无 UDP 重放保护等已知问题。

AEAD-2022(SIP022,强烈推荐)2022-blake3-aes-256-gcm2022-blake3-chacha20-poly1305 等。使用 BLAKE3 派生会话子密钥,内置完整的重放保护和时间戳校验,性能与安全性均优于旧版。密钥必须是符合算法长度要求的 Base64 编码随机密钥,不再支持自定义明文密码。

建议:如果客户端支持(shadowsocks-rust、sing-box、Clash.Meta/mihomo 等均已支持),一律使用 2022-blake3-aes-256-gcm。如果客户端仅支持旧版 AEAD(如部分老旧移动客户端),退而使用 aes-256-gcm


安装

1
2
sudo apt update && sudo apt install snapd -y
sudo snap install shadowsocks-rust

生成密钥

使用 snap 自带的 ssservice 工具生成符合算法要求的密钥:

1
sudo snap run shadowsocks-rust.ssservice genkey -m "2022-blake3-aes-256-gcm"

输出类似:qGbN2mZlrmBLjFr0HNpJp1sOJzP+AliPuOLmVXqG2U0=

妥善保存此密钥,后续配置中使用。

配置

1
2
sudo mkdir -p /var/snap/shadowsocks-rust/common/etc/shadowsocks-rust
sudo vim /var/snap/shadowsocks-rust/common/etc/shadowsocks-rust/config.json
/var/snap/shadowsocks-rust/common/etc/shadowsocks-rust/config.json
1
2
3
4
5
6
7
8
9
{
"server": "::",
"server_port": 你的端口,
"password": "上一步生成的Base64密钥",
"timeout": 300,
"method": "2022-blake3-aes-256-gcm",
"mode": "tcp_and_udp",
"fast_open": true
}

配置说明:

  • "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
2
3
[Service]
ExecStart=
ExecStart=/usr/bin/snap run shadowsocks-rust.ssserver-daemon -c /var/snap/shadowsocks-rust/common/etc/shadowsocks-rust/config.json

然后重启服务:

1
2
sudo systemctl daemon-reload
sudo systemctl restart snap.shadowsocks-rust.ssserver-daemon.service

防火墙配置

1
sudo ufw allow 你的端口

性能调优

如果尚未启用 BBR 和 TCP Fast Open,请参照初始化配置中的相关章节操作。

优化内核网络参数(可选)

1
2
3
4
5
6
7
8
cat << 'EOF' | sudo tee /etc/sysctl.d/99-shadowsocks.conf
net.core.rmem_max=16777216
net.core.wmem_max=16777216
net.ipv4.tcp_rmem=4096 87380 16777216
net.ipv4.tcp_wmem=4096 65536 16777216
net.ipv4.tcp_mtu_probing=1
EOF
sudo sysctl -p /etc/sysctl.d/99-shadowsocks.conf

客户端配置示例

客户端配置需与服务端加密方式和密钥一致:

1
2
3
4
5
6
7
8
9
10
{
"server": "你的服务器IP或域名",
"server_port": 你的端口,
"password": "与服务端相同的Base64密钥",
"method": "2022-blake3-aes-256-gcm",
"local_address": "127.0.0.1",
"local_port": 1080,
"mode": "tcp_and_udp",
"fast_open": true
}

常用的支持 AEAD-2022 的客户端:shadowsocks-rust(sslocal)、sing-box、Clash.Meta (mihomo)、Shadowrocket (iOS)、v2rayN (Windows) 等。


References

Mastodon