2018.6.6 Update:
用到现在,已经有好几个月了,这个多用户功能非常强大、稳定,除了没有面板,一切都很完美!没有任何问题发生!
之前一直都是以单服务器单用户的模式来使用shadowsocksR的。但随着使用人数的增多,需要一定的管理及规范,就必须启用多用户模式(mudbjson模式)了。
单服务器单用户模式请参考:
启用多用户模式很简单,因为shadowsocksR服务端就包含了多用户版本与单用户版本。(根目录为多用户版,子目录shadowsocks为单用户版)
多用户模式的功能较多,可以实现用户、限速、限制使用人数、流量限制等等功能。非常实用!
下面说说如何启用多用户模式。
1.基本环境搭建
centos:
yum -y install git yum -y install python-pip
ubuntu/debian:
apt-get -y install git apt-get -y install python-pip
如需要启用 salsa20 和 chacha20 这2种加密方式,需要安装 libsodium:
2.下载SSR的源码
git clone https://github.com/hao35954514/shadowsocksR-b.git
执行完毕后,当前的目录会多一个shadowsocksR-b目录。其中shadowsocksR-b的是多用户版,子目录中的shadowsocks是单用户版。
根目录:shadowsocksR-b
子目录:shadowsocksR-b/shadowsocks
3.初始化配置
cd shadowsocksR-b/ bash initcfg.sh
替换API接口(原 sspanelv2 改为 mudbjson)
sed -i "s/API_INTERFACE = 'sspanelv2'/API_INTERFACE = 'mudbjson'/" userapiconfig.py
参数说明
使用说明: python mujson_mgr.py -a|-d|-e|-c|-l [选项( -u|-p|-k|-m|-O|-o|-G|-g|-t|-f|-i|-s|-S )] 操作: -a ADD 添加 用户 -d DELETE 删除 用户 -e EDIT 编辑 用户 -c CLEAR 清零 上传/下载 已使用流量 -l LIST 显示用户信息 或 所有用户信息 选项: -u USER 用户名 -p PORT 服务器 端口 -k PASSWORD 服务器 密码 -m METHOD 服务器 加密方式,默认: aes-128-ctr -O PROTOCOL 服务器 协议插件,默认: auth_aes128_md5 -o OBFS 服务器 混淆插件,默认: tls1.2_ticket_auth_compatible -G PROTOCOL_PARAM 服务器 协议插件参数,可用于限制设备连接数,-G 5 代表限制5个 -g OBFS_PARAM 服务器 混淆插件参数,可省略 -t TRANSFER 限制总使用流量,单位: GB,默认:838868GB(即 8PB/8192TB 可理解为无限) -f FORBID 设置禁止访问使用的端口 -- 例如:禁止25,465,233~266这些端口,那么这样写: -f "25,465,233-266" -i MUID 设置子ID显示(仅适用与 -l 操作) -s value 当前用户(端口)单线程限速,单位: KB/s(speed_limit_per_con) -S value 当前用户(端口)端口总限速,单位: KB/s(speed_limit_per_user) 一般选项: -h, --help 显示此帮助消息并退出
多用户的本地JSON数据库文件位置:shadowsocksR-b/mudb.json
添加用户
添加一个用户:lightime。示例:
端口:3333 密码:lighti.me 加密方式:chacha20 协议插件:auth_aes128_md5 协议参数:5 (同一时间链接设备数) 混淆插件:tls1.2_ticket_auth_compatible(兼容原版) 单线程限速:500KB/s 端口总限速:1000KB/s 总流量:10GB 禁止访问端口:25,465,233-266
那么命令为:
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"
添加用户的时候选项 -u 用户名 -p 端口 -k 密码 是必写的,其他参数都有默认值,可忽略。用户名和端口不可冲突添加(添加会提示错误)。
同时在下面其他的操作和示例中,如 编辑/删除/查看用户配置 等操作,必须指定 用户名或端口 其中一个(因为这两个是唯一的,所以用来区分用户)。
正确添加用户后会提示以下内容:
### add user info user : lightime port : 3333 method : chacha20 passwd : lighti.me protocol : auth_aes128_md5 protocol_param : 5 obfs : tls1.2_ticket_auth_compatible transfer_enable : 10.0 G Bytes # 这个账号(端口)可使用的总流量 u : 0 # 这个账号(端口) 已使用的上传流量,单位: K d : 0 # 这个账号(端口) 已使用的下载流量,单位: K forbidden_port : 25,465,233-266 # 禁止访问使用的端口 speed_limit_per_con : 500 # 单线程限速 500KB/s speed_limit_per_user : 1000 # 端口总限速 1000KB/s ssr://XX.XX.XX.XX:3333:auth_aes128_md5:chacha20:tls1.2_ticket_auth:ZG91Yi5pbw ssr://XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
编辑用户
比如修改lightime的流量限制为100G。有2种修改方式。
python mujson_mgr.py -e -u lightime -t 100 #以用户修改 python mujson_mgr.py -e -p 3333 -t 100 #以端口修改
正确修改之后会提示以下内容:
### add user info user : lightime port : 3333 method : chacha20 passwd : lighti.me protocol : auth_aes128_md5 protocol_param : 5 obfs : tls1.2_ticket_auth_compatible transfer_enable : 100.0 G Bytes # 这个账号(端口)可使用的总流量 u : 0 # 这个账号(端口) 已使用的上传流量,单位: K d : 0 # 这个账号(端口) 已使用的下载流量,单位: K forbidden_port : 25,465,233-266 # 禁止访问使用的端口 speed_limit_per_con : 500 # 单线程限速 500KB/s speed_limit_per_user : 1000 # 端口总限速 1000KB/s ssr://XX.XX.XX.XX:3333:auth_aes128_md5:chacha20:tls1.2_ticket_auth:ZG91Yi5pbw ssr://XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
删除用户
同样有2种方式
python mujson_mgr.py -d -u lightime #以用户为依据删除 python mujson_mgr.py -d -p 3333 #以端口为依据删除
运行后会提示:delete user [lightime]
其他操作
python mujson_mgr.py -l #查看所有用户信息 python mujson_mgr.py -l -u lightime #查看单个用户信息(包括流量使用情况) python mujson_mgr.py -c -u lightime #用户使用流量清零
增加、编辑、删除用户配置,会即时生效,无需重启shadowsocksR服务端!
服务端控制
需要进入根目录来进行控制!
先给根目录下所有的sh文件执行的权限:
chmod +x *.sh
具体控制:
./run.sh #后台运行 但不记录日志 ./logrun.sh #后台运行 且 记录日志 ./tail.sh #查看日志 ./stop.sh #停止服务端
清空日志:
cat /dev/null > ssserver.log
转载、参考自逗比。根据实际运行情况做了修改。
安装这个后,原来的单用户的还能使用么?
不能同时工作,也没有必要
你好,这个版本的ssr按照后,支持udp转发吗
你好,这个版本的ssr安装后,支持udp转发吗
ssr原生支持UDP
ssr用命令行添加用户后,vps的端口需要等10s钟左右才能使用,请问,这个怎么处理?
比如,
开始没有888这个端口用户;端口测试,这个端口时closed的;
此时add一个888端口用户,紧接着去测试端口,依然是closed的;刷了10几秒钟,端口就变成open了。。。
咋回事呢
根据你的描述,应该跟ssr无关
你好,我在linode上按这个方法做了一遍,并开放了相应端口,可是tcp测试我开放的端口时发现并未开放,你见到过这种情况或者知道是为什么吗?
linode本身是没有防火墙的。那就是你的linux的防火墙没完全关闭。建议用Ubuntu系统。