小火箭节点链接格式:ss://、vmess://、vless://、trojan:// 与订阅地址怎么分辨

拆解各类分享链接的前缀结构和编码方式,说明单节点链接与订阅地址的区别,并给出在 Shadowrocket 中识别与导入的方法,示例均为假值。

本文速览

Shadowrocket(小火箭)的单节点分享链接直接携带连接参数,订阅地址则指向需要获取的配置内容。本文面向已经拥有自己连接配置的用户,按前缀、编码、字段和导入入口逐项辨认。读完可以判断该使用链接导入、Type → Subscribe,还是 Add Server 手动填写,并知道为什么导入成功不等于连接成功。下文地址、密码、UUID 和端口组合均为演示假值,不能用于实际连接。

先看前缀,再确认地址用途

链接开头的 scheme 决定解析方式。ss:// 指向 Shadowsocks 参数,vmess:// 指向 VMess 参数,vless:// 指向 VLESS 参数,trojan:// 指向 Trojan 参数。这些链接通常各描述一个服务器条目;把多个链接排成多行,也不会自动产生一个可以持续更新的订阅地址。

以 https:// 开头的地址只说明使用 HTTPS 获取内容,不能单凭前缀认定它是订阅。网页、账号管理页面和订阅端点都可以使用 HTTPS。只有在配置提供方明确标记为订阅、且响应内容能被客户端识别时,才应把它填入 Subscribe。

4 种
本文拆解的分享前缀:ss / vmess / vless / trojan
443
下文 TLS 示例端口,不是所有连接的固定端口
8388
下文 Shadowsocks 示例端口,实际值须核对原参数
外观通常承载什么首先检查
ss://…Shadowsocks 的加密方法、密码、地址与端口编码段是否完整,是否附带 plugin 参数
vmess://…常见为 Base64 编码的 JSON 参数地址、UUID、传输方式和 TLS 是否齐全
vless://…UUID、地址、端口及查询参数type、security、flow 等字段
trojan://…密码、地址、端口及 TLS、传输参数密码编码、SNI 与证书校验条件
https://example.com/sub?token=xxxx订阅端点示意,实际内容需请求后读取是否确为订阅,而非登录页或错误页

ss://:分清 Base64 段与服务器地址

Shadowsocks 分享链接常见结构是 ss://用户信息@主机:端口#名称,其中用户信息可以是 method:password 的 Base64 表示。下面的用户信息解码后是 aes-128-gcm:demo-pass;example.com 是演示主机,8388 是演示端口,Demo-SS 是名称。

ss://[email protected]:8388#Demo-SS

另一些较早的表示形式会把包含主机和端口的整段内容一起编码。因此,不能要求每条 ss:// 链接都能直接看见 @。Base64 以及 URL-safe Base64 的表现可能不同,末尾的 = 也可能被省略;不要仅凭这些外观差异判断参数失效。

vmess://:解码后按 JSON 字段核对

常见 VMess 分享格式是 vmess:// 后接 Base64 编码的 JSON。下面展示的是解码后的演示内容,不是可直接粘贴到订阅栏的链接。真实导入应保留原始完整分享文本,不需要先手动解码再重新编码。

{
  "v": "2",
  "ps": "Demo-VMess",
  "add": "example.com",
  "port": "443",
  "id": "11111111-1111-4111-8111-111111111111",
  "aid": "0",
  "scy": "auto",
  "net": "ws",
  "type": "none",
  "host": "example.com",
  "path": "/demo",
  "tls": "tls",
  "sni": "example.com"
}

add 和 port 是连接目标,id 是 UUID,aid 对应 alterId。net 描述传输方式;当它是 ws 时,host 和 path 才需要按 WebSocket 参数理解。tls 和 sni 用于核对 TLS 设置。字段之间有依赖关系,不是只填 UUID 就足够。

如果解码后不是预期的 JSON,也不应立即改写原文。分享格式可能存在变体,或者文本已经被截断。先重新取得原始链接,再核对客户端导入后显示的字段,比反复修改编码内容更容易定位问题。

vless:// 与 trojan://:重点看查询参数

VLESS 与 Trojan 常以可直接阅读的 URI 形式分享。@ 前分别放 UUID 或密码,后面跟主机与端口;? 后是查询参数,多个参数由 & 分隔。以下两条仅展示结构,不代表能连接的服务器。

vless://[email protected]:443?encryption=none&security=tls&type=ws&host=example.com&path=%2Fdemo&sni=example.com#Demo-VLESS

trojan://[email protected]:443?security=tls&type=tcp&sni=example.com#Demo-Trojan
字段读取方法常见误判
encryption=none此处表示 VLESS 自身不提供该层数据加密不能据此判断没有 TLS
security=tls请求使用 TLS,仍需核对相关参数端口为 443 不等于 TLS 已正确配置
type=ws使用 WebSocket 传输,核对 host 与 path不能把 ws 改成 tcp 后只保留原密码
sniTLS 握手使用的服务器名称不必然等于连接地址,也不等于 WebSocket Host
flow部分 VLESS 配置使用的流控参数不是每条 VLESS 链接都应增加此字段
%2F百分号编码,解码后是斜杠手填 path 时不要重复编码成 %252F

