常见问题
编写高效配置

编写高效的配置文件

由于 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,在目前的网络环境下较为低效,建议通过 Script Shortcuts 禁用。

script:
  shortcuts:
    # 4483 与 9305 为 BiliBili 的 QUIC CDN
    quic: network == 'udp' and (dst_port == 443 or dst_port == 4483 or dst_port == 9305)
 
rules:
  - SCRIPT,quic,REJECT