Shadowrocket排除特定APP代理配置指南

在iOS设备上使用Shadowrocket时,很多用户希望实现部分应用走代理、部分应用直连的需求,本文详细讲解如何通过规则配置实现特定APP排除代理,帮你精准控制流量走向。

排除代理的核心逻辑

Shadowrocket的代理排除本质是分流规则配置,通过定义规则,告诉客户端哪些域名或IP段需要直连(不经过代理),哪些需要走代理通道,配置的核心在于理解规则优先级和匹配类型。

规则类型与写法

规则类型 写法示例 适用场景
DOMAIN-SUFFIX domain-suffix,example.com 匹配域名及所有子域名
DOMAIN-KEYWORD domain-keyword,google 关键词匹配
IP-CIDR ip-cidr,10.0.0.0/8,no-resolve IP段直连
GEOIP geoip,cn,no-resolve 国家/地区匹配

规则优先级

Shadowrocket规则从上往下匹配,第一条匹配的规则生效,因此排除规则必须放在代理规则之前。

配置步骤演示

创建排除规则组

在配置文件中添加直连规则段:

rules:
  # 排除特定APP直连规则(放在前面)
  - DOMAIN-SUFFIX,example-app.com,DIRECT
  - DOMAIN-KEYWORD,local-service,DIRECT
  - IP-CIDR,192.168.0.0/16,DIRECT
  - IP-CIDR,10.0.0.0/8,DIRECT
  - GEOIP,cn,DIRECT
  # 代理规则放后面
  - MATCH,Proxy

识别目标APP的域名

排除APP前,需要确定该应用使用的服务器域名,常用方法:

  1. 抓包分析:使用Charles或Stream等工具分析APP流量
  2. 查阅文档:部分应用会在官网公布服务器域名
  3. 常见APP域名:如需排除流媒体,可针对其CDN域名配置

在Shadowrocket中应用配置

  1. 打开Shadowrocket → 配置 → 点击对应配置
  2. 点击编辑 → 找到rules部分
  3. 将排除规则添加在文件最前面
  4. 保存并更新配置

TUN模式与系统代理的区别

特性 TUN模式 系统代理
接管范围 所有流量(TCP/UDP) 仅HTTP/HTTPS
适用场景 游戏、视频通话 浏览器、APP
性能消耗 略高 较低
排除APP 需在TUN规则中配置 需在分流规则中配置

如果开启TUN模式,排除特定APP需要在TUN的stack配置中单独设置,逻辑与系统代理规则类似。

常见问题FAQ

现象:配置排除规则后,APP仍然走代理

原因:规则优先级错误,或APP使用了代理难以识别的域名

解决方法:检查规则是否在文件最前面;使用DOMAIN-SUFFIX精确匹配;尝试抓包确认实际访问域名


现象:部分APP无法访问

原因:被排除的APP需要访问国际资源

解决方法:将APP的国际域名添加到代理规则,使用DOMAIN-SUFFIX单独放行


现象:开启代理后排除的APP变慢

原因:代理节点延迟高,或排除规则未生效

解决方法:更换低延迟节点;在配置中确认排除规则格式正确

节点选择建议

不同的跨境访问需求对节点要求不同:4K视频需要高带宽支持,游戏加速需要低延迟线路,办公场景则更看重稳定性,建议根据实际使用场景选择合适的节点服务,避开高峰期拥堵的线路。

您可以还会对下面的文章感兴趣: