小火箭节点链接格式:ss://、vmess://、vless://、trojan:// 与订阅链接有何不同

科普常见分享链接的组成和编码方式,说明单条节点链接与订阅地址在导入方式和更新机制上的区别,示例一律使用 example.com 假值。

本文速览

本文适合已经持有自己的服务商配置或订阅、准备在 iPad 或 iPhone 上导入 Shadowrocket(小火箭)的用户。先用链接前缀区分单条节点与订阅,再逐项识别地址、端口、凭据及传输参数,最后说明导入、更新与故障检查。所有示例都是不可用于实际连接的假值,本站不提供、不销售、不推荐节点、订阅或其他连接服务。

一、单条分享链接与订阅地址的区别

单条分享链接描述一个连接条目,通常包含协议、服务器地址、端口和认证信息。订阅地址则是获取配置内容的入口:Shadowrocket 请求这个地址,再把返回内容解析成一个或多个条目。因此,复制一条 ss:// 链接与保存一条订阅地址,导入对象和后续更新机制不同。

输入形式主要内容更新方式
ss://Shadowsocks 的连接参数通常重新导入或手动编辑
vmess://VMess 的编码配置,常见为 Base64 包装的 JSON通常重新导入或手动编辑
vless://VLESS 的 UUID、端点与查询参数通常重新导入或手动编辑
trojan://Trojan 的密码、端点与查询参数通常重新导入或手动编辑
https://example.com/sub?token=xxxx返回配置内容的示例地址通过订阅更新重新获取

不能仅凭 https:// 就判定地址是订阅。普通网页、账户页面与订阅入口都可能使用 HTTPS;只有服务商明确提供的订阅地址,且响应内容能被当前客户端解析,才适合作为 Subscribe 导入。订阅响应也不必然包含多条节点,只有一条时仍然可以保留远端更新机制。

判断:需要同步变化就保留订阅入口

如果手里同时有订阅地址和从中复制出的单条链接,应按需求选择:需要同步条目变更时保存订阅;只需独立保留一条配置时导入单条链接。单独复制出来的条目不会因此自动关联原订阅。

二、先读懂链接的公共结构

多数 URI 形式的分享链接可以分成 scheme、认证信息、主机与端口、查询参数以及备注。不同协议对这些部分的定义不同,不能把一个协议的用户名位置直接当成另一个协议的密码位置。下例用 Trojan 展示结构,密码与地址均为假值。

trojan://[email protected]:443?security=tls&sni=example.com#Demo-Trojan
8388
下文 Shadowsocks 示例端口,不是固定要求
443
本文 TLS 示例端口,实际以已有配置为准
1–65535
连接配置可填写的常规目标端口范围

百分号编码与 Base64 是两件事。比如备注中的空格可写为 %20;Base64 则把一段字节转换为可传递的字符文本。两者都不是凭据加密。分享链接、二维码和订阅 URL 可能直接携带访问凭据,不宜发到公开评论区,也不要粘贴到来源不明的在线解码页面。

三、ss://:辨认加密方法与编码范围

Shadowsocks 常见的 SIP002 分享形式是 ss://userinfo@host:port#remark。对于常见的 AEAD 配置,userinfo 通常是 method:password 的 URL-safe Base64 编码。下面的编码部分解码后为 aes-128-gcm:demo-password。

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

解码后的认证字段:
aes-128-gcm:demo-password

服务器:example.com
端口:8388
加密方法:aes-128-gcm
密码:demo-password

另外也会遇到把 method:password@host:port 整体编码的旧式链接。这两种形式不能通过“固定截取前几个字符”来解析。Base64 文本末尾的 = 填充有时会省略,URL-safe 形式也可能使用 - 和 _,不能仅因缺少填充就断定链接损坏。

四、vmess://:Base64 外层与 JSON 内层

常见的 VMess 分享格式是在 vmess:// 后放置 Base64 编码的 JSON。此时表面上看不到 @host:port 不代表缺少地址,而是地址和端口位于 JSON 字段中。以下只展示一种常见格式解码后的内容,不是可以直接粘贴导入的完整 URI。

{
  "v": "2",
  "ps": "Demo-VMess",
  "add": "example.com",
  "port": "443",
  "id": "00000000-0000-4000-8000-000000000000",
  "aid": "0",
  "scy": "auto",
  "net": "ws",
  "type": "none",
  "host": "example.com",
  "path": "/demo",
  "tls": "tls",
  "sni": "example.com"
}

这个示例中的 add 是连接地址,id 是明显虚构的 UUID,net 表示 WebSocket 传输,path 是 WebSocket 路径。host 与 sni 分别可能参与 HTTP Host 和 TLS SNI,并不必然等于连接地址。字段 v 描述这种分享结构,不是 Shadowrocket 的应用版本号。

五、vless:// 与 trojan://:结构相近,凭据不同

