最近好长一段时间没东西写,我昨天翻SSR的WIKI的时候,突然发现这个模式的教程我还没写过,那就写写喽。
ShadowsocksR服务端目前分单用户和多用户,而单用户又分 单端口/多端口/单端口多用户,多用户又分 数据库版多用户/本地JSON版多用户以及单端口多用户。
很多人购买VPS后搭建ShadowsocksR服务端,只是几个人分享使用(比如合租),想要限制使用流量,但是又不想搭建网站面板来管理(数据库版多用户),那么在服务器少的情况,可以使用 ShadowsocksR多用户的 mudbjson模式来建立本地数据库(就是数据记录在JSON文件中),同样可以实现简单的用户管理(限速 限流量),当然这个功能仅对当前服务器有效,不能多个服务器互联!
- ShadowsocksR单用户手动教程:https://doub.io/ss-jc11/
- ShadowsocksR多用户手动教程:https://doub.io/ss-jc14/
- ShadowsocksR单用户一键脚本:https://doub.io/ss-jc42/
- ShadowsocksR多用户一键脚本:https://doub.io/ss-jc60/
如果你已经安装了ShadowsocksR服务端,那么可以跳过前面两个安装步骤,直接看 #初始化配置
基本依赖安装
Centos系统执行这个:
yum update yum install git -y
Ubuntu/Debian系统执行这个(推荐这两个系统,对新手友好):
apt-get update apt-get install git -y
如果要使用 salsa20 和 chacha20 加密方式,请安装 libsodium:
如果曾经安装过旧版本,亦可重复用以上步骤更新到最新版,仅1.0.4或以上版本支持chacha20-ietf
获取源代码
git clone -b manyuser https://github.com/ToyoDAdoubiBackup/shadowsocksr.git
执行完毕后此目录会新建一个shadowsocksr目录,其中根目录的是多用户版(即数据库版),子目录中的是单用户版。
子目录中的是单用户版(即 shadowsocksr/shadowsocks )。
以下是相对路径,比如你在 /root
目录下执行上面的代码,那你的SS根目录就是 /root/shadowsocksr
。
根目录即 shadowsocksr
子目录即 shadowsocksr/shadowsocks
初始化配置
cd shadowsocksr # 进入ShadowsocksR根目录 bash initcfg.sh # 初始化ShadowsocksR服务端
然后我们需要修改一下API接口和本服务器IP(用于生成SSR链接),默认是 sspanelv2
改为 mudbjson
即可。
下面第一行代码就是替换API模式,第二行代码则是生成SSR链接用的,需要服务器的外网IP,代码会自动检测并替换。
sed -i "s/API_INTERFACE = 'sspanelv2'/API_INTERFACE = 'mudbjson'/" userapiconfig.py sed -i "s/SERVER_PUB_ADDR = '127.0.0.1'/SERVER_PUB_ADDR = '$(wget -qO- -t1 -T2 ipinfo.io/ip)'/" userapiconfig.py
mudbjson 使用方法
mujson_mgr.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/mudb.json
添加用户
假设添加一个用户为:doubi,要添加用户配置如下:
端口:2345 密码:doub.io 加密方式:chacha20 协议插件:auth_aes128_md5 协议参数:5 (同一时间链接设备数) 混淆插件:tls1.2_ticket_auth_compatible(兼容原版) 单线程限速:100KB/s 端口总限速:300KB/s 总流量:100GB 禁止访问端口:25,465,233-266
那么添加代码如下:
python mujson_mgr.py -a -u doubi -p 2345 -k doub.io -m chacha20 -O auth_aes128_md5 -G 5 -o tls1.2_ticket_auth_compatible -s 100 -S 300 -t 100 -f "25,465,233-266"
注意,添加用户的时候选项 -u 用户名 -p 端口 -k 密码 是必写的,其他账号参数都有默认值,可忽略。用户名和端口不可冲突添加(添加会提示错误)。
同时在下面其他的操作和示例中,如 编辑/删除/查看用户配置 等操作,必须指定 用户名或端口 其中一个(因为这两个是唯一的,所以用来区分用户)。
添加后会提醒如下:
编辑用户
比如我们修改用户 doubi 的密码、加密方式、总流量、单线程限速,可以这样写(端口无法修改):
python mujson_mgr.py -e -u doubi -k doubi233 -m aes-256-cfb -t 120 -s 200 # 或用端口来指定用户 python mujson_mgr.py -e -p 2345 -k doubi233 -m aes-256-cfb -t 120 -s 200
修改后会提醒如下:
删除用户
python mujson_mgr.py -d -u doubi # 或用端口来指定用户 python mujson_mgr.py -d -p 2345 # 运行后会提示:delete user [doubi]
查看所有用户信息
python mujson_mgr.py -l # 运行后会提示如下格式信息: user [doubi] port 2345 user [doubi2] port 2346 user [doubi233] port 2333
查看单个用户信息(包括流量使用情况)
python mujson_mgr.py -l -u doubi # 或用端口来指定用户 python mujson_mgr.py -l -p 2345
注意:ShadowsocksR MudbJSON模式计算的流量不是实时写入 数据库文件的!
清零用户已使用流量
python mujson_mgr.py -c -u doubi # 或用端口来指定用户 python mujson_mgr.py -c -p 2345 # 运行后会提示:clear user [doubi]
经过测试,添加/修改/删除用户配置或流量清零后,不需要重启ShadowsocksR服务端,服务端会自动读取最新用户配置(期间可能会断开链接几秒),效果如同 数据库版多用户,实时读取并写入数据到 本地JSON数据库中。
服务端运行与停止
脚本位于 shadowsocksr
根目录,如果你当前没有在这个目录,请先进入根目录: cd shadowsocksr
请分清楚,根目录 shadowsocksr
和子目录 shadowsocksr/shadowsocks
,不要进错目录!
赋予脚本执行权限(执行一次就好)
chmod +x *.sh
后台运行 但不记录日志(ssh窗口关闭后也继续运行)
./run.sh
后台运行 且 记录日志(ssh窗口关闭后也继续运行)
./logrun.sh
查看 SS日志(用 logrun.sh 脚本启动才会打开日志)
./tail.sh
停止运行
./stop.sh
日志文件位置:shadowsocksr/ssserver.log,可手动查看。
如果日志文件太大,需要清理,可以用下面这个命令 清空 日志文件。
cat /dev/null > ssserver.log
流量批量清零脚本
鉴于一部分逗友需要,所以我就写了个 ShadowsocksR mujson模式 用户流量批量清零脚本。简单设置一下就能实现每月指定日期自动清零所有用户的已使用流量。
参考资料:https://github.com/breakwa11/shadowsocks-rss/wiki/Server-Setup(manyuser-with-mudbjson)
转载请超链接注明:逗比根据地 » ShadowsocksR 单服务器多用户 mudbjson模式使用教程 支持流量限制
责任声明:本站一切资源仅用作交流学习,请勿用作商业或违法行为!如造成任何后果,本站概不负责!
Shadowsocks无法使用后的简单排除方法
具体看这个:https://github.com/shadowsocksrr/shadowsocks-rss/wiki/SSR-QRcode-scheme