Shadowrocket 多订阅管理:分组排序、删除失效订阅、去掉重复节点

已有多条订阅时如何在 Shadowrocket 里按来源分组、按延迟排序、批量删除失效条目,并避免同一节点在不同订阅中重复出现。

本文速览

本文适合已经把多个自有订阅导入 Shadowrocket(小火箭)的用户。操作重点是先在 Settings → Subscribe 管理订阅来源,再回到 Home 测试和整理服务器条目;清理时以来源分组为边界,重复项则按协议、主机、端口和认证参数逐项核对。

先区分订阅来源、服务器条目与当前连接

多订阅管理容易混乱,通常是因为三个层级被当成了同一件事。订阅来源是一条由用户已有服务商提供的 URL;服务器条目是订阅更新后写入 Home 列表的具体记录;当前连接则是 Home 中被选中并交给系统 VPN 配置使用的那一条。删除其中一个层级,不一定会自动改变另外两个层级。

例如,一条订阅可以生成十几条服务器记录,其中只有一条处于选中状态。单独删除某个服务器记录,并不等于删除订阅来源;如果来源仍然存在,下次更新时该记录可能再次出现。反过来,移除订阅来源后,也应检查与该来源关联的本地条目是否仍被保留。

保存订阅来源拉取订阅内容生成服务器条目执行延迟测试选择当前服务器
3 层
订阅来源、服务器条目、当前连接
4 项
去重主键:协议、主机、端口、认证参数
4 姿态
Global Routing:Proxy / Direct / Config / Scene
1 入口
订阅来源集中在 Settings → Subscribe

按来源建立分组,先把订阅名称写清楚

进入 Settings → Subscribe 后,先逐条核对已经保存的订阅。名称应能说明来源和用途,不宜只保留“订阅 1”“备用”之类难以追溯的文字。多个来源出现同名服务器时,来源名称是判断重复项归属的第一条线索。

录入新来源时,只使用用户自己已经取得的订阅地址。用于说明格式的假值可以写成 https://example.com/sub?token=xxxx。URL 中的查询参数通常承担身份或授权作用,复制时要保留完整字符串,不要手动删去 ?token=xxxx

主用订阅

入口
Settings → Subscribe
名称
来源 A · 日常
URL
https://example.com/sub?token=xxxx
更新检查
确认时间与条目数量变化

名称承担来源标识,不要用服务器显示名代替订阅名称。

备用订阅

入口
Settings → Subscribe
名称
来源 B · 备用
更新方式
按需要手动更新
异常记录
超时、空结果或认证失败

先确认备用来源可以正常更新,再清理旧来源生成的条目。

  1. 打开 Settings,进入 Subscribe,记录当前存在的每条来源及其名称。
  2. 依次触发更新,每次只处理一个来源,观察 Home 中对应分组或条目数量是否变化。
  3. 发现来源名称不清楚时先重命名,再进行删除或去重,避免把两个不同来源混在一起。
  4. 更新完成后回到 Home,检查选中的服务器是否仍属于准备保留的来源。

结论:先整理来源,再整理服务器

如果直接从 Home 删除同名条目而不检查 Settings → Subscribe,下一次更新可能重新写入这些记录。先给来源命名并确认更新结果,可以减少重复清理。

按延迟排序前,先完成同一轮 Connectivity Test

延迟排序只有在测试条件一致时才有参考意义。先保持同一网络接入方式,在 Home 对准备比较的服务器执行延迟测试或 Connectivity Test,再依据本轮结果排序。不要把昨天在 Wi-Fi 下得到的数值与今天在蜂窝网络下得到的数值直接混排。

测试结果可分为三类:显示具体毫秒数,表示探测目标在本轮有响应;显示 timeout,表示在测试时限内没有得到有效响应;没有结果或持续处于测试状态,则应检查当前网络、订阅参数和应用权限。一次 timeout 不足以判断服务器永久失效,可间隔一段时间复测两次。

可达记录示例

协议
Trojan
主机
edge-a.example.com
端口
443
测试结果
186 ms

数值仅是记录格式示例,应以设备当次测试显示为准。

待复核记录示例

协议
Hysteria2
主机
edge-b.example.com
端口
443
测试结果
timeout × 3

连续三轮超时后,仍要先检查 UDP 可达性和服务端参数是否已变更。

测试期间还要确认 Global Routing。Proxy 会让流量统一经过当前代理服务器,Direct 直接连接,Config 按当前配置文件中的规则处理,Scene 则依据场景设置工作。如果停在 Direct,网页能够打开并不能证明所选服务器已生效;如果使用 Config,则应检查 DOMAIN-SUFFIXGEOIPIP-CIDRFINAL 的匹配顺序。

DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.0.2.0/24,DIRECT
GEOIP,CN,DIRECT
FINAL,PROXY

删除失效订阅时,以来源为批量清理边界

需要批量处理失效条目时,最清晰的边界是订阅来源,而不是服务器显示名。先在 Settings → Subscribe 确认某个来源确实已经停止更新、返回空内容或不再使用,再移除该来源。执行删除前,记录其中仍需保留的手动服务器,避免把来源条目与手动添加的条目混为一组。

