ss://、vmess://、vless://、trojan:// 分享链接格式说明:和订阅链接有什么区别

拆解几种分享链接的结构与所含字段,说明单条链接和订阅地址的差别,以及两者分别怎样导入 Shadowrocket。

本文速览

本文适合已经持有自己服务商连接资料、需要在 Shadowrocket(小火箭)中导入和核对参数的用户。先通过链接前缀区分单条连接资料与订阅地址,再识别服务器、端口、凭据和传输参数,最后按导入、更新、验证的顺序检查。文中 example.com 地址与演示凭据仅用于说明语法,不能用于连接;本站不提供、不销售、不推荐节点或订阅服务。

1. 分享链接与订阅链接:一个装参数,一个取列表

ss://、vmess://、vless://、trojan:// 是本文讨论的四种分享链接前缀。它们通常把一条连接所需的资料写进链接本身。导入后,客户端读取这些资料,建立一条本地服务器记录。修改链接中的备注,不会改变远端服务器的设置。

订阅地址通常以 https:// 开头,例如 https://example.com/sub?token=xxxx。客户端先请求这个地址,再解析服务器返回的连接列表。返回内容可能是多条分享链接的编码文本,也可能是客户端支持的其他订阅格式。它不是“把 https 改成某个协议前缀”就能得到的单条分享链接。

检查项单条分享链接订阅地址
资料放在哪里主要写在链接文本中由地址对应的服务端返回
导入时的动作解析参数,保存一条连接记录请求地址,解析并保存一组记录
服务端资料变化后通常需要重新导入或手动修改执行订阅更新后同步,具体取决于服务端返回内容
敏感内容密码、UUID、服务器资料访问令牌、路径中的凭据,以及可取得的连接资料

只看 https:// 还不能确认它是订阅。账户登录页、付款页、帮助文档同样使用 HTTPS。判断依据是自己的服务商给出的用途,以及请求后能否返回 Shadowrocket 可解析的订阅内容。遇到登录网页或验证码页面,应先核对复制的是否为订阅地址。

2. 先读结构:前缀、凭据、主机、端口与参数

不同协议的字段布局不完全相同,但检查顺序可以固定。先确认前缀,再查认证资料,然后核对服务器地址和端口,最后对照 TLS 与传输设置。备注通常位于 # 之后,只用于辨认记录,不是认证密码。

4 种
本文解析的前缀:ss / vmess / vless / trojan
443
后文 TLS 示例端口,不是所有服务的固定端口
8388
后文 Shadowsocks 示例端口,实际值由服务端决定

3. ss://:读取加密方法与密码

ss:// 对应 Shadowsocks。常见 SIP002 分享格式将“加密方法:密码”做 Base64 或 URL-safe Base64 编码,再接 @服务器:端口。也存在把更长一段资料整体编码的旧格式,因此不能仅凭链接里有没有可见的 @ 判断它是否损坏。

ss://[email protected]:8388#demo-ss

上例仅为语法演示。YWVzLTEyOC1nY206ZGVtby1vbmx5 解码后是 aes-128-gcm:demo-only:加密方法为 aes-128-gcm,密码为 demo-only,服务器为 example.com,端口为 8388。不要把整段编码文本填入密码栏。

  1. 导入后打开记录详情,确认 Type(类型)对应 Shadowsocks。
  2. 对照自己的连接资料,核对加密方法、密码、服务器与端口。
  3. 若原链接含 plugin 参数,继续核对插件名称与选项。基础字段正确不代表插件配置已经完整。

Base64 尾部有时不带 = 补位,URL-safe 变体还会使用 - 和 _。这些差异不应靠逐字替换来“修复”。先保留服务商给出的原文,让导入器识别;只有确认文本被截断时,才重新复制完整链接。

4. vmess://:常见形式是 Base64 编码的 JSON

vmess:// 对应 VMess。常见分享形式把一个 JSON 对象编码后放在前缀后面。下方展示的是解码后的结构,不是可以直接粘贴导入的完整分享链接。不同生成端也可能采用其他变体,不能把一种格式的字段解释套到所有链接上。

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

JSON 结构要求引号和逗号完整。聊天工具换行、复制时漏掉结尾、把英文引号改成中文引号,都可能导致解析失败。若导入后服务器地址为空,应先检查原始链接是否完整,而不是先修改 Global Routing(全局路由)。

5. vless:// 与 trojan://:外形相似,凭据不同

vless:// 和 trojan:// 常见分享形式都接近“凭据@服务器:端口?参数#备注”。前者通常使用 UUID,后者通常使用密码。外形相似不代表可以互换前缀,也不代表两者的传输参数可以原样通用。

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

trojan://demo%[email protected]:443?security=tls&type=tcp&sni=example.com#demo-trojan
字段解释核对方式
VLESS 凭据示例中为 UUID逐段核对,保留连字符
Trojan 凭据示例密码为 demo@only链接中的 %40 解码为 @,不要将分隔符误当作密码内容
security=tls描述 TLS 传输安全设置同时核对 SNI 与证书对应的名称
type=ws / type=tcp描述传输方式不能只因端口都是 443 就互换
path=%2Fdemo解码后的路径为 /demo保留开头斜杠和大小写

