From 90df768d120f28b6b14090aa48970391fa89100a Mon Sep 17 00:00:00 2001 From: loyalsoldier <10487845+Loyalsoldier@users.noreply.github.com> Date: Mon, 15 Mar 2021 18:35:27 +0800 Subject: [PATCH] Routing: update domainMatcher --- docs/config/routing.md | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/docs/config/routing.md b/docs/config/routing.md index 4d93b12b7..f1b24897d 100644 --- a/docs/config/routing.md +++ b/docs/config/routing.md @@ -2,7 +2,6 @@ V2Ray 内建了一个简单的路由功能,可以将入站数据按需求由不同的出站连接发出,以达到按需代理的目的。这一功能的常见用法是分流国内外流量,V2Ray 可以通过内部机制判断不同地区的流量,然后将它们发送到不同的出站代理。 - ## RoutingObject `RoutingObject` 对应配置文件的 `routing` 项。 @@ -10,7 +9,7 @@ V2Ray 内建了一个简单的路由功能,可以将入站数据按需求由 ```json { "domainStrategy": "AsIs", - "domainMatcher": "hybrid", + "domainMatcher": "mph", "rules": [], "balancers": [] } @@ -26,13 +25,13 @@ V2Ray 内建了一个简单的路由功能,可以将入站数据按需求由 * 解析后的 IP 仅在路由选择时起作用,转发的数据包中依然使用原始域名。 * `"IPOnDemand"`:当匹配时碰到任何基于 IP 的规则,将域名立即解析为 IP 进行匹配。 -> `domainMatcher`: "linear" | "hybrid" +> `domainMatcher`: "linear" | "mph" 选择要使用的域名匹配算法。 * `linear`:使用线性匹配算法,默认值; -* `hybrid`:使用混合 AC 自动机算法 (v4.35.1+)。 - * 测试数据 ~17万条,匹配速度增加 ~25%,内存减少 ~15% +* `mph`:使用最小完美散列(minimal perfect hash)算法(v4.36.1+)。 + * 测试数据约 17 万条,匹配速度提升约 30%,内存占用减少约 15% > `rules`: \[[RuleObject](#ruleobject)\] @@ -47,7 +46,7 @@ V2Ray 内建了一个简单的路由功能,可以将入站数据按需求由 ```json { - "domainMatcher": "hybrid", + "domainMatcher": "mph", "type": "field", "domain": [ "baidu.com", @@ -88,6 +87,14 @@ V2Ray 内建了一个简单的路由功能,可以将入站数据按需求由 当多个属性同时指定时,这些属性需要同时满足,才可以使当前规则生效。如果多个规则分别使用了`domain`或者`ip`,需要对应添加多条规则。 ::: +> `domainMatcher`: "linear" | "mph" + +选择要使用的域名匹配算法。此处 `domainMatcher` 的优先级高于 `RoutingObject` 配置的 `domainMatcher`。 + +* `linear`:使用线性匹配算法,默认值; +* `mph`:使用最小完美散列(minimal perfect hash)算法(v4.36.1+)。 + * 测试数据约 17 万条,匹配速度提升约 30%,内存占用减少约 15% + > `type`: "field" 目前只支持`"field"`这一个选项。