Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Routing: update domainMatcher #151

Merged
merged 1 commit into from
Mar 16, 2021
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 13 additions & 6 deletions docs/config/routing.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,14 @@

V2Ray 内建了一个简单的路由功能,可以将入站数据按需求由不同的出站连接发出,以达到按需代理的目的。这一功能的常见用法是分流国内外流量,V2Ray 可以通过内部机制判断不同地区的流量,然后将它们发送到不同的出站代理。


## RoutingObject

`RoutingObject` 对应配置文件的 `routing` 项。

```json
{
"domainStrategy": "AsIs",
"domainMatcher": "hybrid",
"domainMatcher": "mph",
"rules": [],
"balancers": []
}
Expand All @@ -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)\]

Expand All @@ -47,7 +46,7 @@ V2Ray 内建了一个简单的路由功能,可以将入站数据按需求由

```json
{
"domainMatcher": "hybrid",
"domainMatcher": "mph",
"type": "field",
"domain": [
"baidu.com",
Expand Down Expand Up @@ -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"`这一个选项。
Expand Down