若使用中转,需确保后端能够正确获取到用户的真实 IP,否则将无法进行限制
后端 | |
v2ray | √ |
trojan | √ |
ss | √ |
ssr | √ |
只有 ssr 的协议单端口设计了此项功能,其他协议不支持
后端 | |
ssr | √ |
普通的限制方式只能做到单节点下进行限制,因为节点之间并不互相通信,A 节点无从得知用户是否在访问 A 以外的其它节点。
soga 在 v2.1.4 版本增强了该功能,可做到所有节点进行限制用户同时连接的 IP 数/设备数。
只需在任意一台服务器安装一个 redis 即可,需开启公网访问,并设置密码
CentOS
yum install epel-release -yyum install redis -y
Ubuntu/Debian
apt install redis-server -y
CentOS
# 清空 redis 配置文件echo "" > /etc/redis.conf# 设置 redis 公网可访问echo "bind 0.0.0.0" >> /etc/redis.conf# 设置 redis 端口,建议设置一个随机端口echo "port 12345" >> /etc/redis.conf# 设置 redis 密码,为确保安全,请设置一个较长的随机密码echo "requirepass fgsdfgasgdfui" >> /etc/redis.conf
Ubuntu/Debian
# 清空 redis 配置文件echo "" > /etc/redis/redis.conf# 设置 redis 公网可访问echo "bind 0.0.0.0" >> /etc/redis/redis.conf# 设置 redis 端口,建议设置一个随机端口echo "port 12345" >> /etc/redis/redis.conf# 设置 redis 密码,为确保安全,请设置一个较长的随机密码echo "requirepass fgsdfgasgdfui" >> /etc/redis/redis.conf
systemctl start redissystemctl enable redis
配置名 | 默认值 | 说明 |
|
| 是否开启 redis 缓存 |
| 无 | redis 地址,格式:aaa.com:12345 |
| 无 | redis 密码 |
|
| redis 数据库编号,默认 0,无需更改 |
|
| 缓存在线 IP 的时间,单位:秒 |
redis_enable=trueredis_addr=aaaa.com:12345redis_password=xxxxredis_db=0conn_limit_expiry=60# 若面板不支持限制用户连接数,还需设置此项,表示每名用户最多同时连接多少IP/设备user_conn_limit=2
不会影响用户正常使用,但是增强限制 IP 数/连接数就会失效,会退回到单节点限制,直到 redis 服务再次可访问,此过程为自动切换,无需关心。你需要确保的就是 redis 服务能正常访问。
该值为缓存在线 IP/设备的时间,单位:秒。简单解释:当用户IP数/设备数刚好达到限制后,想切换 IP/设备使用时,大约需要等待的时间(从之前连接的IP/设备断开后开始计算)。
该值不宜设置得过小,60 作为默认值可能不一定合适,请根据你的实际情况进行调整。
不需要,redis 默认配置下有 16 个数据库编号可以使用,编号分别是 0-15,将编号分开即可。
数据库编号可以理解为全局限制的分组,需要哪些一起限制,将它们放进一个分组即可。