Shadowrocket 分享链接格式说明:ss://、vmess://、vless://、trojan:// 与订阅链接的区别

拆解四种分享链接的结构与编码方式,说明单条链接与订阅链接在导入、更新、管理上的不同,示例全部使用假值。

本文速览

本文适合已经持有自己的服务商配置与订阅、需要在 Shadowrocket 中识别和导入链接的用户。先分清单条连接参数与订阅地址,再核对编码、认证和传输字段,最后区分导入失败、订阅更新失败与连接失败。文中的域名、密码、UUID 和 token 全部为演示假值,不能用于实际连接。

一、先分清:分享链接是连接参数,订阅链接是更新入口

Shadowrocket(小火箭)可以将分享链接中的参数解析为连接条目。以 ss://、vmess://、vless:// 或 trojan:// 开头的文本,通常描述一个服务器的协议、地址、端口和认证信息;部分格式还携带 TLS、传输方式与备注。它不是一个需要在浏览器里访问的普通网页地址。

订阅链接通常是一个 HTTPS 地址。客户端向该地址请求内容,再把响应中支持的连接条目加入对应订阅。它的作用是保留一个可重复获取列表的入口,而不是把所有连接信息都写在地址栏里。仅看 https:// 前缀不能确认这是订阅:它也可能指向登录页、错误页或普通说明页。

4 种
本文拆解的分享前缀:ss / vmess / vless / trojan
443
本文 TLS 示例端口,不是所有服务的固定端口
8388
本文 Shadowsocks 示例端口,实际以已有配置为准
核对项目单条分享链接订阅链接
主要内容一个连接条目的参数获取连接列表的远程地址
导入过程主要在本地解析文本需要请求地址并解析响应
后续变化原始分享文本不会自行变更更新时可获取远程列表的变化
敏感信息密码、UUID、服务器信息地址中的 token 及返回的配置

单条分享链接也不等于完整的 .conf 配置文件。导入一个服务器,通常不会同时替换 Config 中的 [Rule]、[Host] 等内容。服务器决定连接到哪里,规则决定哪些请求采用什么策略,两者要分开核对。

二、ss://:识别 Shadowsocks 的认证编码

ss:// 是 Shadowsocks 分享链接常见的前缀。常见 SIP002 写法把加密方法与密码组合为 method:password,进行 Base64URL 编码后放在 @ 前面;服务器地址和端口仍然可读。下面的认证部分解码后是 aes-128-gcm:password,密码仅用于演示。

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

另一类旧式分享会把包含服务器地址在内的更长内容整体做 Base64 编码,因此不能用“有没有 @”作为唯一判断标准。带有插件参数的链接还可能出现查询字符串;若来源配置要求插件或额外传输参数,不能为了让文本更短而自行删除。

三、vmess://:先还原 JSON,再核对字段含义

常见的 vmess:// 分享格式将一段 JSON 文本编码为 Base64,再接到前缀后。解码结果应当是结构完整的 JSON,而不是网页 HTML。以下是用于说明字段的解码后内容,不是可直接粘贴导入的完整链接。

{
  "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"
}
字段示例含义核对重点
add / port服务器地址与端口不要与 HTTP Host 或 SNI 混为一谈
id / aidUUID 与 alterId认证参数应与已有服务端配置一致
net / pathWebSocket 传输与请求路径/demo 的大小写和斜杠属于配置内容
host / sniHTTP Host 与 TLS Server Name两者可能相同,但承担不同作用
ps / v备注与分享格式标识v 不是 Shadowrocket 的版本号

不同来源生成的 VMess 分享内容可能有字段差异,不能仅凭某个字段是否存在就推断服务必然可用。导入后应打开该条目的编辑页面,核对认证、传输方式及 TLS 参数是否被正确识别。成功显示名称,只能说明客户端读到了部分信息,不代表服务器接受这些参数。

四、vless:// 与 trojan://:明文 URI 字段不等于明文传输

这两类链接常采用可以直接辨认的 URI 结构:认证信息在 @ 前,服务器在后,查询参数描述传输或安全设置。链接中的字段是否容易阅读,与实际连接是否使用 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&type=tcp&sni=example.com#Demo-Trojan

若密码含有 @、#、? 等分隔符,应由生成链接的一方进行正确的百分号编码。手动拼接时漏掉编码,可能让客户端把密码的一部分识别成服务器、查询参数或备注。也不要把已经编码的 %2F 再次编码成 %252F,否则路径可能不再是原值。

判断方法:导入后对照字段,不靠前缀猜兼容性

先检查服务器、端口、认证,再检查传输与 TLS。尤其是链接带有额外安全参数或特定传输选项时,应以客户端实际解析结果及服务端要求为准;不要通过删除未知字段、关闭证书验证来尝试“修复”链接。

五、订阅导入与更新:保留来源,不把本地修改当作远程配置

下面是一个明显的假订阅地址。它只说明地址形态:路径用来定位订阅接口,查询参数中的 token 常用于识别访问权限。真实订阅的路径、参数名与响应格式由用户已有的服务商决定。

