常见问题
编写高效配置

编写高效的配置文件

由于 iOS Network Extension 在 iOS 14 限制使用 15 MB 内存,在 iOS 15+ 限制使用 50 MB 内存,不合理的配置文件可能会导致 Stash 被 iOS 关闭。以下是一些建议,帮助您编写高效的配置文件。

配置合理的 DNS 服务器

Stash 会同时向所有的 DNS 服务器发起查询,然后通过 LRU 算法缓存 DNS 查询结果。在移动设备上,配置 1 到 2 个 DNS 服务器即可满足您的需求。

  • 使用 DoH、DoT、DoQ 比传统基于 UDP 的查询更消耗资源,延迟一般也更高
  • Stash 会使用 Fake IP 来避免需要代理的请求进行本地 DNS 查询。对于中国用户,建议使用国内 DNS,配置 8.8.8.8 / 1.1.1.1 等国外 DNS 服务没有任何意义。

使用规则集合

对于去广告、按 IP 地理信息分流等需要大量规则的场景,使用 domain / ipcidr 规则集合 可以降低内存占用,同时提高匹配速度。

⚠️

不建议使用大量 classical 规则集合,此类规则只能进行顺序匹配,这会显著增加匹配耗时与 Stash 的内存占用。

通过代理转发时禁用 QUIC 协议

HTTP3 / QUIC 协议基于 UDP,在部分代理协议中转发 UDP 效率较低,可以通过 Script Shortcuts 来禁用。

script:
  shortcuts:
    quic: network == 'udp' and dst_port == 443
 
rules:
  - GEOIP,CN,DIRECT
  - SCRIPT,quic,REJECT
  - MATCH,PROXY