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

本文最后更新于 2018年11月22日 18:56 可能会因为没有更新而失效。如已失效或需要修正,请留言

2018.6.6 Update:

用到现在,已经有好几个月了,这个多用户功能非常强大、稳定,除了没有面板,一切都很完美!没有任何问题发生!


之前一直都是以单服务器单用户的模式来使用shadowsocksR的。但随着使用人数的增多,需要一定的管理及规范,就必须启用多用户模式(mudbjson模式)了。

单服务器单用户模式请参考:

ShadowsocksR安装/搭建心得

启用多用户模式很简单,因为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:

服务端安装libsodium支持chacha20、salsa20

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

 

转载、参考自逗比。根据实际运行情况做了修改。

打赏
欢迎转载,请注明出处:轻时代 » ShadowsocksR单服务器多用户模式搭建

评论 9

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    安装这个后,原来的单用户的还能使用么?

    Anon6年前 (2018-06-06)回复
    • 不能同时工作,也没有必要

      hao6年前 (2018-08-20)回复
  2. #2

    你好,这个版本的ssr按照后,支持udp转发吗

    派大星5年前 (2018-12-05)回复
  3. #3

    你好,这个版本的ssr安装后,支持udp转发吗

    派大星5年前 (2018-12-05)回复
    • ssr原生支持UDP

      hao5年前 (2018-12-07)回复
  4. #4

    ssr用命令行添加用户后,vps的端口需要等10s钟左右才能使用,请问,这个怎么处理?
    比如,
    开始没有888这个端口用户;端口测试,这个端口时closed的;
    此时add一个888端口用户,紧接着去测试端口,依然是closed的;刷了10几秒钟,端口就变成open了。。。
    咋回事呢

    派大星5年前 (2018-12-23)回复
    • 根据你的描述,应该跟ssr无关

      hao5年前 (2018-12-24)回复
  5. #5

    你好,我在linode上按这个方法做了一遍,并开放了相应端口,可是tcp测试我开放的端口时发现并未开放,你见到过这种情况或者知道是为什么吗?

    duya123455年前 (2019-09-26)回复
    • linode本身是没有防火墙的。那就是你的linux的防火墙没完全关闭。建议用Ubuntu系统。

      hao5年前 (2019-09-26)回复

打赏一下作者,鼓励他发表更多的精彩文章

支付宝扫一扫打赏

微信扫一扫打赏