这两种分享链接常采用可直接阅读的 URI 结构。VLESS 通常在 @ 之前放 UUID,Trojan 则放密码。两者都可能带传输与 TLS 参数,但不能只更换前缀就把一种协议转换为另一种。

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&sni=example.com#Demo-Trojan
检查项VLESS 示例Trojan 示例
认证信息UUID密码
传输方式type=ws 表示 WebSocket本例没有指定额外传输封装
TLSsecurity=tlssecurity=tls
名称校验相关字段sni=example.comsni=example.com

VLESS 的 encryption=none 不能解读成“整个连接没有 TLS”。它与 security=tls 属于不同层次的设置。也不能根据端口为 443 就推断证书一定有效;证书、SNI 和实际服务配置必须相符。遇到校验错误时应检查已有配置,不应把关闭证书校验作为常规修复步骤。

本文四种前缀不是完整的协议清单。Hysteria2、WireGuard 等有各自的参数模型与导入要求,不能拿本文的字段表机械套用。即使是同一种协议,分享格式也可能存在扩展;能解析成条目,只说明导入完成,不等于所有参数都已匹配服务器。

六、在 iPad 与 iPhone 上导入并更新

Shadowrocket 的 Home 用于查看连接状态与服务器条目,Config 用于管理配置文件,Settings 用于应用设置。订阅 URL 不应当作服务器域名填写,也不应仅凭扩展名认定为 Config 文件。先确定手里的内容是单条链接、订阅入口还是完整配置,再选择入口。

  1. 核对应用

    从 App Store 获取 Shadowrocket,核对开发者 Shadow Launch Technology Limited。应用为一次性买断的闭源商业应用;客户端买断 ≠ 线路套餐。iPhone、iPad 的系统要求以 App Store 页面标注为准。

  2. 导入单条

    复制自己已有的完整分享链接,回到 Home;出现剪贴板导入提示时核对后添加。若没有提示,可通过 Home 右上角「+」选择对应 Type,按原始配置逐项填写,不把整条 URI 填入服务器地址栏。

  3. 添加订阅

    Home 右上角「+」→ Type → Subscribe,在 URL 中粘贴自己的订阅地址并保存。示例地址为 https://example.com/sub?token=xxxx,仅用于说明结构。

  4. 检查更新

    回到 Home 下拉刷新订阅,检查该订阅组是否得到条目。更新可能增加、移除或修改条目;对需要保留的手工配置先做好单独记录,再执行更新。

  5. 验证连接

    选择一个已有条目,连接时按系统提示允许 VPN 配置,再使用 Home → Connectivity Test 检查。同步核对 Home → Global Routing;Direct 不会因为导入了节点就自动变成 Proxy 或 Config。

订阅主要解决条目的获取与同步,不等于已经建立完整的规则分流。使用 Global Routing → Config 时,还应检查 Config 中正在使用的配置与目标策略。DOMAIN-SUFFIX、GEOIP、IP-CIDR 和 FINAL 是规则关键字,不是节点分享协议;订阅更新成功不能证明规则也已按预期匹配。

七、导入失败、更新失败与连接失败分别查什么

应按发生阶段排查:保存前提示格式问题,优先检查链接文本;订阅请求失败,检查入口与网络路径;条目已经出现但不能连接,则检查认证、传输和路由。把三个阶段混在一起,容易反复改动本来正确的设置。

复制后没有识别,是链接坏了吗?

先检查前缀是否完整,清除文本外围的引号、说明文字与代码围栏,确认没有把整条链接中的 & 变成字面文本 &。若只是剪贴板提示未出现,可从 Home →「+」手动核对对应 Type,不要因此改掉协议前缀。

订阅更新超时,应该先换协议吗?

先核对 Subscribe 的 URL 是否仍有效、token 是否完整,以及当前网络是否能访问该入口。只有已有可用代理且订阅入口需要经代理访问时,才到 Settings → Subscribe 检查 Update via Proxy;该选项不能修复失效的凭据或错误地址。

条目能导入,为什么还是不能连接?

打开条目核对地址、端口、密码或 UUID,再核对 TLS、SNI、传输类型与路径。然后在 Home 使用 Connectivity Test,检查 Global Routing。导入成功仅表示文本被解析,不表示认证信息有效,也不表示目标服务器可达。

改了名称,更新订阅后为什么又变了?

订阅更新可能依据远端内容重建或覆盖条目,不能把订阅组中的手工修改视为永久保存。需要独立维护时,先单独保存已有条目的完整参数;之后分别管理独立条目与原订阅,避免把两者当作同一份配置。

App Store 正版核验与导入教程

先核对 Shadowrocket 的 App Store 应用身份与购买信息,再按教程导入自己已有的订阅或配置。唯一获取入口是 App Store;购买客户端不包含连接服务,兼容性与系统要求以 App Store 页面标注为准。

去正版核验页 看教程
App Store 正版核验