shadowsocksR单服务器多用户模式搭建
ShadowsocksR(SSR)默认是单用户模式。
当需要多人共用一个服务器时,可以启用 多用户模式(基于 mudbjson 本地 JSON 数据库),支持用户分流、流量限制、连接数限制等功能。
1.环境准备
1 | # CentOS8 |
若需启用 salsa20 / chacha20 加密算法,还需安装 libsodium。
2.下载 SSR 多用户版代码
1 | git clone https://github.com/hao35954514/shadowsocksR-b.git |
文件结构说明:
shadowsocksR-b/ # 多用户版
shadowsocksR-b/shadowsocks # 单用户版
3. 初始化配置
1 | cd shadowsocksR-b/ |
将配置中的 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 | python mujson_mgr.py -a -u lightime -p 3333 \ |
添加成功后,输出会显示完整的用户配置及对应 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 | python mujson_mgr.py -l # 查看所有用户 |
⚠️:以上所有操作无需重启 SSR 服务端即可即时生效
9.服务端控制脚本
首先赋予权限:
1 | chmod +x *.sh |
管理 SSR:
1 | ./run.sh # 后台运行(不记录日志) |
清空运行日志:
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 管理多个端口与用户,每个用户有自己的限速、流量额度与连接限制,服务端根据端口映射自动区分用户,实现单机多租户的代理服务结构。