client/subscription · 集群 A · 订阅原理与格式 · 6/6
订阅里的流量与到期信息是怎么显示出来的:用户信息响应头解析
客户端里显示的已用流量、总流量和到期时间,通常来自服务端在订阅响应头中附带的用户信息字段,而不是客户端自己统计的。它只在每次更新订阅时刷新,客户端或转换环节不支持该字段时就不会显示,因此显示内容应以服务商后台为准,客户端数值只作参考。
流量与到期数据从哪来
客户端显示的流量与到期信息来自服务端,而非客户端自己计算。服务端在返回订阅内容的同时,在 HTTP 响应头里附带一个描述账号用量的字段,常见写法形如:
subscription-userinfo: upload=<已上传字节>; download=<已下载字节>; total=<总流量字节>; expire=<到期时间戳>
各字段含义:
| 字段 | 含义 | 单位 | 注意事项 |
|---|---|---|---|
| upload | 已用上行流量 | 字节 | 部分服务端上下行合并计费 |
| download | 已用下行流量 | 字节 | 通常是主要消耗部分 |
| total | 套餐总流量 | 字节 | 不限流量套餐可能给出一个很大的数或不提供 |
| expire | 到期时间 | Unix 时间戳 | 不限时套餐可能不提供或为空 |
客户端拿到后,计算“已用 = upload + download”,“剩余 = total − 已用”,再把时间戳换算成日期显示。字段名与支持情况以具体客户端和服务端的实现为准。这个过程发生在订阅请求的“返回”环节,整体链路见 机场订阅链接是怎么工作的。
为什么显示的数值会过时
客户端只在更新订阅时读取一次响应头,两次更新之间的使用不会反映到界面上,所以显示的永远是“上次更新时的快照”。
举例说明时间线:
时间 ──────────────────────────────────────────────>
更新订阅(读取:已用 X)
│ ……持续使用,实际已用不断增加……
│ 客户端界面始终显示 X
▼
下次更新订阅(读取:已用 X + 期间用量)
如果更新间隔较长,界面上的数值可能明显落后于实际。想看准确用量,手动更新一次订阅,或直接登录服务商后台。更新间隔的设置思路见 订阅更新间隔怎么设置。
为什么有时完全不显示
不显示通常不是订阅出错,而是“字段没送到”或“客户端不读”,可以按下面的顺序判断。
- 服务端没有提供:不是所有服务端都会附带该响应头。
- 客户端不支持:部分客户端或旧版本不读取该字段。
- 转换环节丢失:使用订阅转换时,转换后端可能没有透传原订阅的响应头,客户端拿到的是转换后端自己的响应。
- 合并配置:多订阅合并时,客户端可能只读取主配置的响应头,其他订阅的用量不显示,详见 多个机场订阅如何合并。
- 请求失败:本次更新失败,客户端保留旧数据或清空显示。
对于第 3 点,转换环节丢失信息只是表象,更值得关注的是原订阅被转换后端拉取这一事实本身,参见 订阅转换是什么。
显示数值与后台不一致的常见原因
客户端数值与后台不一致时,以后台为准;造成差异的原因通常是统计口径与时效,而不是“偷跑流量”。
| 现象 | 可能原因 | 建议 |
|---|---|---|
| 客户端已用少于后台 | 客户端数据是上次更新时的快照 | 手动更新订阅后再比较 |
| 已用明显大于本机统计 | 节点存在计费倍率,或多台设备共用订阅 | 查看服务商的倍率说明与在线设备 |
| 到期日相差一天左右 | 时间戳换算时区差异 | 以后台显示为准 |
| 总流量显示异常大 | 不限流量或不限时套餐的占位值 | 查看套餐说明 |
| 流量突然大幅增加 | 可能存在订阅泄露、他人在用 | 检查在线设备,必要时重置订阅 |
最后一种情况需要重视。如果你确认自己没有大量使用,但已用流量快速上涨,应优先排查订阅是否泄露,判断方法见 订阅链接泄露有哪些表现。节点倍率的含义可参考 节点与 IP 专题。
把它当作监控工具来用
用户信息响应头虽然有延迟,但仍是一个低成本的用量监控手段,配合定期查看后台,可以及早发现异常消耗。
- 设定一个心理阈值,例如月中已用超过一半时留意用量去向;
- 在多设备场景下,定期对比各设备的本地统计与后台用量;
- 发现异常增长时,先手动更新确认,再登录后台核对在线设备与最近记录。
不同套餐类型的显示差异
不同类型的套餐,在客户端里的显示方式也不一样,理解这些差异可以避免把正常现象误判为异常。
| 套餐类型 | 总流量显示 | 到期时间显示 | 需要留意的点 |
|---|---|---|---|
| 按月重置流量的周期套餐 | 当期流量额度 | 套餐到期日 | 流量重置日可能与到期日不同 |
| 不限时套餐 | 总额度 | 可能不显示或显示占位值 | 以剩余流量为主要参考 |
| 年付套餐 | 通常为当期额度 | 年付到期日 | 每期重置后已用流量归零 |
尤其是年付套餐,客户端显示的到期日可能是一年后,而流量是按月重置的,两者不要混淆。价格类型与流量规则的口径说明可参考 价格与套餐 专题。
小结
客户端显示的流量与到期信息来自订阅响应头,是更新时刻的快照,不是实时数据;不显示多半是字段未提供、客户端不支持或转换环节丢失;不一致时以服务商后台为准。
选择套餐时,流量额度与价格类型同样重要,可以在 机场品牌库 查看各品牌入门套餐的流量资料,并通过 价格与套餐 专题了解流量单价与年付折算的计算口径。
常见问题
为什么客户端显示的剩余流量和后台不一样?
客户端的数值只在上一次更新订阅时获取,之后的使用不会实时反映;此外服务端可能有统计延迟或倍率换算,所以应以服务商后台显示为准。
为什么经过订阅转换后流量信息不见了?
用户信息位于原订阅的响应头中,如果转换后端没有把这个响应头透传给客户端,客户端就拿不到流量与到期数据。
客户端显示的流量是客户端自己统计的吗?
通常不是。客户端显示的是服务端告知的数值;部分客户端另有本地连接统计,那是本机实时流量,与套餐用量不是同一口径。
节点倍率会影响显示的流量吗?
可能会。如果服务商对某些节点按倍率计费,后台记录的已用流量会按倍率换算,客户端显示的也是换算后的结果,与本机实际传输量不一致。
信息来源与更新时间
- 信息来源
- 品牌清单资料(品牌公开信息整理)
- 测试范围
- 本站未进行测速与解锁实测,所有能力描述均为资料声明或未测试状态。
- 发布时间
- 待核实
- 核实日期
- 待核实
- 最近更新
- 待核实