Trojan 的密码如果包含 @、# 或 & 等保留字符,需要正确进行 URI 编码。复制后擅自把这些字符“恢复得更好看”,可能改变解析边界。手动填写时则应填入字段实际需要的值,而不是把整条 URI 塞进 Password。

结论:按字段核对,不按端口猜协议

发现地址与端口相同但连接结果不同,应继续比对 UUID 或密码、type、SNI、path 和 flow。端口 443 可以用于不同协议,不能作为把 VLESS 改成 Trojan 的依据。

订阅地址:获取的是内容,不是固定一条节点

订阅地址是一处可重复请求的端点。客户端获取响应后,再解析里面的服务器条目;响应可能是多条分享链接组成的文本、其 Base64 表示,或客户端支持的其他格式。具体能否识别取决于返回内容,不能由网址长短判断。

例如 https://example.com/sub?token=xxxx 中的 token 只是演示参数名。实际地址可能把凭据放在路径中,也可能使用其他查询参数。删除看似无关的参数、修改大小写或把 & 后面的内容漏掉,都可能让请求返回错误页,而不是节点列表。

Type → Subscribe

推荐

保存用户已有的订阅地址,并通过更新重新获取条目。这里的推荐仅针对已经确认持有订阅地址的情形,不代表任何连接服务推荐。

适合:已有明确标记的订阅端点,需要后续同步条目

Type → 对应协议

在 Add Server 中选择 Shadowsocks、VMess、VLESS 或 Trojan 等对应类型,逐项保存连接参数。独立手填条目不会仅因原订阅变化就自动获得新参数。

适合:已有完整参数表,需要逐字段核对单个服务器

将订阅中的一个节点分享出来,通常只得到该节点当时的参数快照,不能据此恢复完整订阅地址。反过来,持有订阅地址也不等于只持有一个节点;更新可能增加、移除或修改其中的条目。手动修改订阅生成的条目前,宜先记录差异,因为后续更新可能覆盖这些修改。

在 Shadowrocket 中识别并导入

先保留一份自己的原始文本,再选择入口。Home 主要管理服务器与连接状态;Config 管理规则配置,不应把任意规则文件地址当成节点订阅。扫码和剪贴板只是读取文本的方式,最终仍要由文本内容决定创建哪一类条目。

  1. 确认原文

    检查开头是 ss://、vmess://、vless://、trojan://,还是已被明确说明用途的 HTTPS 订阅地址。去掉聊天软件附带的引号和说明文字,但不要删除链接内部参数。

  2. 添加订阅

    订阅地址使用 Home → 右上角「+」→ Add Server → Type → Subscribe,在 URL 填入自己的完整地址,保存后执行该订阅的更新。不要在普通服务器的 Address 栏填写整条 HTTPS 地址。

  3. 导入单条

    单节点链接可完整复制后回到 Shadowrocket,按识别提示导入;系统询问粘贴权限时按需要允许。二维码使用 Home 顶部的扫描入口读取,确认识别结果后再保存,不要直接覆盖尚未核对的条目。

  4. 核对参数

    打开导入条目的编辑页,检查 Type、Address、Port,以及对应的 UUID 或 Password,再核对 TLS 和传输参数。若自动识别失败,可由 Home →「+」→ Add Server 选择对应 Type,按已有参数手填。

  5. 验证连接

    返回 Home,选择目标服务器并连接。首次需要添加 VPN 配置时按系统提示授权,再使用 Connectivity Test 辅助观察;同时确认 Global Routing 的当前选择符合测试目的。

如果完整链接已经复制,但没有出现导入提示,先检查系统是否允许读取剪贴板,以及文本是否被换行、空格或富文本标点截断。不要反复把相同内容添加到 Subscribe;一个可以解析的单节点 URI,并不因此成为可更新的订阅端点。

导入失败、更新为空与连接失败分别检查

这三类故障发生在不同阶段。导入失败是文本没有被正确解析;更新为空是获取或解析订阅内容没有得到预期条目;连接失败则发生在服务器条目已经存在之后。按阶段排查,可以避免在错误的位置反复修改配置。

Global Routing 的 Proxy、Direct、Config、Scene 决定流量如何选择路径,不负责把错误链接变成正确参数。尤其在 Direct 下,目标访问成功不能证明刚导入的服务器可用;在 Config 下,请求可能命中 DIRECT 规则。需要验证服务器时,应同时确认所选条目与当前路由方式,而不是只看浏览器能否打开页面。

结论:保留原文,每次只改一项

按“识别文本 → 获取内容 → 核对字段 → 验证连接”的顺序检查。记录具体错误和修改项,先恢复到已有配置的原始参数,再逐项排除问题;不要同时更改协议、端口和 TLS 设置,否则无法判断哪个变化影响结果。

App Store 正版核对查看购买与恢复说明