跳到主要内容

规则

规则用于判断请求应使用哪个策略,策略再决定最终节点。

匹配优先级​

Loon 3.0.3 及以上版本使用以下匹配顺序:

  1. 目标地址为域名时,先匹配域名规则。
  2. 域名规则未命中时,再解析 DNS 并匹配 IP 规则。
  3. 其他规则按配置顺序匹配,越靠前优先级越高。
  4. 规则来源优先级为:本地规则 > 插件规则 > 订阅规则。
  5. 所有规则均未命中时,使用 FINAL 指定的策略。

查询性能​

Loon 支持百万级规则,并使用 LRU 缓存近期结果。缓存命中时,查询耗时接近 0 ms。

表中 DOMAIN、DOMAIN-SUFFIX 和 IP 规则的数据来自 iPhone 15 Pro、Loon 3.2.0 (712)。DOMAIN-WILDCARD 数据来自 iPhone Air、iOS 27.0.1、Loon 3.5.3 (1008) 的真机测试。实际耗时会受设备状态和并发请求影响,可在请求记录详情中查看。

规则类型耗时数量测试规则
DOMAIN、DOMAIN-SUFFIX1 ms 内20 万规则 1、规则 2
DOMAIN-WILDCARD(build 1008+)平均 0.031 ms;P95 0.061 ms;P99 0.110 ms5 万*、?、[...] 混合规则
IP-CIDR1 ms 内10 万China IP
IP-CIDR61–2 ms4 千China IP
IP-ASN1 ms 内5 千中国大陆 ASN

DOMAIN-WILDCARD 真机测试共包含 5 万条规则和 543 次查询,平均耗时为 0.031 ms,P95 为 0.061 ms,P99 为 0.110 ms,最大耗时为 0.860 ms。每次查询平均执行 2.41 次完整通配符比较,P99 为 9 次,最大为 58 次。

DOMAIN、DOMAIN-SUFFIX、IP-CIDR、IP-CIDR6、GEOIP、IP-ASN、端口和协议规则受数量影响较小。DOMAIN-WILDCARD 的查询耗时会受表达式复杂度和一次查询需要比较的规则数量影响。DOMAIN-KEYWORD、USER-AGENT 和 URL-REGEX 会随规则数量和表达式复杂度增加耗时,建议优先使用前一类规则。