shadowsocksR单服务器多用户模式搭建

ShadowsocksR(SSR)默认是单用户模式。
当需要多人共用一个服务器时,可以启用 多用户模式(基于 mudbjson 本地 JSON 数据库),支持用户分流、流量限制、连接数限制等功能。


1.环境准备

1
2
3
4
5
6
7
# CentOS8
yum -y install git
yum -y install python39 python39-pip libsodium

# Ubuntu / Debian
apt-get -y install git
apt-get -y install python-pip

若需启用 salsa20 / chacha20 加密算法,还需安装 libsodium。


2.下载 SSR 多用户版代码

1
git clone https://github.com/hao35954514/shadowsocksR-b.git

文件结构说明:

shadowsocksR-b/              # 多用户版
shadowsocksR-b/shadowsocks   # 单用户版

3. 初始化配置

1
2
cd shadowsocksR-b/
bash initcfg.sh

将配置中的 API 接口改为 mudbjson

1
sed -i "s/API_INTERFACE = 'sspanelv2'/API_INTERFACE = 'mudbjson'/" userapiconfig.py

4. 用户管理脚本说明

使用 mujson_mgr.py 来管理 SSR 多用户设置:

python mujson_mgr.py -a|-d|-e|-c|-l [选项]
操作 含义
-a 添加用户
-d 删除用户
-e 编辑用户
-c 清零流量
-l 列出用户信息

常用参数:

参数 含义
-u USER 用户名
-p PORT 端口号
-k PASSWORD 密码
-m METHOD 加密方式
-O PROTOCOL 协议插件
-o OBFS 混淆插件
-G PROTO_PARAM 协议参数(限制连接数)
-t TRANSFER 限制总流量(GB)
-s 单线程限速(KB/s)
-S 端口总限速(KB/s)
-f FORBID_PORT 禁止访问端口

本地 JSON 数据库文件位置:

shadowsocksR-b/mudb.json

5. 添加用户示例

假设要添加一个用户名为 lightime 的用户:

指定参数:

端口:3333  
密码:lighti.me  
加密:chacha20  
协议插件:auth_aes128_md5  
协议参数:5  
混淆插件:tls1.2_ticket_auth_compatible  
单线程速率:500KB/s  
总速率:1000KB/s  
总流量:10GB  
禁止端口:25,465,233–266

执行命令:

1
2
3
4
5
python mujson_mgr.py -a -u lightime -p 3333 \
-k lighti.me -m chacha20 \
-O auth_aes128_md5 -G 5 \
-o tls1.2_ticket_auth_compatible \
-s 500 -S 1000 -t 10 -f "25,465,233-266"

添加成功后,输出会显示完整的用户配置及对应 SSR 链接。


6.编辑用户流量

以用户名编辑流量:

1
python mujson_mgr.py -e -u lightime -t 100

或按端口:

1
python mujson_mgr.py -e -p 3333 -t 100

7. 删除用户

按用户名删除:

1
python mujson_mgr.py -d -u lightime

按端口删除:

1
python mujson_mgr.py -d -p 3333

8.其他操作

1
2
3
python mujson_mgr.py -l            # 查看所有用户
python mujson_mgr.py -l -u lightime # 查看单个用户详情
python mujson_mgr.py -c -u lightime # 清零流量

⚠️:以上所有操作无需重启 SSR 服务端即可即时生效


9.服务端控制脚本

首先赋予权限:

1
chmod +x *.sh

管理 SSR:

1
2
3
4
5
6
./run.sh       # 后台运行(不记录日志)
./logrun.sh # 后台运行(记录日志)
./tail.sh # 查看日志
./stop.sh # 停止服务

python3 server.py -h

清空运行日志:

1
cat /dev/null > ssserver.log

10.ssr多用户模式访问数据流

flowchart LR
    User1[用户A
SSR客户端] User2[用户B
SSR客户端] User3[用户C
SSR客户端] Internet[(Internet)] Server[SSR服务器
ShadowsocksR] Manager[多用户管理模块
mujson_mgr.py] DB[(mudb.json
用户数据库)] Target[目标网站/服务] User1 --> Internet User2 --> Internet User3 --> Internet Internet --> Server Server --> Manager Manager --> DB DB --> Manager Manager --> Server Server --> Target Target --> Server Server --> Internet subgraph 服务端功能 Server Manager DB end subgraph 客户端 User1 User2 User3 end

架构的核心思想很朴素:
服务器只跑一个 SSR 实例,但通过 mudb.json 管理多个端口与用户,每个用户有自己的限速、流量额度与连接限制,服务端根据端口映射自动区分用户,实现单机多租户的代理服务结构。