具体按钮文字可能随 App Store 当前页面对应的应用界面调整,但判断顺序不变:打开订阅记录、核对 URL 和名称、确认准备删除的来源、阅读删除确认框,再回到 Home 检查关联条目。若确认框询问是否同时处理本地服务器,应根据是否还需要这些条目选择,而不是连续快速确认。

  1. 在 Home 记下当前选中服务器的协议、主机和端口,必要时先切换到准备保留的服务器。
  2. 进入 Settings → Subscribe,打开目标来源并执行一次更新,确认失败不是临时网络波动。
  3. 核对订阅名称和完整 URL,确保删除对象与记录的失效来源一致。
  4. 执行来源删除,并按确认框说明决定是否同步处理该来源生成的本地条目。
  5. 返回 Home,重新执行 Connectivity Test,检查列表中是否还存在原来源的残留记录。

结论:批量删除应从订阅记录开始

按来源移除比按显示名逐条删除更容易复核,也能避免下一轮订阅更新把同一批服务器重新加入 Home。

去掉重复节点,要比较连接参数而不是名称

重复节点最常见的表现是两个订阅生成了相同显示名,但显示名本身不能作为唯一判断依据。一个名称可能指向不同主机,也可能是同一主机的不同端口。真正的重复项应至少比较协议类型、服务器主机、端口和认证参数;启用 TLS 的协议还要比较 SNI、ALPN 等字段,使用传输层设置时还要检查 path、host 或其他对应值。

Shadowsocks 应重点比较主机、端口、加密方式和密码;VMess 与 VLESS 还需要核对 UUID、传输方式和 TLS 设置;Trojan 要比较密码与 SNI;Hysteria2 需要核对主机、端口、认证信息及相关 TLS 字段;WireGuard 则应比较公钥、Endpoint、Allowed IPs 和本地地址。参数不同的记录即使名称相同,也不应直接当作重复项删除。

可以判为重复

协议
Trojan
主机
edge.example.com
端口
443
SNI
edge.example.com
认证
完全一致

主要连接参数一致时,再根据来源更新可靠性保留其中一条。

不能仅按名称合并

显示名
Tokyo 01
记录 A
edge-a.example.com:443
记录 B
edge-b.example.com:8443
协议
均为 VLESS
结论
主机和端口不同

显示名相同只是标签重复,不代表底层连接目标重复。

去重键示例:
协议 | 主机 | 端口 | 认证参数 | 传输方式 | TLS/SNI

Trojan | edge.example.com | 443 | password-A | TCP | edge.example.com
VLESS  | edge.example.com | 443 | uuid-B     | WS  | cdn.example.com

如果两个来源确实包含同一条服务器,应优先保留更新成功、来源标识清楚且参数完整的记录。删除另一条后立刻更新其原订阅进行验证:如果重复项再次出现,说明它仍由该来源维护。此时可以保留来源并接受重复显示,或在服务商提供的订阅管理范围内调整内容;不要通过随意修改密码、端口或 UUID 的方式制造表面差异。

更新订阅后,检查 On Demand 与规则状态

订阅整理完成后,应进行一次闭环验证。先在 Home 选择保留的服务器,再执行 Connectivity Test,随后确认 Global Routing 所处姿态。如果平时使用 Config,还要打开当前配置并确认规则按从上到下的顺序匹配,最后由 FINAL 处理未命中的请求。

如果启用了 On Demand,入口位于 Settings → On Demand。该设置可以依据网络条件触发连接或断开,测试多订阅时可能让连接状态自动变化。排查期间应记录当前 On Demand 条件,包括 Wi-Fi 与蜂窝网络下分别采取的动作,避免把自动切换误判为服务器失效。

订阅更新后,刚删除的服务器又出现了?

进入 Settings → Subscribe 找到它所属的来源。只删除 Home 中的条目不会改变订阅内容;需要整批移除时,应处理对应来源并再次检查本地列表。

两个节点名称完全一样,应该删哪一个?

分别打开记录,比较协议、主机、端口、认证参数、传输方式和 TLS/SNI。参数完全一致时,保留更新稳定且来源名称清楚的一条;参数不同则不要按名称合并。

延迟最低的服务器为什么无法打开目标页面?

先检查 Global Routing 是否处于 Direct,再运行 Connectivity Test。使用 Config 时继续核对规则顺序以及 FINAL 动作;延迟探测成功不等于所有应用请求都按预期分流。

订阅更新一直提示 timeout 怎么排查?

先确认设备网络和系统时间正常,再检查订阅 URL 是否完整。当前连接可用时,可在 Settings → Subscribe 核对 Update via Proxy 的设置,然后重新更新一次并观察是否返回条目。

整理列表后连接状态自己发生变化?

进入 Settings → On Demand,检查 Wi-Fi 与蜂窝条件下配置的动作。排查时同时记录 Home 的当前服务器、Global Routing 姿态和系统 VPN 状态。

下载 Shadowrocket