跳到主内容
机场工具箱
报错解释 机场工具箱 编辑部

vmess:// 链接解析失败的两种情况,报错不一样

vmess 链接是 Base64 编码的一段 JSON,所以解析可能在两个不同的阶段失败:Base64 本身解不开,或者解开了但内容不是合法 JSON。两种报错指向的原因完全不同,本文说明各自的成因与排查顺序。

发布:2026 年 7 月 30 日 约 2 分钟读完
本文目录(6 节 · 约 2 分钟) +
  1. 01 两条报错分别是什么意思
  2. 02 第一种:Base64 解不开
  3. 03 第二种:解开了但不是 JSON
  4. 04 排查顺序
  5. 05 一个提醒
  6. 06 相关

一句话结论:vmess:// 后面是「Base64 编码的一段 JSON」,所以有两道关卡。第一道过不去说明链接被截断或混入了杂字符,第二道过不去说明这条链接根本不是标准的 vmess 分享格式。

两条报错分别是什么意思

vmess:// 后面不是合法的 Base64

第一道关卡失败。 连解码这一步都没走完,通常是链接不完整或掺了别的字符。

Base64 能解开,但里面不是合法 JSON(vmess 分享链接应为 Base64 编码的 JSON)

第二道关卡失败。 解码成功了,但解出来的东西不是 JSON。这说明链接的编码方式或格式与标准不同。

第一种:Base64 解不开

按可能性排序:

链接被截断了。 从聊天软件复制时最常见——消息气泡把长链接折行显示,选中时漏掉了尾巴。vmess 链接通常上百个字符,少几个就解不开。判断方法:看链接结尾,标准 Base64 的长度是 4 的倍数,不足时用 = 补齐,所以正常的 vmess 链接末尾常常是 ===。当然没有 = 也可能正好对齐,这只是一个参考信号。

混进了空格或换行。 复制时带进了行首缩进、或者链接中间被插入了换行符。多数解析器会先清理空白,但如果空白出现在中间且原链接本身有问题,就可能失败。

带上了多余的前后缀。 比如把整句话都复制了:我的节点:vmess://eyJ2Ijoi...,前面那几个字会让解析从错误的位置开始。

用的是 URL-safe 变体。 少数生成器输出的 Base64 用 -_ 替代了标准的 +/。规范的解析器会同时接受两种,但不是所有工具都会。

第二种:解开了但不是 JSON

这种情况说明链接结构本身不同:

它其实是别的协议。 有些工具会把非 vmess 的内容也套上 vmess:// 前缀。解开之后如果看到的是 auto:密码@服务器:端口 这种形状,那更像 Shadowsocks 的写法。

它是「v2rayN 早期格式」。 极老的版本用过 安全类型:UUID@服务器:端口 这种非 JSON 的紧凑写法。现在基本绝迹,但从很旧的备份里翻出来的链接可能是这种。

内容被二次编码了。 有的分享工具会把整条链接再 Base64 一次。这种情况下解开第一层看到的还是一串 Base64 字符,不是 JSON。

排查顺序

  1. 先确认是不是截断:回到来源重新完整复制一次。这一步能解决大多数情况,而且成本最低。
  2. 再看有没有杂字符:确保复制的内容以 vmess:// 开头,且后面没有空格、换行、中文。
  3. 仍然失败就换来源:让对方重新导出一次,或者从机场后台重新取。

把链接粘进节点链接解析器可以直接看到卡在哪一关——两种失败给的是不同的提示,不用自己判断。它支持一次粘多条,每条单独出结果,所以可以把一批链接一起丢进去,快速找出坏掉的那几条。

一个提醒

排查过程中不要把链接发给别人帮忙看。vmess 链接里含有完整的 UUID,那是连接凭证——拿到它的人可以直接使用你的节点。

UUID 和密码是一回事吗?各协议的凭证有什么不同

相关

照着做一遍,比再看十篇都有用

先挑好客户端,遇到连不上再回来排查。

相关文章

配置报错、链接看不懂?粘进来看一眼

不用注册、不用填订阅地址,把出问题的配置或看不懂的节点链接直接粘进对应工具,结果当场显示。全部计算在你的浏览器里完成,粘贴的内容不会上传到任何地方——页面加载完之后断网,工具照样能用。