首页
/ Marzban订阅服务中expire字段缺失问题分析

Marzban订阅服务中expire字段缺失问题分析

2025-06-11 07:32:21作者:咎竹峻Karen

Marzban作为一款开源的代理管理面板,其订阅功能是用户获取节点配置的重要途径。近期发现Marzban v0.6.0版本中存在一个关于订阅信息头(subscription-userinfo)中expire字段显示异常的问题,本文将深入分析该问题的表现、原因及解决方案。

问题现象

在Marzban的sing-box类型订阅中,当用户设置了流量限制但未设置过期时间时,subscription-userinfo头部信息会缺失expire字段。这一现象会导致依赖该字段的客户端(如Hiddify Next)无法正确显示用户的使用期限信息。

技术背景

subscription-userinfo是代理订阅服务中常见的响应头,用于向客户端传递用户的使用状态信息,通常包含以下字段:

  • upload:已上传流量
  • download:已下载流量
  • total:总流量限制
  • expire:账户过期时间(Unix时间戳)

在Marzban的实现中,这个头部信息的生成逻辑会根据用户的不同配置情况而变化。

问题根源

经过分析,该问题源于Marzban v0.6.0版本中头部信息生成的逻辑判断不够完善。具体表现为:

  1. 当用户同时设置了流量限制和过期时间时,expire字段正常显示
  2. 当用户仅设置流量限制时,expire字段缺失
  3. 当用户仅设置过期时间时,expire字段同样缺失

这种实现方式与客户端预期行为不符,特别是对于仅设置了流量限制的用户,客户端无法获取完整的账户状态信息。

解决方案

Marzban开发团队已在dev分支中修复了此问题。新版本的实现将确保:

  1. 只要用户设置了过期时间,无论是否设置流量限制,都会包含expire字段
  2. 对于未设置过期时间的用户,expire字段将被合理处理(可能省略或设置为特定值)

升级建议

对于遇到此问题的用户,建议:

  1. 等待Marzban发布包含此修复的稳定版本
  2. 如需立即解决,可考虑切换到dev分支版本
  3. 在升级前备份现有配置,确保平滑过渡

总结

订阅信息头的完整性对于客户端正确显示用户状态至关重要。Marzban团队对此问题的快速响应体现了项目对用户体验的重视。随着项目的持续发展,相信类似的问题会得到更全面的预防和处理。

登录后查看全文
热门项目推荐
相关项目推荐