https://example.com/sub?token=xxxx

订阅响应可能是受支持分享链接组成的文本列表,也可能是这些文本的 Base64 编码形式。一个返回状态正常但内容为登录页面的地址,仍然无法当作有效连接列表导入。二维码也只是文字的另一种承载方式:扫码得到单条分享还是订阅地址,要看其中实际编码的内容。

  1. 复制完整的已有订阅地址,避免带入聊天文本的句号、引号或换行。保留原始 token,不自行补写或删改。
  2. 在 Home 点右上角 +,进入新增条目页面,选择 Type → Subscribe,在 URL 中填写地址,并用 Remarks 标明来源后保存。
  3. 首次获取完成后,回到 Home 核对对应订阅及其条目。打开一个条目的编辑页面,确认类型、地址、端口与认证字段不是空值。
  4. 需要刷新时,使用 Home 中对应订阅的更新操作。更新后先看条目列表是否变化,再测试实际连接;不要把“更新成功”理解成列表里的每个服务器都可用。

管理方式:远程订阅与本地测试副本分开

保留远程订阅
  • 保存原始 URL 与来源备注。
  • 由更新操作接收列表增删和参数变化。
  • 更新前记录需要保留的自定义改动。
单独维护测试条目
  • 需要试改时,另建一个备注清晰的条目。
  • 只修改一项参数,便于对照结果。
  • 测试结束后确认 Home 当前选中的条目。

订阅更新可能覆盖或重建来源条目,不要依赖订阅内的临时修改长期保留。

六、导入之后:用 Global Routing 区分连接与规则问题

Home 负责连接条目与当前选择,Config 用于配置文件,Settings 用于客户端设置。导入单条链接后网页仍不能访问,不能立即判断链接格式有错:请求也可能没有使用刚导入的条目,或者被当前规则分配到其他策略。先记录 Home 中的当前选择,再查看 Global Routing。

Config

推荐

按当前配置的规则确定策略。用于已有规则配置的日常使用时,应同时核对命中规则和规则引用的策略,而不只是看 Home 中的选择。

适合:已经准备好规则配置,需要按规则处理请求。

Proxy

将受客户端处理的请求按代理姿态处理,可用于临时对照当前连接。它不是对设备上全部通信的无条件保证,测试后应恢复原有姿态。

适合:短时排查规则分流是否影响测试结果。

Direct

采用直连姿态,不适合据此验证刚导入的代理服务器。此时网页能打开,也不能证明分享链接里的认证参数正确。

适合:对照当前网络的直连表现。

Global Routing 还包含用于场景切换的 Scene,相关行为需要结合已有场景设置核对。它不代表一种新协议,也不替代服务器认证。若设置了自动连接条件,还应检查 Settings → On Demand,避免把自动重连的现象误判为导入操作没有保存。

七、常见问题:按失败阶段处理,不反复改写链接

复制了 ss://,为什么没有导入成功?

先检查文本是否从 ss:// 开始,是否被聊天软件插入换行、空格或省略号,再核对编码内容是否完整。不要只复制屏幕上被截短的预览。导入后若已有条目但连接失败,应转查认证与网络,而不是继续尝试不同的 Base64 解码次数。

订阅地址在浏览器里能打开,为什么列表还是空的?

能打开只说明取得了某种响应。确认拿到的是已有服务商提供的订阅入口,而不是账户管理页;检查 token 是否完整、是否需要重新获取授权。若响应是登录页面或错误提示,应先解决地址与权限问题,不能把网页内容改成分享前缀强行导入。

订阅更新提示超时,要不要重新添加所有条目?

先保留现有配置,确认当前网络可访问订阅地址。若该地址确实需要经已有可用连接访问,可在 Settings → Subscribe 核对 Update via Proxy,再回 Home 重试更新。认证错误或 token 失效不属于网络超时,切换访问路径不能替代重新取得有效授权。

把 vmess:// 改成 vless:// 能转换协议吗?

不能。VMess 的常见分享内容是编码后的 JSON,VLESS 常见分享结构则直接包含 UUID、服务器和查询参数;认证与协议行为也不同。应从已有服务商取得对应协议的完整配置,再在 Home 新增并核对参数,不能只替换开头几个字符。

把链接截图发给别人排查,遮住密码就够了吗?

不够。UUID、订阅 token、二维码和编码后的认证串都可能提供访问能力。提交问题时改用文字描述协议、端口、传输方式及错误阶段,并删除完整链接。如果真实凭据已经泄露,应在原服务的管理渠道更换或撤销对应凭据,再更新客户端保存的内容。

排查时保留一个明确顺序:原始文本是否完整、格式是否被正确解析、远程请求是否成功、认证是否匹配、规则是否采用预期策略。每次只改变一个条件,记录变化前后的现象,比同时重建订阅、切换协议和改动规则更容易定位原因。

App Store 正版核对