VLESS 示例中的 encryption=none 描述 VLESS 自身的加密字段,不等于整条连接没有 TLS。应结合 security 参数理解。其他安全模式还可能要求额外参数,不能把本例的 TLS 设置直接用于自己的服务。

服务器地址、SNI 和 WebSocket Host 可以相同,也可以不同,各自用途并不相同。不要为了让字段“看起来一致”而统一改写。导入器对参数的支持也有差异:记录能够保存,只说明语法被接受,后续仍要核对详情并实际验证连接。

6. 在 Shadowrocket 导入:区分单条记录与订阅分组

以下步骤以 Home(首页)的导入操作为说明。Home 用于管理服务器记录,Config(配置)用于管理规则配置,Settings(设置)用于应用选项。普通服务器分享链接和订阅地址不应当作为规则配置文件导入 Config。

导入单条分享链接

  1. 从自己已有的服务资料中复制完整链接,只复制链接本身,不附带说明文字、引号或句末标点。
  2. 打开 Shadowrocket,进入 Home。若出现剪贴板导入提示,确认后检查新记录;没有提示时,使用应用提供的导入入口或扫描该链接对应的二维码。
  3. 打开记录详情,依次核对 Type、服务器、端口、凭据以及 TLS、传输参数。不同协议的详情字段不完全相同。
  4. 保存并选中该记录,再开启连接。单条记录不会因为服务商修改资料而自动变成订阅管理的记录。

导入与更新订阅

  1. 复制自己的订阅地址,例如结构类似 https://example.com/sub?token=xxxx 的地址。此处仅为假值,不是服务入口。
  2. 进入 Home → +,在 Type 中选择 Subscribe(订阅),将完整地址填入订阅地址栏,保存并等待获取列表。
  3. 检查订阅分组是否出现记录,再选择需要使用的记录。导入订阅成功,不等于已经选中其中一条连接。
  4. 服务资料变化后,在 Home 的订阅分组操作中执行更新。先确认返回内容与更新结果,再排查原有记录是否发生变动。

7. 导入后验证:先检查资料,再比较路由姿态

导入成功仅表示资料能够解析,不表示服务器可达、凭据有效或规则符合预期。先选中记录并检查连接,再核对 Home → Global Routing。下面比较的是 Shadowrocket 自身的设置,不是协议速度排名。

Config(配置)

推荐

按当前配置中的规则选择策略。命中 DOMAIN-SUFFIX、IP-CIDR、GEOIP 等规则时执行对应策略;前面的规则都未命中时由 FINAL 决定去向,并非必然直连。

适合:已有规则配置、需要按目标分流的日常使用

Proxy(代理)

对客户端接管的连接采用代理姿态,可用于暂时排除普通分流规则对测试目标的影响。它不会修复错误的密码、端口或 TLS 参数。

适合:临时核对代理连接是否可用、缩小规则排查范围

Direct(直连)

对客户端接管的连接采用直连姿态。网页能够打开,也不能据此证明刚导入的代理记录可用。

适合:核对本地网络本身是否正常

结论:每次只改变一个检查项

若同一测试目标在 Proxy 下可用、在 Config 下失败,保留连接参数,转查匹配规则、策略与 DNS;若两种姿态均失败,先核对服务器、端口、认证和 TLS。测试结束后恢复原先的路由姿态,避免把临时设置当作长期配置。

Global Routing 还包含 Scene(场景)姿态,其行为取决于已有场景设置;它不是本文用来排除变量的固定测试姿态。Settings → On Demand(按需连接)控制按条件触发连接,也不负责补齐分享链接中的参数。排查期间若连接状态被自动改变,应同步检查已有的 On Demand 设置。

8. 分享链接导入与订阅更新常见问题

复制了链接,为什么没有自动添加?

先确认前缀与内容完整,去掉链接外部的引号和说明文字。再检查系统是否允许读取剪贴板,回到 Home 使用导入入口或扫描原链接生成的二维码。不要为了触发识别而把 https 订阅地址改写成 ss 前缀。

订阅更新显示成功,记录却没有变,是不是没有刷新?

不一定。更新成功表示本次获取和解析完成,服务端可能仍返回同一份列表。检查分组里的服务器与端口是否真的发生变化,再核对自己复制的订阅地址。不要通过连续删除重建分组来判断服务端是否更新。

订阅地址在浏览器里能打开,为什么应用导入失败?

浏览器能显示页面,不等于响应是订阅。若看到登录表单、HTML 错误页或访问验证页面,重新核对服务商标注的订阅入口。若请求返回 401 或 403,检查令牌与账户权限;若超时,检查网络可达性,不要先改协议密码。

能不能把完整链接发给别人帮忙检查?

先在本地副本中遮去密码、UUID、订阅令牌和其他认证参数,只保留待核对的字段结构。二维码同样包含原始资料。若完整凭据已经公开,应通过自己的服务账户撤销或更换相关凭据,再在 Home 更新记录或订阅。

完成检查后,应能够分别回答三个问题:导入的是单条资料还是订阅地址;保存的字段是否与自己的服务资料一致;当前路由姿态是否会使用这条连接。按这个顺序处理,能够避免把格式问题、服务可达性问题与规则问题混在一起。

下载 Shadowrocket