You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -57,14 +57,14 @@ This command generates static content into the `build` directory and can be serv
57
57
58
58
Translations are not pushed to the repo and prepared on-the-fly (`i18n` folder is added to `.gitignore`).
59
59
60
-
Here's how you can debug translations locally.
60
+
Here’s how you can debug translations locally.
61
61
62
62
1. Download translations: `CROWDIN_PERSONAL_TOKEN="YOURTOKEN" pnpm run crowdin download`
63
63
2. Run Docusaurus with the language of your choice: `pnpm run start -- --locale de`
64
64
65
65
## How to generate DNS stamps
66
66
67
-
If you'd like to update the list of [known DNS Providers](https://github.com/AdguardTeam/KnowledgeBaseDNS/blob/master/docs/general/dns-providers.md), you'll need to know how to create and check DNS stamps. Read the brief tutorial below to learn how to do it.
67
+
If you’d like to update the list of [known DNS Providers](https://github.com/AdguardTeam/KnowledgeBaseDNS/blob/master/docs/general/dns-providers.md), you’ll need to know how to create and check DNS stamps. Read the brief tutorial below to learn how to do it.
Copy file name to clipboardExpand all lines: docs/adguard-home/faq.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -298,7 +298,7 @@ DOMAIN {
298
298
299
299
:::note
300
300
301
-
Do not use subdirectories with the Apache reverse HTTP proxy. It's a known issue ([#6604]) that Apache handles relative redirects differently than other web servers. This causes problems with the AdGuard Home web interface.
301
+
Do not use subdirectories with the Apache reverse HTTP proxy. It’s a known issue ([#6604]) that Apache handles relative redirects differently than other web servers. This causes problems with the AdGuard Home web interface.
Copy file name to clipboardExpand all lines: docs/dns-client/overview.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -39,7 +39,7 @@ Supported CPU architectures:
39
39
40
40
:::caution
41
41
42
-
On macOS, it's crucial that globally installed daemons are owned by `root` (see the [`launchd` documentation][launchd-requirements]), so the `AdGuardDNSClient` executable must be placed in the `/Applications/` directory or its subdirectory.
42
+
On macOS, it’s crucial that globally installed daemons are owned by `root` (see the [`launchd` documentation][launchd-requirements]), so the `AdGuardDNSClient` executable must be placed in the `/Applications/` directory or its subdirectory.
Copy file name to clipboardExpand all lines: docs/general/dns-filtering-syntax.md
+41-17Lines changed: 41 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -34,7 +34,7 @@ If you are creating a blocklist, we recommend using the [Adblock-style syntax].
34
34
35
35
-**Extensibility.** In the past decade, the Adblock-style syntax has greatly evolved, and we see no reason not to extend it even further and offer additional features for network-level blockers.
36
36
37
-
If you're maintaining either a `/etc/hosts`-style blocklist or multiple filtering lists (regardless of type), we provide a tool for blocklist compilation. We named it [Hostlist compiler] and we use it ourselves to create [AdGuard DNS filter].
37
+
If you’re maintaining either a `/etc/hosts`-style blocklist or multiple filtering lists (regardless of type), we provide a tool for blocklist compilation. We named it [Hostlist compiler] and we use it ourselves to create [AdGuard DNS filter].
-`||`: matches the beginning of a hostname, including any subdomain. For instance, `||example.org` matches `example.org` and `test.example.org` but not `testexample.org`.
82
82
83
-
-`^`: the separator character. Unlike browser ad blocking, there's nothing to separate in a hostname, so the only purpose of this character is to mark the end of the hostname.
83
+
-`^`: the separator character. Unlike browser ad blocking, there’s nothing to separate in a hostname, so the only purpose of this character is to mark the end of the hostname.
84
84
85
85
-`|`: a pointer to the beginning or the end of the hostname. The value depends on the character placement in the mask. For example, the rule `ample.org|` corresponds to `example.org` but not to `example.org.com`. `|example` corresponds to `example.org` but not to `test.example`.
86
86
@@ -129,7 +129,11 @@ You can change the behavior of a rule by adding modifiers. Modifiers must be loc
129
129
130
130
`||example.org^` is the matching pattern. `$` is the delimiter, which signals that the rest of the rule are modifiers. `client=127.0.0.1` is the [`client`] modifier with its value, `127.0.0.1`. `,` is the delimiter between modifiers. And finally, `dnstype=A` is the [`dnstype`] modifier with its value, `A`.
131
131
132
-
**NOTE:** If a rule contains a modifier not listed in this document, the whole rule **must be ignored**. This way we avoid false-positives when people are trying to use unmodified browser ad blockers' filter lists like EasyList or EasyPrivacy.
132
+
:::note
133
+
134
+
If a rule contains a modifier not listed in this document, the whole rule **must be ignored**. This way we avoid false-positives when people are trying to use unmodified browser ad blockers’ filter lists like EasyList or EasyPrivacy.
135
+
136
+
:::
133
137
134
138
#### `client` {#client-modifier}
135
139
@@ -139,23 +143,31 @@ The `client` modifier allows specifying clients this rule is applied to. There a
139
143
140
144
- By their name. This way only works for persistent clients (in AdGuard Home) and devices (in Private AdGuard DNS), which you have manually added.
141
145
142
-
**NOTE:** In AdGuard Home, ClientIDs are not currently supported, only names are. If you have added a client with the name “My Client” and ClientID `my-client` spell your modifier as `$client='My Client'` as opposed to `$client=my-client`.
146
+
:::note
147
+
148
+
In AdGuard Home, ClientIDs are not currently supported, only names are. If you have added a client with the name “My Client” and ClientID `my-client` spell your modifier as `$client='My Client'` as opposed to `$client=my-client`.
149
+
150
+
:::
143
151
144
152
The syntax is:
145
153
146
154
```none
147
155
$client=value1|value2|...
148
156
```
149
157
150
-
You can also exclude clients by adding a `~` character before the value. In this case, the rule is not be applied to this client's DNS requests.
158
+
You can also exclude clients by adding a `~` character before the value. In this case, the rule is not be applied to this client’s DNS requests.
151
159
152
160
```none
153
161
$client=~value1
154
162
```
155
163
156
164
Client names usually contain spaces or other special characters, which is why you should enclose the name in quotes. Both single and double ASCII quotes are supported. Use the backslash (`\`) to escape quotes (`"` and `'`), commas (`,`), and pipes (`|`).
157
165
158
-
**NOTE:** When excluding a client, you **must** place `~` outside the quotes.
166
+
:::note
167
+
168
+
When excluding a client, you **must** place `~` outside the quotes.
169
+
170
+
:::
159
171
160
172
**Examples:**
161
173
@@ -190,7 +202,7 @@ This modifier allows avoiding creating unnecessary exception rules when our bloc
190
202
@@||net^
191
203
```
192
204
193
-
The problem with this approach is that this way you will also unblock tracking domains that are located on those TLDs (i.e. `google-analytics.com`). Here's how to solve this with `denyallow`:
205
+
The problem with this approach is that this way you will also unblock tracking domains that are located on those TLDs (i.e. `google-analytics.com`). Here’s how to solve this with `denyallow`:
194
206
195
207
```none
196
208
*$denyallow=com|net
@@ -202,7 +214,7 @@ The problem with this approach is that this way you will also unblock tracking d
202
214
203
215
-`@@*$denyallow=com|net`: unblock everything except for `*.com` and `*.net`.
204
216
205
-
-`||example.org^$denyallow=sub.example.org`. block `example.org` and `*.example.org` but don't block `sub.example.org`.
217
+
-`||example.org^$denyallow=sub.example.org`: block `example.org` and `*.example.org` but don’t block `sub.example.org`.
206
218
207
219
#### `dnstype` {#dnstype-modifier}
208
220
@@ -235,7 +247,11 @@ $dnstype=value2
235
247
236
248
-`||example.org^$dnstype=~A|~CNAME`: only allow `A` and `CNAME` DNS queries for `example.org`, block out the rest.
237
249
238
-
**NOTE:** Before version **v0.108.0,** AdGuard Home would use the type of the request to filter the response records, as opposed to the type of the response record itself. That caused issues, since that meant that you could not write rules that would allow certain `CNAME` records in responses in `A` and `AAAA` requests. In **v0.108.0** that behaviour was changed, so now this:
250
+
:::note
251
+
252
+
Before version **v0.108.0,** AdGuard Home would use the type of the request to filter the response records, as opposed to the type of the response record itself. That caused issues, since that meant that you could not write rules that would allow certain `CNAME` records in responses in `A` and `AAAA` requests. In **v0.108.0** that behaviour was changed, so now this:
253
+
254
+
:::
239
255
240
256
```none
241
257
||canon.example.com^$dnstype=~CNAME
@@ -259,7 +275,7 @@ The `dnsrewrite` response modifier allows replacing the content of the response
259
275
260
276
**Rules with the `dnsrewrite` response modifier have higher priority than other rules in AdGuard Home and AdGuard DNS.**
261
277
262
-
Responses to all requests for a host matching a `dnsrewrite` rule will be replaced. The answer section of the replacement response will only contain RRs that match the request's query type and, possibly, CNAME RRs. Note that this means that responses to some requests may become empty (`NODATA`) if the host matches a `dnsrewrite` rule.
278
+
Responses to all requests for a host matching a `dnsrewrite` rule will be replaced. The answer section of the replacement response will only contain RRs that match the request’s query type and, possibly, CNAME RRs. Note that this means that responses to some requests may become empty (`NODATA`) if the host matches a `dnsrewrite` rule.
263
279
264
280
The shorthand syntax is:
265
281
@@ -307,7 +323,7 @@ Name: example.net
307
323
Address: 1.2.3.4
308
324
```
309
325
310
-
Next, the `CNAME` rewrite. After that, all other records' values are summed as one response, so this:
326
+
Next, the `CNAME` rewrite. After that, all other records’ values are summed as one response, so this:
311
327
312
328
```none
313
329
||example.com^$dnsrewrite=NOERROR;A;1.2.3.4
@@ -320,7 +336,11 @@ Currently supported RR types with examples:
320
336
321
337
-`||4.3.2.1.in-addr.arpa^$dnsrewrite=NOERROR;PTR;example.net.` adds a `PTR` record for reverse DNS. Reverse DNS requests for `1.2.3.4` to the DNS server will result in `example.net`.
322
338
323
-
**NOTE:** the IP MUST be in reverse order. See [RFC 1035][rfc1035].
339
+
:::note
340
+
341
+
The IP MUST be in reverse order. See [RFC 1035][rfc1035].
342
+
343
+
:::
324
344
325
345
-`||example.com^$dnsrewrite=NOERROR;A;1.2.3.4` adds an `A` record with the value `1.2.3.4`.
326
346
@@ -400,7 +420,11 @@ The rules with the `badfilter` modifier disable other basic rules to which they
**NOTE:** The `badfilter` modifier currently doesn't work with `/etc/hosts`-style rules. `127.0.0.1 example.org$badfilter` will **not** disable the original `127.0.0.1 example.org` rule.
423
+
:::note
424
+
425
+
The `badfilter` modifier currently doesn’t work with `/etc/hosts`-style rules. `127.0.0.1 example.org$badfilter` will **not** disable the original `127.0.0.1 example.org` rule.
426
+
427
+
:::
404
428
405
429
#### `ctag` {#ctag-modifier}
406
430
@@ -414,13 +438,13 @@ The syntax is:
414
438
$ctag=value1|value2|...
415
439
```
416
440
417
-
If one of client's tags matches the `ctag` values, this rule applies to the client. The syntax for exclusion is:
441
+
If one of client’s tags matches the `ctag` values, this rule applies to the client. The syntax for exclusion is:
418
442
419
443
```none
420
444
$ctag=~value1|~value2|...
421
445
```
422
446
423
-
If one of client's tags matches the exclusion `ctag` values, this rule doesn't apply to the client.
447
+
If one of client’s tags matches the exclusion `ctag` values, this rule doesn’t apply to the client.
424
448
425
449
**Examples:**
426
450
@@ -503,11 +527,11 @@ consider it to be an [Adblock-style syntax] rule.
503
527
504
528
If you are maintaining a blocklist and use different sources in it, [Hostlist compiler] may be useful to you. It is a simple tool that makes it easier to compile a hosts blocklist compatible with AdGuard Home, Private AdGuard DNS or any other AdGuard product with DNS filtering.
505
529
506
-
What it's capable of:
530
+
What it’s capable of:
507
531
508
532
1. Compile a single blocklist from multiple sources.
509
533
510
-
2. Exclude the rules you don't need.
534
+
2. Exclude the rules you don’t need.
511
535
512
536
3. Cleanup the resulting list: deduplicate, remove invalid rules, and compress the list.
0 commit comments