Xboard/docs/在线设备数限制构思.md
2023-11-19 15:18:32 +08:00

59 lines
1.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 在线设备数限制
1. 在订阅上添加客户端连接数限制
2. 用户订阅的时候将客户端限制附加到用户表字段上
3. 后端获取用户信息的时候增加客户端显示字段显示
4. 获取在线用户IP判断是否达到了限制数量当达到了限制IP数量拒绝新的IP连接 , 当有新的IP连接的时候立刻上报到xboard后端
5. 上报用户流量时附带IP
#### xboard 需要增加接口
1. 获取节点用户列表
```
{
"id": 1,
"uuid":"cd692137-3f7b-47fb-b7a3-037a203d6489",
"speed_limit": null,
"device_limit": 10,
"online_ips": ['1.1.1.1', '2.2.2.2']
}
```
2. 后端上报新的在线用户IP (后端获取到在线数量没达到用户在线限制才会上报)
```
{
"id": 1,
"new_online_ip": "3.3.3.3"
}
```
上报成功返回 ```{ "data":true }```
当达到用户在线数量限制就返回面板的在线用户的IPs
```
{
"data": ['1.1.1.1','2.2.2.2','3.3.3.3','4.4.4.4','5.5.5.5']
}
```
3. 后端上报用户流量IPID流量三要素
```
{
"id":1,
"u": 100,
"d": 100,
"ip": "1.1.1.1"
}
```
#### 安全设计
1、为了不泄漏用户的在线IP ip使用Hash加密处理 后端有用户连接时对用户的连接IP使用 hash验证
#### 界面反馈
##### 后台界面
- 在订阅界面增加用户设备限制
- 编辑用户时增加用户设备限制
- 在用户列表显示在线用户量
- 在订阅列表显示当前订阅在线用户、IP数量
- 在节点页面显示在线用户数量和IP数
##### 用户前端
- 首页增加在线链接设备数(旁边增加重置订阅按钮)
#### 后续性能优化
- 后端上报用户流量使用 brotli压缩减少体积
- 后端上报新的用户IP接口使用websocet或者grpc