CentOS 7 配置Shadowsocksr单服务器多用户 mudbjson模式

Posted by Sunday on 2017-10-12

mudbjson模式相当建立本地数据库,数据记录在~/shadowsocksr/mudb.json中。
mudbjson主要用于单服务器多用户环境,支持流量限制、网速限制、端口限制。

服务器端安装

获取源码
Centos:

1
2
yum -y install git gcc python-setuptools  && easy_install pip && pip install cymysql
git clone -b manyuser https://github.com/sundayle/shadowsocksr.git

如果要使用Chacha20、chacha20-ietf 等加密方式,需要安装libsodium

1
2
3
4
5
wget https://github.com/jedisct1/libsodium/releases/download/1.0.13/libsodium-1.0.13.tar.gz
tar xf libsodium-1.0.13.tar.gz && cd libsodium-1.0.13
./configure && make -j2 && make install
echo /usr/local/lib > /etc/ld.so.conf.d/usr_local_lib.conf
ldconfig

mudbjson模式

进入 ~/shdowsocksr,初始化配置

1
bash initcfg.sh

进入~/shadowsocksr
修改API接口(默认是sspanelv2,修改成mudbjson)

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

修改成本服务器IP(用于生成SSR链接)

1
sed -i "s/SERVER_PUB_ADDR = '127.0.0.1'/SERVER_PUB_ADDR = '$(wget -qO - ifconfig.co)'/" userapiconfig.py

mujson帮助

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
$ python mujson_mgr.py 

usage: python mujson_manage.py -a|-d|-e|-c|-l [OPTION]...

Actions:
-a 添加 用户
-d 删除 用户
-e 编辑 用户
-c 清零 上传/下载 已使用流量
-l 显示用户信息 所有用户信息

Options:
-u USER 用户名
-p PORT 端口
-k PASSWORD 密码
-m METHOD 加密方式, default: aes-128-ctr
-O PROTOCOL 协议插件, default: auth_aes128_md5
-o OBFS 混淆插件, default: tls1.2_ticket_auth_compatible
-G PROTOCOL_PARAM 协议插件参数,可限制设备连接数,-G 3 表示限制3
-g OBFS_PARAM 混淆插件参数,可省略
-t TRANSFER 限制总使用流量,单位:GB default: 8388608 (8 PB or 8192 TB)
-f FORBID 限制禁止访问的端口 例如 (ban 1~79 and 81~100): -f "1-79,81-100"
-i MUID 设置子ID显示(仅适用与 -l 操作)
-s SPEED 单线程限速,单位:KB/s (speed_limit_per_con)
-S SPEED 端口总限速 单位:KB/s (speed_limit_per_user)

General options:
-h, --help 显示帮助信息

添加用户

例如添加用户sunday,配置如下

1
2
3
4
5
6
7
8
9
10
端口:10010
密码:sundayle
加密方式:chacha20-ietf
协议插件:auth_aes128_sha1
协议参数:3 (同一时间链接设备数)
混淆插件:tls1.2_ticket_auth_compatible(兼容原版)
单线程限速:100KB/s
端口总限速:300KB/s
总流量:100GB
禁止访问端口:25,355-366

添加用户命令 (有限制)

1
python mujson_mgr.py -a -u sunday -p 10010 -k sundayle -m chacha20-ietf -O auth_aes128_md5 -o tls1.2_ticket_auth -G 3 -s 100 -S 300 -t 100 -f "25,465,233-266"

添加成功显示如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
### add user info 
user : sunday
port : 10010
method : chacha20-ietf
passwd : sundayle
protocol : auth_aes128_sha1
protocol_param : 3
obfs : tls1.2_ticket_auth_compatible
transfer_enable : 100.0 G Bytes
u : 0
d : 0
forbidden_port : 25,355-366
speed_limit_per_con : 100
speed_limit_per_user : 300
ssr://183.60.10.79:10010:auth_aes128_sha1:chacha20-ietf:tls1.2_ticket_auth:c3VuZGF5bGU
ssr://MTgzLjYwLjE5Mi40ODoxMDAxMDphdXRoX2FlczEyOF9zaGExOmNoYWNoYTIwLWlldGY6dGxzMS4yX3RpY2tldF9hdXRoOmMzVnVaR0Y1YkdV

添加用户命令 (无限制)

1
python mujson_mgr.py -a -u sunday -p 10010 -k sundayle -m chacha20-ietf -O auth_aes128_sha1 -o tls1.2_ticket_auth_compatible

启动服务

进入 ~/shdowsocksr
后台运行(日志):

1
./logrun.sh

停止服务:

1
./stop.sh

监控日志:

1
./tail.sh

开机启动

注意:Ubuntu/Debian 要添加在exit 0 上一行即可。

1
2
vim /etc/rc.local
/bin/bash /root/shadowsocksr/logrun.sh

其他命令

修改用户

如修改 加密方式 协议 单线程限制 端口总限制 总流量

1
python mujson_mgr.py -e -u sunday -p 10010 -k sundayle -m chacha20 -O auth_aes128_md5 -s 1000 -S 3000 -t 1000

删除用户

1
python mujson_mgr.py -d u sunday

查看用户信息

1
python mujson_mgr.py -l

查看单个用户信息

1
python mujson_mgr.py -l -u sunday

清零用户已使用流量(可指定用户名或端口号)

1
2
3
python mujson_mgr.py -c -u sunday

python mujson_mgr.py -c -p 10010

https://doub.io/ss-jc57/