Shadowrocket & Clash 进阶优化指南
机场默认提供的订阅配置通常只做最基础的粗粒度分流,直接拿来当主力用经常会碰到各种瓶颈:大流量机场看视频流畅,但出口多为机房 IP,访问 Gemini、Claude 极易触发风控限制;专线节点纯净度高,但价格贵流量少,拿来跑日常下载太浪费。同时,移动端的客户端如果没有配置好,自己辛辛苦苦改好的分流规则一刷新就会被机场原始配置全量覆盖。
本文整理了一套通用的进阶优化经验,并提供 iOS、电脑端以及安卓端的完整落地配置参考模板。
优化经验
1. 协议降级:阻断 QUIC (UDP 443) 规避丢包卡顿
Chromium 内核浏览器与移动端 App 访问 Google 资产时,默认优先走基于 UDP 443 端口的 QUIC 协议。大多数代理节点对 UDP 转发的优化有限,极易发生握手挂起或高丢包,导致页面白屏转圈。
在规则链顶层显式拦截目标域名的 UDP 443 请求,迫使浏览器在超时前收到拒绝响应,从而毫秒级平滑降级到稳定的 TCP (HTTPS) 通道。
# Shadowrocket 写法 |
2. DNS 防污染与 CDN 本地化:防止国内流量误入代理
很多网上的配置为了防污染,把客户端 DNS 强行指向 8.8.8.8 并关闭系统 DNS。在国内环境下,向境外公共 DNS 发起纯文本 UDP 53 查询极易被劫持;且境外的 Anycast DNS 在解析微信、淘宝等国内服务时,会分配海外 CDN 节点,导致下游的 GEOIP,CN 规则误判失效,让国内流量白白绕道代理。
应保留国内公共 DNS 或系统 DNS 负责国内域名解析,海外域名交由代理节点远程解析。
# Shadowrocket 配置示例 |
3. 多订阅协同:视频大流量前置,剥离专线消耗
设定两套订阅角色:订阅 A(主力日常)承载大文件下载与 YouTube 4K 视频;订阅 B(专线 / 解锁)仅用于 AI 请求。
为了防止看视频把昂贵的专线流量耗尽,由于代理规则是从上往下匹配的,必须把 googlevideo.com 等视频域名写在前面绑定主力机场,将剩余的 Google 服务收拢到专线。
# 1. 视频请求提前被拦截走主力机场 |
4. AI 会话闭环:底层鉴权与推理接口全量收拢
Gemini、Claude 等服务由多组后端分布式接口协同工作。如果规则只写了前端域名 gemini.google.com,页面通信时发起的后台鉴权 API (如 clients6)就会滑落到兜底规则走主力机场。服务端检测到同一会话的请求 IP 撕裂,就会判定会话异常并直接中断。
必须对底层 API 进行全域收拢,确保所有通信都在同一节点 IP 下进行。
DOMAIN-SUFFIX,gemini.google.com,AI专线 |
5. 节点池净化:剔除机场虚拟提示节点
很多机场会在节点列表中插入 剩余流量:985.3 GB、距离下次重置:27 天 的虚拟节点。如果直接把节点列表全量写进静态的 自动选择 或 故障转移 策略组,用户消耗了流量或跨越了日期,机场服务端下发的节点名称就会变化。策略组在本地找不到写死的旧名称,内核就会抛出 '剩余流量:xxx' not found 错误并直接拒绝启动。
# Clash 策略组中,严禁混入虚拟节点,仅填写真实的服务器节点名称 |
6. 移动端本地化持久:防止订阅更新覆盖自建分流
安卓端(如 Clash Meta for Android)默认没有桌面端的脚本注入功能。如果在客户端把主订阅作为在线 URL 导入,然后手动去改本地的 config.yaml 加上分流规则,一旦触发定时刷新,客户端就会重新下载机场的原始裸配置,把你写好的规则全量覆盖冲掉。
需要将移动端配置转存为本地文件(File 模式),切断客户端对该文件的自动下载覆盖。副订阅(AI 专线)的节点更新需求,直接通过配置文件里的 proxy-providers 交给内核去独立后台静默拉取。
# 在 File 模式下的本地 config.yaml 中配置独立节点池 |
7. 规则库加速:使用国内 CDN 镜像防静默失效
拉取远程规则集失败时(如规则源路径写错,或国内网络直连 GitHub 遇到阻断),Shadowrocket 与 Clash 通常不会报错打断,而是直接将该规则集静默置空。这意味着数万条分流白名单根本没有加载进内存。引用开源规则库时,必须将原版的 GitHub 原生链接替换为 jsDelivr 等国内可稳定直连的 CDN 镜像源。
# 错误写法(极易超时丢包) |
配置文件参考模板
以下模板包含了上文提到的所有排坑措施。请根据实际需求替换其中的节点和订阅链接。
iOS / iPadOS (Shadowrocket)
- 在 Shadowrocket 右上角
+分别导入订阅 A 和订阅 B; - 进入底栏 “配置”,点击当前配置文件右侧的
(i)-> 点击 “编辑纯文本”; - 清空原有内容,粘贴下方配置并保存;
- 回到首页,全局路由选择 “配置”,节点列表选中订阅 A 的主力节点。
[General] |
电脑端 (以 Clash Verge Rev 为例)
桌面端通过扩展脚本 (Script) 可以实现配置与规则解耦:更新机场订阅时,Verge 会重新执行脚本把自定义规则注入进去,无需手动反复修改配置文件。
- 在客户端中正常导入订阅 A(设为主力激活配置)和订阅 B;
- 进入 “订阅 (Profiles)” -> 右键主力订阅 A -> 选择 “脚本 (Script)”;
- 粘贴下方代码,将
UNLOCK_SUB_URL替换为真实的订阅 B 链接; - 保存后右键点击订阅 A 选择 “启用” 即可。
function main(config, profileName) { |
安卓端 (Clash Meta)
由于安卓客户端(如 Clash Meta for Android、Flclash)没有扩展脚本功能,为避免更新订阅时丢掉分流规则,必须采用 本地文件 (File) 模式 + 内核 proxy-providers 后台更新。
- 在客户端中新建配置,类型选择 “本地文件 (File)”;
- 剔除主力节点列表中包含
剩余流量等字眼的虚拟节点; - 将副订阅写入
proxy-providers交给内核后台独立更新; - 保存后激活该本地配置。
以下为关键片段的结构模板(在完整的本地 yaml 文件中修改这三块即可):
# 1. 专线节点池:交由内核在后台独立拉取 |
规则扩展与多模型适配
若后续需要分流其他平台,只需在对应的 AI 规则区追加域名:
1. Claude (Anthropic)
DOMAIN-SUFFIX,claude.ai |
2. OpenAI (ChatGPT)
DOMAIN-SUFFIX,chatgpt.com |