在使用ShadowsocksR服务端中,经常会有人需要 限制设备连接数 和 限制端口速度 以防止Shadowsocks账号被滥用,但是以前一直没有什么好的方法。
2017年2月15日 ShadowsocksR更新新版本,支持了 限制端口速度 的参数,至于 限制设备连接数,这个很早就有了,但是还是有人不知道,我就单独写个简单教程说明好了。
查看以下教程前,请先升级你的ShadowsocksR服务端为最新版本(2月15日以后),否则可能功能不完整。
首先要说的是,限制设备数和限速功能,全都是依赖于 协议插件,这意味着:
- 如果你服务端 协议设置(protocol) 的是
原版(origin)
时,设备数限制、限速无效。 - 如果你服务端 协议设置(protocol) 的是
协议兼容原版
,那么当用户使用 原版协议(origin) 连接账号时,设备数限制、限速无效。
限制设备连接数
点击展开 查看更多
限制设备连接数的这个功能,很早就有了,就是修改协议参数: protocol_param
打开你的配置文件,假设你在 /root
文件夹中安装的ShadowsocksR服务端,那么就是:
vi /root/shadowsocksr/user-config.json
找到协议参数(参数为空 ""
时,默认限制 64个设备数)
"protocol_param": "",
在协议参数中设置你要限制 每个端口最大设备连接数(建议最少2个),比如 限制最大 5个设备同时链接,那么改为:
"protocol_param": "5",
注意:协议参数仅在服务端 协议设置(protocol)为 非原版(origin)协议并不兼容原版(_compatible)
时才有效!
另外注意:目前只有 auth_chain_* 系列协议可以实时计算设备数,其他的 协议插件 则都是5分钟计算一次,所以可能并不准确。
如果你服务端 协议设置(protocol) 的是 原版(origin)
时,设备数限制无效。
如果你服务端 协议设置(protocol) 的是 协议兼容原版
,那么当用户使用 原版协议(origin) 连接账号时,设备数限制无效。
限制端口速度
限制端口速度这个功能,是 2017年2月15日凌晨 才更新新添加的功能,我的一键ShadowsocksR管理脚本已经支持了这个设置。
点击展开 查看更多
打开你的配置文件,假设你在 /root
文件夹中安装的ShadowsocksR服务端,那么就是:
vi /root/shadowsocksr/user-config.json
新增的两个参数分别是(参数为 0
时,默认代表不限速):
"speed_limit_per_con": 0,
"speed_limit_per_user": 0,
单位是 KB/S
,也就是我们平时下载文件的速度单位,我们家庭宽带100兆就是: 100Mbps / 8 = 12.5MB/S * 1024 =12800KB/S
。
比如我们要设置 单线程限速 1MB/S
,端口总限速 3MB/S
,那么就这样写:
"speed_limit_per_con": 1024,
"speed_limit_per_user": 3072,
speed_limit_per_con 指的是,单线程限速。
当你使用这个端口 下载某个文件时,单线程下载限速 100KB/S
,多线程下载(比如5个线程)就是 500KB/S
了,Youtube是单线程。
speed_limit_per_user 指的是,端口总限速。
使用这个端口的总速度被限制为 100KB/S
。
举例子说明:
假设设置,单线程限速 100KB/S
,端口总限速不限制,那么:
- 你单线程下载文件速度为
100KB/S
,你多线程 5个线程就是 500KB/S
。
假设设置,单线程限速 100KB/S
,端口总限速 300KB/S
,那么:
- 你单线程下载文件速度为
100KB/S
,你多线程最多 300KB/S
。
假设设置,单线程限速不限制,端口总限速 800KB/S
,那么:
- 你单线程下载文件速度为
800KB/S
,你多线程最多也是 800KB/S
。
注意:单线程限速和端口总限速是独立的,当然在限速的时候不可能精确到100%,所以速度可能会上下波动 10% 左右。
如果你服务端 协议设置(protocol) 的是 原版(origin)
时,限速无效。
如果你服务端 协议设置(protocol) 的是 协议兼容原版
,那么当用户使用 原版协议(origin) 连接账号时,限速无效。
有不懂得地方可以在下面留言。
转载请超链接注明:月下博客 » ShadowsocksR服务端 限制设备连接数 和 限制端口速度 的方法
责任声明:本站一切资源仅用作交流学习,请勿用作商业或违法行为!如造成任何后果,本站概不负责!