编写高效的配置文件
由于 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:
quic: network == 'udp' and dst_port == 443
rules:
- SCRIPT,quic,REJECT