本文适合已经持有自己服务商连接资料、需要在 Shadowrocket(小火箭)中导入和核对参数的用户。先通过链接前缀区分单条连接资料与订阅地址,再识别服务器、端口、凭据和传输参数,最后按导入、更新、验证的顺序检查。文中 example.com 地址与演示凭据仅用于说明语法,不能用于连接;本站不提供、不销售、不推荐节点或订阅服务。
1. 分享链接与订阅链接:一个装参数,一个取列表
ss://、vmess://、vless://、trojan:// 是本文讨论的四种分享链接前缀。它们通常把一条连接所需的资料写进链接本身。导入后,客户端读取这些资料,建立一条本地服务器记录。修改链接中的备注,不会改变远端服务器的设置。
订阅地址通常以 https:// 开头,例如 https://example.com/sub?token=xxxx。客户端先请求这个地址,再解析服务器返回的连接列表。返回内容可能是多条分享链接的编码文本,也可能是客户端支持的其他订阅格式。它不是“把 https 改成某个协议前缀”就能得到的单条分享链接。
| 检查项 | 单条分享链接 | 订阅地址 |
|---|---|---|
| 资料放在哪里 | 主要写在链接文本中 | 由地址对应的服务端返回 |
| 导入时的动作 | 解析参数,保存一条连接记录 | 请求地址,解析并保存一组记录 |
| 服务端资料变化后 | 通常需要重新导入或手动修改 | 执行订阅更新后同步,具体取决于服务端返回内容 |
| 敏感内容 | 密码、UUID、服务器资料 | 访问令牌、路径中的凭据,以及可取得的连接资料 |
只看 https:// 还不能确认它是订阅。账户登录页、付款页、帮助文档同样使用 HTTPS。判断依据是自己的服务商给出的用途,以及请求后能否返回 Shadowrocket 可解析的订阅内容。遇到登录网页或验证码页面,应先核对复制的是否为订阅地址。
2. 先读结构:前缀、凭据、主机、端口与参数
不同协议的字段布局不完全相同,但检查顺序可以固定。先确认前缀,再查认证资料,然后核对服务器地址和端口,最后对照 TLS 与传输设置。备注通常位于 # 之后,只用于辨认记录,不是认证密码。
- 协议前缀:告诉导入器按哪一种格式解析,不能随意替换。
- 凭据:可能是密码,也可能是 UUID。应保留完整大小写与符号。
- 服务器和端口:共同确定连接目标。域名相同、端口不同,也可能对应完全不同的服务。
- 查询参数:
?后的参数由&分隔,用于描述传输或安全设置;参数名称与支持范围取决于分享格式。 - 备注:
#后的标签可能使用百分号编码,例如%20表示空格。
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。不要把整段编码文本填入密码栏。
- 导入后打开记录详情,确认 Type(类型)对应 Shadowsocks。
- 对照自己的连接资料,核对加密方法、密码、服务器与端口。
- 若原链接含
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"
}
add与port:服务器地址和端口;id是认证所用的 UUID。ps:备注;v:这类分享结构的格式标记,不是 Shadowrocket 应用版本。aid:历史格式中的 alterId 字段;现代 VMess AEAD 配置通常为0,应以服务端要求为准。net、host、path:分别描述传输类型及相关参数。示例的ws指 WebSocket。tls与sni:分别表示 TLS 设置及握手使用的服务器名称;不要和 WebSocket 的 Host 混为一项。
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。
导入单条分享链接
- 从自己已有的服务资料中复制完整链接,只复制链接本身,不附带说明文字、引号或句末标点。
- 打开 Shadowrocket,进入 Home。若出现剪贴板导入提示,确认后检查新记录;没有提示时,使用应用提供的导入入口或扫描该链接对应的二维码。
- 打开记录详情,依次核对 Type、服务器、端口、凭据以及 TLS、传输参数。不同协议的详情字段不完全相同。
- 保存并选中该记录,再开启连接。单条记录不会因为服务商修改资料而自动变成订阅管理的记录。
导入与更新订阅
- 复制自己的订阅地址,例如结构类似
https://example.com/sub?token=xxxx的地址。此处仅为假值,不是服务入口。 - 进入 Home → +,在 Type 中选择 Subscribe(订阅),将完整地址填入订阅地址栏,保存并等待获取列表。
- 检查订阅分组是否出现记录,再选择需要使用的记录。导入订阅成功,不等于已经选中其中一条连接。
- 服务资料变化后,在 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 更新记录或订阅。
完成检查后,应能够分别回答三个问题:导入的是单条资料还是订阅地址;保存的字段是否与自己的服务资料一致;当前路由姿态是否会使用这条连接。按这个顺序处理,能够避免把格式问题、服务可达性问题与规则问题混在一起。