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

1.8 KiB
Raw Permalink Blame History

在线设备数限制

  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']
}
  1. 后端上报新的在线用户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']
}
  1. 后端上报用户流量IPID流量三要素
{   
    "id":1, 
    "u": 100, 
    "d": 100, 
    "ip": "1.1.1.1"
}

安全设计

1、为了不泄漏用户的在线IP ip使用Hash加密处理 后端有用户连接时对用户的连接IP使用 hash验证

界面反馈

后台界面
  • 在订阅界面增加用户设备限制
  • 编辑用户时增加用户设备限制
  • 在用户列表显示在线用户量
  • 在订阅列表显示当前订阅在线用户、IP数量
  • 在节点页面显示在线用户数量和IP数
用户前端
  • 首页增加在线链接设备数(旁边增加重置订阅按钮)

后续性能优化

  • 后端上报用户流量使用 brotli压缩减少体积
  • 后端上报新的用户IP接口使用websocet或者grpc