近5分钟在线设备
—
根据已同意的心跳统计今日活跃安装
—
按北京时间自然日去重已上报安装数
—
保留期内的随机安装 ID近14天活跃安装
没有上报的数据保持为空,不使用演示数值填充。
软件版本分布
版本发布
上传先保存为草稿;确认发布后才进入客户端更新与首页下载。
Windows 支持 ZIP 原位更新及 Inno Setup EXE;Android APK 必须与已安装版本签名一致。当前 iOS IPA 按未签名包处理,不展示虚假的“一键安装”。发布后客户端每5分钟检测一次,而不是持续占用 PHP 长连接。
使用设备
随机安装 ID,不是 QQ 用户 ID;显示最近200条。
| 安装 ID | 平台 | 版本 | 来源 IP | IP 来源 | 最近心跳 | 操作 |
|---|
IP 是网络出口地址,可能是 NAT、VPN 或代理,不代表真实身份或精确位置。统计不包含未同意上报的安装;IP 默认仅保留7天,失活安装默认90天清理。
部署与安全检查
EdgeOne 使用默认的 EO-Connecting-IP 传递客户端 IP。免费版可在服务器配置 proxy_trust_mode = edgeone_token 并开启 require_origin_token,校验回源密钥后读取该头,不要求付费版回源网段。默认 cidr_and_token 仍要求密钥和可信网段同时匹配。
免费版模式必须使用 HTTPS 回源,并在 EdgeOne 覆盖回源密钥。它不替代源站防火墙;密钥泄露后需更换回源密钥,不要更换软件更新私钥。
当前访问 IP 检测
检测当前浏览器的访问,不是设备统计。只显示校验结果,不显示密钥。
尚未检测
客户端更新配置
在服务器运行 php bin/manage.php public-key,将公开公钥通过 --dart-define=UPDATE_PUBLIC_KEY=... 内置进首次发布的客户端。不要把签名私钥放到客户端、Git 或聊天。
- 宝塔运行目录必须设为应用目录内的
public,不要把 config.php 或 data 暴露到公网。 - 在
config.php 填写宝塔 MySQL 和杂鱼账号凭据,运行 php bin/manage.php install 自动生成密钥及数据表;重复安装保留有效密钥。 /api/* 与 /admin* 不缓存、不做 HTML/JavaScript 改写。- 更新包使用带 SHA-256 的不可变路径,可长缓存。撤下后仍需清理 EdgeOne 已缓存的文件。
- EdgeOne 用“设置/覆盖”加入
X-QQM-Origin-Token,不要追加;实际值只在本机 CLI 查看。 - 免费版使用密钥模式;有实际回源网段时可保留严格模式并配置防火墙。两种模式都使用 HTTPS 回源,不信任任意 X-Forwarded-For。
完整步骤见部署包内 README.md 与 docs/update-and-edgeone.md(源码位于 management 目录)。