这篇教程从一台空白的 VPS 开始,一步步把 ShadowsocksR 节点跑起来,包含系统初始化、内核调优、服务端配置、systemd 常驻、客户端导入和订阅生成,最后给出排错清单和一个必须知道的现实:SSR 已经是历史产物,新节点该往哪走。
一、先弄清楚 SSR 是什么
ShadowsocksR(下称 SSR)是 Shadowsocks 的一个分支,在原有加密之外又加了两层东西:协议插件(protocol)和混淆插件(obfs)。前者改造数据包结构,后者让流量看起来不像代理。
- 协议:
origin(原生)、auth_sha1_v4、auth_aes128_md5、auth_aes128_sha1。带auth_的会做一次身份校验,抗主动探测。 - 混淆:
plain、http_simple、http_post、tls1.2_ticket_auth。最后一种用假 TLS 握手混过去。
必须说清的是:SSR 主仓库在 2020 年前后停止维护,现在的可用代码基本来自社区 fork。它的混淆特征早已被识别,tls1.2_ticket_auth 也扛不住基于 TLS 指纹的检测——真 TLS 才能骗过真 TLS。新装节点建议直接上 SS2022 或 VLESS+Reality,本文第七节给出迁移路径。这篇仍然写全,是因为存量节点和存量客户端太多,你可能是在维护老资产。
二、VPS 与系统初始化
配置要求很低:1 核 512M 内存、10G 硬盘足够跑几十个连接。真正决定体验的是回程线路,不是 CPU。
# 1. 更新系统并装基础工具
apt update && apt -y upgrade
apt -y install curl wget git python3 python3-pip vim ufw
# 2. 改 SSH 端口(可选但建议)
sed -i 's/^#\?Port .*/Port 22222/' /etc/ssh/sshd_config
systemctl restart ssh
# 3. 时间同步(时间偏差会让协议校验直接失败)
timedatectl set-ntp true
timedatectl status | grep -i synchronized
防火墙只放行必要端口,别一上来就 ufw disable:
ufw allow 22222/tcp # SSH
ufw allow 8443/tcp # 节点端口(示例)
ufw --force enable
ufw status verbose
三、开 BBR(必做)
没开拥塞控制优化,同样的线路下载速度可能差一个数量级。Debian 12 自带内核支持 BBR,一行配置即可。
cat >> /etc/sysctl.conf <<'EOF'
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
net.ipv4.tcp_fastopen=3
net.core.rmem_max=16777216
net.core.wmem_max=16777216
EOF
sysctl -p
sysctl net.ipv4.tcp_congestion_control # 输出 bbr 才算成功
四、部署 SSR 服务端
不依赖任何一键脚本(第三方脚本失效是常态),直接用社区 fork 手动部署,可控性最高。
cd /opt
git clone -b master https://github.com/shadowsocksrr/shadowsocksr.git
cd shadowsocksr
# 初始化配置目录
bash initcfg.sh
ls -l user-config.json config.json 2>/dev/null
编辑 /opt/shadowsocksr/user-config.json,核心字段如下:
{
"server": "0.0.0.0",
"server_ipv6": "::",
"server_port": 8443,
"local_address": "127.0.0.1",
"local_port": 1080,
"password": "换成你自己的强密码",
"method": "aes-256-cfb",
"protocol": "auth_aes128_md5",
"protocol_param": "",
"obfs": "tls1.2_ticket_auth",
"obfs_param": "",
"speed_limit_per_con": 0,
"speed_limit_per_user": 0,
"timeout": 300,
"workers": 1
}
| 字段 | 怎么选 |
|---|---|
method | 移动设备多选 chacha20-ietf;PC 为主选 aes-256-cfb |
protocol | auth_aes128_md5 最通用,兼容性优于 sha1 版 |
obfs | tls1.2_ticket_auth,配合 443 端口更像正常流量 |
workers | 1 核写 1,2 核写 2,别写 0 |
五、systemd 常驻
别用 screen 挂着跑,重启就没了。写一个 unit 文件:
cat > /etc/systemd/system/ssr.service <<'EOF'
[Unit]
Description=ShadowsocksR Server
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/opt/shadowsocksr
ExecStart=/usr/bin/python3 /opt/shadowsocksr/shadowsocks/server.py -c /opt/shadowsocksr/user-config.json
Restart=always
RestartSec=3
LimitNOFILE=51200
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable --now ssr
systemctl status ssr --no-pager
journalctl -u ssr -n 30 --no-pager
看到 starting server at 0.0.0.0:8443 就说明起来了。如果报 ModuleNotFoundError,装依赖:pip3 install -r requirements.txt(Debian 12 需要加 --break-system-packages)。
六、客户端导入与订阅
- Windows:SSR 官方客户端早已停更,推荐直接用 Mihomo 内核的客户端(Clash Verge Rev / Mihomo Party),它原生支持 ssr 协议。
- Android:FlClash 或 SSR 专用客户端。
- iOS:Shadowrocket 支持 ssr,导入链接即可。
- 路由器:OpenWrt 的 OpenClash 选 Mihomo 内核。
单节点链接格式是 ssr:// 加一段 Base64,内容是 host:port:protocol:method:obfs:base64(password)/?params。多节点可以自己拼一个订阅:把所有 ssr:// 链接按行拼接,整体再做一次 Base64,放到任意静态地址上即可。
# 生成单节点链接(在服务器上执行)
python3 - <<'PY'
import base64
host, port = "你的IP", "8443"
proto, method, obfs = "auth_aes128_md5", "aes-256-cfb", "tls1.2_ticket_auth"
pwd = "换成你的密码"
b = lambda s: base64.urlsafe_b64encode(s.encode()).decode().rstrip("=")
print("ssr://" + b(f"{host}:{port}:{proto}:{method}:{obfs}:{b(pwd)}/?remarks={b('node-01')}"))
PY
七、排错清单
| 现象 | 原因 | 处理 |
|---|---|---|
| 客户端一直转圈 | 端口没放行 / 服务没起 | ss -lntp 看端口,ufw status 看规则 |
| 能连上但打不开网页 | DNS 没走代理 | 客户端开远程 DNS,或本地用 DoH |
| 连上几秒就断 | 协议/混淆与服务端不一致 | 逐字段核对,注意大小写 |
| 握手直接失败 | 服务器时间偏差 | timedatectl,开 NTP |
| 下载只有几十 KB/s | 没开 BBR / 线路拥塞 | 先验 BBR,再换机房 |
| 部分 App 不走代理 | UDP 未转发 | 服务端开 udp,客户端开 UDP 转发 |
八、该考虑迁移了
如果你现在才建节点,SSR 不是好选择。三条更现实的路:
- SS2022:同样是 Shadowsocks 家族,加密换成
2022-blake3-aes-128-gcm,抗重放、无特征,客户端支持已经普及。迁移成本最低。 - VLESS + Reality:不需要自己的域名和证书,借用真实站点的 TLS 握手,当前综合最优。
- Hysteria2:基于 QUIC,弱网和移动网络下体验最好,代价是 UDP 特征明显。
三者都能在同一个 VPS 上与 SSR 并存(不同端口),迁移时新旧并行,验证稳定后再下掉旧协议。
最后一句实话:协议只是壳,线路质量和维护频率才是体验的分水岭。同一个协议,回程绕路的机器怎么调都慢;好线路上跑最朴素的 SS2022 也比烂线路上的花式协议稳。









暂无评论内容