下载与首次使用独立中文指南 · 来源可追溯
v2rayNG 下载指南

下载与首次使用

v2rayNG 2.3.10 订阅 HTTP headers:JSON 格式与鉴权排查

核对预发布版订阅请求头的作用范围、JSON 解析和调试日志风险,区分订阅鉴权失败与节点连接失败。

v2rayNG 下载指南编辑部 · 发布 2026-10-04 · 更新 2026-10-04 · 4 分钟阅读

服务方要求在下载订阅时附带特定 HTTP 请求头,不能把这些值随意写进节点传输设置。订阅下载和节点连接是两条不同流程,必须先确定认证发生在哪一步。

这项功能属于哪个版本

2026-10-04 官方发布记录中,2.2.6 是稳定版,2.3.10 是预发布版。2.3.10 说明新增为订阅更新设置自定义 HTTP headers,内容采用 JSON。本文针对该预发布版本,不假定稳定版存在相同入口。

在订阅分组的编辑设置中核对对应请求头选项,菜单名称随界面语言变化。先记录该分组的原地址和设置,再添加服务方明确提供的头名称和值。无需附加请求头的订阅,不应照抄他人的鉴权配置。

JSON 是对象,不是 HTTP 原文

可以用不含凭据的教学对象理解格式:

{
  "X-Diagnostic-Note": "format-example"
}

这个例子只演示双引号、冒号和对象结构,不是任何服务的认证参数。真实值必须来自自己的服务方说明;不要把示例填入正式鉴权头。

常见问题包括使用中文引号、写成 Header: value 多行文本、对象末尾多一个逗号,或把整个对象包成字符串。建议采用字符串值,避免复杂对象转换成文本以后与服务方预期不一致。

无效 JSON 不一定阻止更新按钮

2.3.10 的 JsonUtil.parseHeadersToMap 会解析 JSON 对象;解析失败会返回空映射,并记录相关错误。HttpUtil 再把解析出的键值加入订阅 HTTP 请求。

因此,看到更新请求已发起,不等于自定义头已经正确带上。若服务方需要鉴权而 JSON 无效,可能表现为下载失败或 HTTP 状态异常。先核对格式与日志,再判断是否令牌失效。

按分组做一次验证

  1. 保留当前仍可用的节点,记录待修改的订阅分组代号。
  2. 核对 JSON 语法和头名称,确认值未多出换行或无意的空格。
  3. 仅更新该分组,记录时间、HTTP 状态或错误文本,以及节点是否成功解析。
  4. 下载成功但节点无法连接时,转向节点协议、证书和授权排查;不要继续修改下载鉴权头。
  5. 无改善时恢复原设置,向服务方核对请求头是否仍然必要、是否已更换凭据。

HTTP 401/403 可以提示鉴权或访问策略问题,但仅凭状态码不能证明是 JSON 格式错误。列表仍有旧节点,也不能说明这次更新成功。

日志尤其需要脱敏

固定标签 HttpUtil 在调试日志中会记录添加的自定义头键值。使用授权头或设备标识时,分享 Debug 日志可能直接泄露这些内容。先保存私人原始副本,再检查日志、截图和备份中的请求头与订阅 URL。

不需要把真实请求头交给本站或公开评论来验证格式。只展示已替换的示例键值和错误类型,仍可说明问题。

来源

本文是文档与源码核验后的操作建议,未下载真实订阅,也未实测 Android GUI。