V2Ray 订阅格式区别:Base64 订阅、原生 JSON 配置与分享链接互转

解释 Base64 订阅、完整 JSON 配置与 vmess:// / vless:// 分享链接各自的结构,以及在 v2rayN 和 v2rayNG 里导入、导出与相互转换的做法。

本文速览

订阅地址负责获取与更新,Base64 负责编码,分享链接描述单个节点,完整 JSON 则描述内核如何运行。本文适合遇到“复制了却导入失败”或准备跨设备迁移的用户:先按内容识别格式,再选择导入入口,最后核对转换时容易丢失的传输、TLS、路由与 DNS 设置。

先区分订阅地址、响应正文与节点链接

“V2Ray 订阅”不是一种统一的文件扩展名。常见订阅地址是一个带令牌的 HTTPS URL,客户端请求该地址后,才得到一批节点。响应正文可能是逐行分享链接,也可能是这些链接整体经过 Base64 编码后的文本。地址是获取入口,正文才是待解析的数据,两者不能混着粘贴。

内容类型识别线索通常包含什么导入位置
订阅地址HTTPS 地址,可能带访问令牌远程更新入口订阅分组设置
Base64 订阅正文编码文本,解码后常见多行协议链接一批节点参数订阅解析流程;手动处理时先解码
分享链接vmess://、vless://、trojan://单个节点及部分连接参数从剪贴板导入
完整内核 JSON含 inbounds、outbounds 等字段入站、出站及可选路由、DNS自定义配置入口

不要仅凭“以大括号开头”就判断为完整配置。VMess 的一种常见分享格式,解码后也是 JSON,但里面通常是 add、port、id、net 等节点字段,并没有完整的内核配置层级。还有些订阅接口返回的是管理平台自己的 JSON,不能直接交给 Xray 运行。

三种格式怎么选:更新用订阅,单节点用链接

订阅地址与节点列表

推荐

适合由提供方维护节点地址的日常使用。客户端保留订阅地址后,可重新获取节点;Base64 只是常见的响应编码,不决定协议能力。

适合:多设备使用、节点地址可能变化、需要持续更新

单条分享链接

复制、扫码和临时迁移比较直接。导入后通常是本地节点记录,不会因为原提供方修改参数而自动同步。

适合:排查某一个节点、临时迁移、逐项对照参数

原生完整 JSON

能明确描述本地监听端口、出站选择与规则,但依赖目标内核及其版本。它是运行配置,不是通用的跨客户端备份格式。

适合:自定义入站、复杂路由、需要保留特定内核设置

结论:先确定是否需要持续更新

需要跟随提供方更新,就在两端分别保存订阅地址;只需要迁移一个节点,才导出分享链接。不要把一次性导出的节点列表当成仍会自动更新的订阅。

Base64 不提供保密能力。订阅地址里的令牌、分享链接里的 UUID 或密码,都应按访问凭据处理。截图、日志和剪贴板同步可能暴露这些内容;排查问题时保留字段名称即可,不必把真实凭据交给在线转换网站。

Base64 与分享链接:解码后还要看字段

常见的 Base64 订阅是把多条分享链接用换行符连接,再对整段文本编码。它与 vmess:// 后面那层 Base64 不是同一层:前者包住节点列表,后者在一种常见 VMess 分享约定中包住单个节点的 JSON。解开外层后,应先检查前缀,不要对全部内容反复解码。

  1. 移除复制时混入的首尾空白,保留原始文本备份。
  2. 若开头已经是协议前缀,按链接解析,不再整体解码。
  3. 若是编码正文,解码一次,查看是否得到逐行协议链接。
  4. 若得到 HTML 登录页或错误提示,应回到订阅获取环节,而不是继续“修复编码”。

下面是采用保留示例域名的 VLESS 链接,仅用于说明字段,不是可连接的节点。端口为 443,传输为 TCP,安全层为 TLS,片段部分是显示备注。

vless://[email protected]:443?encryption=none&security=tls&type=tcp&sni=example.net#format-demo

其中 encryption=none 是 VLESS 协议相关参数,不等于关闭 TLS;安全层由 security=tls 表示。若实际节点使用 WebSocket,还要保留 type=ws、路径及 Host;若使用 REALITY,则要核对公钥、短 ID、服务端名称和指纹等参数。参数是否被识别,取决于客户端导入器和所选内核。

v2rayN 与 v2rayNG 的导入、导出步骤

不同版本的菜单文字可能略有调整,下面按常见入口名称说明。操作前先确认拿到的是订阅地址、分享链接还是完整配置文件,避免把远程地址导进普通服务器列表。桌面端还需确认当前选用的内核;安卓端的 v2rayNG 使用 Xray 内核,不能据此推断任意格式都可自动转换。

操作方案:按数据类型选择入口

桌面端:v2rayN
  • 订阅地址:打开「订阅分组」→「订阅分组设置」,新增分组并填写地址,保存后执行「更新当前订阅」。
  • 分享链接:复制完整链接,在主窗口使用「从剪贴板导入批量 URL」,常见快捷键为 Ctrl+V。
  • 导出节点:选中普通节点,在右键菜单中选择分享或导出 URL 到剪贴板的入口,再检查输出前缀。
  • 完整 JSON:使用添加自定义配置服务器的入口选择文件,不把文件正文填进订阅地址栏。
