跳转至

# AdGuard DNS Filer

自 sing-box 1.10.0 起

sing-box 支持其他项目的一些规则集格式，这些格式无法完全转换为 sing-box， 目前只有 AdGuard DNS Filter。

这些格式不直接作为源格式支持， 而是需要将它们转换为二进制规则集。

## 转换

使用 `sing-box rule-set convert --type adguard [--output <file-name>.srs] <file-name>.txt` 以转换为二进制规则集。

## 性能

AdGuard 将所有规则保存在内存中并按顺序匹配， 而 sing-box 选择高性能和较小的内存使用量。 作为权衡，您无法知道匹配了哪个规则项。

## 兼容性

AdGuardSDNSFilter 中的几乎所有规则以及 adguard-filter-list 中列出的规则集中的规则均受支持。

## 支持的格式

### AdGuard Filter

#### 基本规则语法

语法 | 支持
--- | ---
`@@` |
`\|\|` |
`\|` |
`^` |
`*` |

#### 主机语法

语法 | 示例 | 支持
--- | --- | ---
Scheme | `https://` | Ignored
Domain Host | `example.org` |
IP Host | `1.1.1.1`, `10.0.0.` |
Regexp | `/regexp/` |
Port | `example.org:80` |
Path | `example.org/path/ad.js` |

#### 描述符语法

描述符 | 支持
--- | ---
`$important` |
`$dnsrewrite=0.0.0.0` | Ignored
任何其他描述符 |

### Hosts

只有 IP 地址为 `0.0.0.0` 的条目将被接受。

### 简易

当所有行都是有效域时，它们被视为简单的逐行域规则， 与 hosts 一样，只匹配完全相同的域。