安卓端:v2rayNG
  • 订阅地址:从菜单进入「订阅分组设置」,新增分组并保存地址,再回主界面执行「更新订阅」。
  • 分享链接:点右上角「+」→「从剪贴板导入」;二维码则使用对应的扫描入口。
  • 导出节点:在节点条目的分享入口选择复制到剪贴板或二维码;部分版本需先长按条目。
  • 完整 JSON:在「+」菜单中选择导入配置文件的入口;自定义配置条目的分享能力与普通节点不同。

两端可以使用同一订阅地址,但节点可用性仍取决于各自的解析器、内核版本与网络环境。

导入成功后,先编辑一个节点核对地址、端口、UUID 或密码,再核对传输与 TLS 设置。选择节点并启动服务后,查看连接测试与内核日志。导入器能够显示节点名称,只说明文本已被识别,不代表远端认证、证书和传输参数全部正确。

完整 JSON 为什么不能直接压成一条链接

分享链接主要表达“如何连接某个出站”,完整配置则还描述“本地接收什么流量、怎么解析域名、由哪个出站发送”。一个 JSON 文件可能包含多个出站和按域名分流的规则,没有唯一的一条链接能把它们全部表达出来。将 JSON 直接 Base64 编码,再加上 vmess:// 前缀,也不会变成合法的 VMess 分享链接。

下面是 Xray 风格的教学配置,监听本机 127.0.0.1:10808 的 SOCKS 端口。它使用示例域名和示例 UUID,不能用于实际连接;作用是展示完整配置比节点链接多出的层级。它也不应被当作 V2Ray 或其他内核的通用配置模板。

{
  "log": {
    "loglevel": "warning"
  },
  "inbounds": [
    {
      "tag": "local-socks",
      "listen": "127.0.0.1",
      "port": 10808,
      "protocol": "socks",
      "settings": {
        "auth": "noauth",
        "udp": true
      }
    }
  ],
  "outbounds": [
    {
      "tag": "proxy",
      "protocol": "vless",
      "settings": {
        "vnext": [
          {
            "address": "example.net",
            "port": 443,
            "users": [
              {
                "id": "c2a183e4-5f61-4b8b-91ea-7a820ae42f61",
                "encryption": "none"
              }
            ]
          }
        ]
      },
      "streamSettings": {
        "network": "tcp",
        "security": "tls",
        "tlsSettings": {
          "serverName": "example.net"
        }
      }
    },
    {
      "tag": "direct",
      "protocol": "freedom"
    }
  ],
  "routing": {
    "rules": [
      {
        "type": "field",
        "ip": ["geoip:private"],
        "outboundTag": "direct"
      }
    ]
  }
}

这份示例的远端连接字段可以对应到前面的 VLESS 链接,但本地 SOCKS 端口和私有地址直连规则不会随链接携带。示例中的 geoip:private 还依赖运行环境具备相应规则数据。真正迁移完整配置时,需要同时确认内核语法、所需数据文件和端口是否被占用。

转换方向通常可保留需额外处理
链接列表 → Base64 正文原始链接文本与排列顺序编码不会创建订阅更新地址
分享链接 → 客户端节点导入器支持的协议与连接字段未知参数可能被忽略
客户端节点 → 分享链接可由目标链接格式表达的参数本地路由、DNS、TUN 设置
完整 JSON → 分享链接可识别的某个出站参数其他出站、入站、规则与内核扩展字段

互转失败时,按症状检查而不是反复换格式

复制订阅地址后,为什么提示没有有效配置?

先确认是否误用了“从剪贴板导入”。HTTPS 订阅地址应填入「订阅分组设置」的地址栏,保存后更新。如果更新仍失败,再查看是否返回登录页、令牌过期提示或网络超时,不能把网页正文当成节点列表。

Base64 已经解码,为什么还有一串编码?

先看前缀。若解码结果以 vmess:// 开头,后面的编码可能是单节点 JSON,属于正常结构;若已得到 vless://,则按 URI 参数解析。不要对包含多条链接的整段文本再次盲目解码。

导入成功但连不上,是转换工具漏了什么?

对照源数据检查远端端口、TLS 服务端名称、WebSocket 路径与 Host,以及 REALITY 所需参数。先关闭服务再启动,查看新一轮日志。若提示本地端口已占用,检查实际监听端口,例如配置中的 10808,不要因此修改远端 443。

换设备后节点有了,分流规则为什么没了?

节点分享不会同步完整应用设置。在原设备分别记录路由、DNS、系统代理或分应用代理设置,再在目标设备恢复。若迁移的是完整 JSON,还要确认目标使用同类内核及兼容版本,不能只看文件后缀相同。

最后做一次小范围验证:先迁移一个节点,确认字段一致、服务能启动、目标连接可建立,再批量处理其余条目。订阅更新涉及覆盖行为时,先备份手工修改的节点;对转换结果保留原文件,方便发现未知字段丢失后回退。需要进一步配置路由与 DNS,可查看本站的配置进阶。

查看客户端安装包