From 4520035d54182f3775c177063007a861f441111b Mon Sep 17 00:00:00 2001 From: iambabyninja Date: Fri, 27 Sep 2024 22:34:00 +0500 Subject: [PATCH] update dns.md --- docs/ru/config/dns.md | 226 +++++++++++++++--------------------------- 1 file changed, 80 insertions(+), 146 deletions(-) diff --git a/docs/ru/config/dns.md b/docs/ru/config/dns.md index 94c50b2..2ab36d5 100644 --- a/docs/ru/config/dns.md +++ b/docs/ru/config/dns.md @@ -4,52 +4,39 @@ Встроенный DNS-модуль Xray имеет два основных назначения: -- Разрешение доменных имен в IP-адреса на этапе маршрутизации и сопоставление правил с полученными IP-адресами для разделения трафика. - Разрешение доменных имен и разделение трафика зависят от значения параметра `domainStrategy` в модуле конфигурации маршрутизации. - Встроенный DNS-сервер будет использоваться для DNS-запросов только при следующих значениях: +- На этапе маршрутизации: разрешает доменные имена в IP-адреса и выполняет сопоставление правил на основе полученных IP-адресов для разделения трафика. Разрешение доменных имен и разделение трафика зависят от значения `domainStrategy` в конфигурации модуля маршрутизации. Встроенный DNS-сервер будет использоваться для DNS-запросов только в том случае, если установлено одно из следующих двух значений: - - "IPIfNonMatch": при запросе доменного имени Xray сопоставляет его с доменами, указанными в правилах маршрутизации. - Если совпадение не найдено, встроенный DNS-сервер используется для разрешения доменного имени, а затем полученный IP-адрес снова сопоставляется с правилами маршрутизации на основе IP-адресов. - - "IPOnDemand": при сопоставлении правил, основанных на IP-адресах, доменное имя немедленно разрешается в IP-адрес для сопоставления. + - `"IPIfNonMatch"`: при запросе доменного имени выполняется сопоставление домена в маршрутизации, если совпадение не найдено, для этого доменного имени используется встроенный DNS-сервер для выполнения DNS-запроса, и возвращенный IP-адрес используется для повторного сопоставления IP-маршрутизации. + - `"IPOnDemand"`: при обнаружении любого правила на основе IP-адреса доменное имя немедленно разрешается в IP-адрес для сопоставления. -- Разрешение целевого адреса для подключения. - - Например, в исходящем подключении `freedom`, если параметр `domainStrategy` установлен в `UseIP`, исходящие запросы будут сначала разрешать доменное имя в IP-адрес с помощью встроенного DNS-сервера, а затем устанавливать соединение. - - Например, в `sockopt`, если параметр `domainStrategy` установлен в `UseIP`, системные соединения, инициированные этим исходящим подключением, будут сначала разрешать доменное имя в IP-адрес с помощью встроенного DNS-сервера, а затем устанавливать соединение. +- Разрешает целевой адрес для подключения. + - Например, если в исходящем подключении `freedom` установить `domainStrategy` равным `UseIP`, то запросы, отправленные этим исходящим подключением, сначала будут разрешены во встроенном сервере из доменного имени в IP-адрес, а затем будет выполнено подключение. + - Например, если в `sockopt` установить `domainStrategy` равным `UseIP`, то системные подключения, инициированные этим исходящим подключением, сначала будут разрешены во встроенном сервере из доменного имени в IP-адрес, а затем будет выполнено подключение. -::: tip Совет 1 +::: tip СОВЕТ 1 DNS-запросы, отправляемые встроенным DNS-сервером, автоматически перенаправляются в соответствии с конфигурацией маршрутизации. ::: -::: tip Совет 2 -Поддерживаются только базовые запросы IP-адресов (записи A и AAAA). Записи CNAME будут запрашиваться повторно до тех пор, пока не будет возвращена запись A/AAAA. Другие запросы не обрабатываются встроенным DNS-сервером. +::: tip СОВЕТ 2 +Поддерживаются только основные IP-запросы (записи A и AAAA), записи CNAME будут запрашиваться повторно до тех пор, пока не будет возвращена запись A/AAAA. Другие запросы не будут передаваться на встроенный DNS-сервер. ::: -## Процесс обработки DNS-запросов +## Процесс обработки DNS Если запрашиваемое доменное имя: -- Соответствует сопоставлению "домен - IP" или "домен - массив IP" в `hosts`, то этот IP-адрес или массив IP-адресов возвращается в качестве результата DNS-разрешения. -- Соответствует сопоставлению "домен - домен" в `hosts`, то значение этого сопоставления (другой домен) используется в качестве текущего запрашиваемого доменного имени, и процесс обработки DNS-запросов продолжается до тех пор, пока не будет разрешен IP-адрес или не будет возвращен пустой результат. -- Не соответствует `hosts`, но соответствует списку доменов `domains` одного (или нескольких) DNS-серверов, то запросы отправляются на соответствующие DNS-серверы в порядке приоритета. - Если запрос к DNS-серверу завершается неудачей или `expectIPs` не совпадает, используется следующий подходящий DNS-сервер. - В противном случае возвращается полученный IP-адрес. - Если запросы ко всем подходящим DNS-серверам завершаются неудачей или `expectIPs` не совпадает, компонент DNS: - - По умолчанию выполняет "резервный (fallback) запрос DNS": запросы отправляются на "DNS-серверы, которые не использовались в предыдущем раунде неудачных запросов и для которых `skipFallback` имеет значение по умолчанию `false`". - Если запрос завершается неудачей или `expectIPs` не совпадает, возвращается пустой результат. - В противном случае возвращается полученный IP-адрес. - - Если `disableFallback` установлен в `true`, "резервный (fallback) запрос DNS" не выполняется. -- Не соответствует `hosts` и не соответствует списку доменов `domains` ни одного DNS-сервера, то: - - По умолчанию запросы отправляются на "DNS-серверы, для которых `skipFallback` имеет значение по умолчанию `false`". - Если запрос к первому выбранному DNS-серверу завершается неудачей или `expectIPs` не совпадает, используется следующий выбранный DNS-сервер. - В противном случае возвращается полученный IP-адрес. - Если запросы ко всем выбранным DNS-серверам завершаются неудачей или `expectIPs` не совпадает, возвращается пустой результат. - - Если количество "DNS-серверов, для которых `skipFallback` имеет значение по умолчанию `false`", равно 0 или `disableFallback` установлен в `true`, используется первый DNS-сервер в конфигурации DNS. - Если запрос завершается неудачей или `expectIPs` не совпадает, возвращается пустой результат. - В противном случае возвращается полученный IP-адрес. +- Совпадает с сопоставлением «доменное имя - IP», «доменное имя - массив IP» в `hosts`, то этот IP или массив IP возвращается в качестве результата разрешения DNS. +- Совпадает с сопоставлением «доменное имя - доменное имя» в `hosts`, то значение этого сопоставления (другое доменное имя) будет использоваться в качестве текущего запрашиваемого доменного имени, и процесс обработки DNS будет продолжаться до тех пор, пока не будет разрешен IP-адрес или возвращено пустое разрешение. +- Не совпадает с `hosts`, но совпадает с одним (несколькими) списками доменов `domains` на DNS-серверах, то в соответствии с приоритетом совпадающих правил, DNS-серверы, соответствующие этим правилам, будут использоваться для запроса по очереди. Если запрос к DNS-серверу не удался или `expectIPs` не совпадает, то для запроса будет использоваться следующий DNS-сервер. В противном случае возвращается разрешенный IP-адрес. Если запрос ко всем совпадающим DNS-серверам не удался или `expectIPs` не совпадает, то компонент DNS: + - По умолчанию выполнит «откат DNS-запроса (fallback)»: DNS-серверы, которые не использовались в предыдущем неудачном запросе и для которых `skipFallback` имеет значение по умолчанию `false`, будут использоваться для запроса по очереди. Если запрос не удался или `expectIPs` не совпадает, то возвращается пустое разрешение; в противном случае возвращается разрешенный IP-адрес. + - Если `disableFallback` установлен в `true`, то «откат DNS-запроса (fallback)» выполняться не будет. +- Не совпадает ни с `hosts`, ни со списками доменов `domains` на DNS-серверах, то: + - По умолчанию DNS-серверы, для которых `skipFallback` имеет значение по умолчанию `false`, будут использоваться для запроса по очереди. Если запрос к первому выбранному DNS-серверу не удался или `expectIPs` не совпадает, то для запроса будет использоваться следующий выбранный DNS-сервер. В противном случае возвращается разрешенный IP-адрес. Если запрос ко всем выбранным DNS-серверам не удался или `expectIPs` не совпадает, то возвращается пустое разрешение. + - Если количество DNS-серверов, для которых `skipFallback` имеет значение по умолчанию `false`, равно 0 или `disableFallback` установлен в `true`, то для запроса будет использоваться первый DNS-сервер в конфигурации DNS. Если запрос не удался или `expectIPs` не совпадает, то возвращается пустое разрешение; в противном случае возвращается разрешенный IP-адрес. ## DnsObject -`DnsObject` соответствует полю `dns` в конфигурационном файле. +`DnsObject` соответствует элементу `dns` в файле конфигурации. ```json { @@ -99,96 +86,69 @@ DNS-запросы, отправляемые встроенным DNS-серве > `hosts`: map{string: address} | map{string: [address]} -Статический список IP-адресов, значение которого представляет собой набор сопоставлений "домен": "адрес" или "домен": ["адрес 1", "адрес 2"]. -Адрес может быть IP-адресом или доменным именем. -При разрешении доменного имени, если домен соответствует одному из элементов этого списка: +Статический список IP-адресов, значением которого является серия "доменное имя": "адрес" или "доменное имя": ["адрес 1","адрес 2"]. Где адрес может быть IP-адресом или доменным именем. При разрешении доменного имени, если доменное имя соответствует элементу в этом списке: -- Если адрес элемента - это IP-адрес, то результатом разрешения будет IP-адрес элемента. -- Если адрес элемента - это доменное имя, то для разрешения IP-адреса будет использоваться это доменное имя, а не исходное доменное имя. -- Если в адресе указано несколько IP-адресов и доменных имен, то возвращается только первое доменное имя, остальные IP-адреса и доменные имена игнорируются. +- Если адрес элемента является IP-адресом, то результатом разрешения будет IP-адрес этого элемента. +- Если адрес элемента является доменным именем, то для разрешения IP-адреса будет использоваться это доменное имя, а не исходное доменное имя. +- Если в адресе установлено несколько IP-адресов и доменных имен, то будет возвращено только первое доменное имя, остальные IP-адреса и доменные имена будут проигнорированы. -Доменные имена могут быть представлены в следующих форматах: +Формат доменного имени может быть следующим: -- Простая строка: правило применяется, если эта строка полностью совпадает с целевым доменным именем. - Например, "xray.com" соответствует "xray.com", но не соответствует "www.xray.com". -- Регулярное выражение: начинается с `"regexp:"`, а остальная часть - это регулярное выражение. - Правило применяется, если это регулярное выражение соответствует целевому доменному имени. - Например, "regexp:\\\\.goo.\*\\\\.com\$" соответствует "www.google.com", "fonts.googleapis.com", но не соответствует "google.com". -- Поддомен (рекомендуется): начинается с `"domain:"`, а остальная часть - это доменное имя. - Правило применяется, если это доменное имя является целевым доменным именем или его поддоменом. - Например, "domain:xray.com" соответствует "www.xray.com" и "xray.com", но не соответствует "wxray.com". -- Подстрока: начинается с `"keyword:"`, а остальная часть - это строка. - Правило применяется, если эта строка соответствует любой части целевого доменного имени. - Например, "keyword:sina.com" соответствует "sina.com", "sina.com.cn" и "www.sina.com", но не соответствует "sina.cn". -- Предопределенный список доменов: начинается с `"geosite:"`, а остальная часть - это имя, например `geosite:google` или `geosite:cn`. - Список имен и доменов см. в разделе [Предопределенные списки доменов](./routing.md#предопределенные-списки-доменов). +- Простая строка: правило вступает в силу, если эта строка полностью совпадает с целевым доменным именем. Например, "xray.com" соответствует "xray.com", но не соответствует "www.xray.com". +- Регулярное выражение: начинается с `"regexp:"`, остальная часть является регулярным выражением. Правило вступает в силу, если это регулярное выражение соответствует целевому доменному имени. Например, "regexp:\\\\.goo.\*\\\\.com\$" соответствует "www.google.com", "fonts.googleapis.com", но не соответствует "google.com". +- Поддомен (рекомендуется): начинается с `"domain:"`, остальная часть является доменным именем. Правило вступает в силу, если это доменное имя является целевым доменным именем или его поддоменом. Например, "domain:xray.com" соответствует "www.xray.com" и "xray.com", но не соответствует "wxray.com". +- Подстрока: начинается с `"keyword:"`, остальная часть является строкой. Правило вступает в силу, если эта строка соответствует любой части целевого доменного имени. Например, "keyword:sina.com" может соответствовать "sina.com", "sina.com.cn" и "www.sina.com", но не соответствует "sina.cn". +- Предопределенный список доменов: начинается с `"geosite:"`, остальная часть является именем, например, `geosite:google` или `geosite:cn`. Имена и списки доменов см. в разделе [Предопределенные списки доменов](./routing.md#предопределенные-списки-доменов). -> `servers`: \[string | [ServerObject](#serverobject) \] +> `servers`: \[string | [DnsServerObject](#dnsserverobject) \] -Список DNS-серверов, поддерживаются два типа: адрес DNS (в виде строки) и [ServerObject](#serverobject). +Список DNS-серверов, поддерживается два типа: DNS-адрес (в виде строки) и [DnsServerObject](#dnsserverobject). -Значение `"localhost"` означает использование локальных настроек DNS. +Значение `"localhost"` означает использование предустановленной конфигурации DNS на локальной машине. -Если значение - это адрес DNS `"IP:Port"`, например `"8.8.8.8:53"`, Xray будет использовать указанный UDP-порт этого адреса для DNS-запросов. -Запрос будет следовать правилам маршрутизации. -Если порт не указан, по умолчанию используется порт 53. +Если значением является DNS-адрес `"IP:Порт"`, например, `"8.8.8.8:53"`, Xray будет использовать указанный UDP-порт этого адреса для DNS-запросов. Этот запрос следует правилам маршрутизации. Если порт не указан, по умолчанию используется порт 53. -Если значение имеет вид `"tcp://host:port"`, например `"tcp://8.8.8.8:53"`, Xray будет использовать `DNS over TCP` для запросов. -Запрос будет следовать правилам маршрутизации. -Если порт не указан, по умолчанию используется порт 53. +Если значение имеет вид `"tcp://хост:порт"`, например, `"tcp://8.8.8.8:53"`, Xray будет использовать `DNS over TCP` для запроса. Этот запрос следует правилам маршрутизации. Если порт не указан, по умолчанию используется порт 53. -Если значение имеет вид `"tcp+local://host:port"`, например `"tcp+local://8.8.8.8:53"`, Xray будет использовать `локальный режим TCP (TCPL)` для запросов. -Это означает, что DNS-запросы не будут проходить через компонент маршрутизации, а будут отправляться непосредственно через исходящее подключение Freedom для сокращения времени ожидания. -Если порт не указан, по умолчанию используется порт 53. +Если значение имеет вид `"tcp+local://хост:порт"`, например, `"tcp+local://8.8.8.8:53"`, Xray будет использовать `локальный режим TCP (TCPL)` для запроса. Это означает, что DNS-запрос не будет проходить через компонент маршрутизации, а будет отправляться непосредственно через исходящее подключение Freedom, чтобы сократить время ожидания. Если порт не указан, по умолчанию используется порт 53. -Если значение имеет вид `"https://host:port/dns-query"`, например `"https://dns.google/dns-query"`, Xray будет использовать `DNS over HTTPS` (RFC8484, сокращенно DOH) для запросов. -Некоторые провайдеры имеют сертификаты с IP-псевдонимами, поэтому можно использовать IP-адрес напрямую, например `https://1.1.1.1/dns-query`. -Также можно использовать нестандартные порты и пути, например `"https://a.b.c.d:8443/my-dns-query"`. +Если значение имеет вид `"https://хост:порт/dns-query"`, например, `"https://dns.google/dns-query"`, Xray будет использовать `DNS over HTTPS` (RFC8484, сокращенно DOH) для запроса. Некоторые провайдеры имеют сертификаты с псевдонимами IP-адресов, можно напрямую указывать IP-адрес, например, `https://1.1.1.1/dns-query`. Также можно использовать нестандартные порты и пути, например, `"https://a.b.c.d:8443/my-dns-query"`. -Если значение имеет вид `"https+local://host:port/dns-query"`, например `"https+local://dns.google/dns-query"`, Xray будет использовать `локальный режим DOH (DOHL)` для запросов. -Это означает, что DOH-запросы не будут проходить через компонент маршрутизации, а будут отправляться непосредственно через исходящее подключение Freedom для сокращения времени ожидания. -Обычно этот режим подходит для использования на сервере. -Также можно использовать нестандартные порты и пути. +Если значение имеет вид `"https+local://хост:порт/dns-query"`, например, `"https+local://dns.google/dns-query"`, Xray будет использовать `локальный режим DOH (DOHL)` для запроса. Это означает, что DOH-запрос не будет проходить через компонент маршрутизации, а будет отправляться непосредственно через исходящее подключение Freedom, чтобы сократить время ожидания. Обычно подходит для использования на сервере. Также можно использовать нестандартные порты и пути. -Если значение имеет вид `"quic+local://host"`, например `"quic+local://dns.adguard.com"`, Xray будет использовать `локальный режим DNS over QUIC (DOQL)` для запросов. -Это означает, что DNS-запросы не будут проходить через компонент маршрутизации, а будут отправляться непосредственно через исходящее подключение Freedom. -Этот режим требует, чтобы DNS-сервер поддерживал DNS over QUIC. -По умолчанию для запросов используется порт 853, можно использовать нестандартный порт. +Если значение имеет вид `"quic+local://хост"`, например, `"quic+local://dns.adguard.com"`, Xray будет использовать `локальный режим DNS over QUIC (DOQL)` для запроса. Это означает, что DNS-запрос не будет проходить через компонент маршрутизации, а будет отправляться непосредственно через исходящее подключение Freedom. Этот метод требует, чтобы DNS-сервер поддерживал DNS over QUIC. По умолчанию для запроса используется порт 853, можно использовать нестандартный порт. -Если значение равно `fakedns`, для запросов будет использоваться FakeDNS. +Если значением является `fakedns`, то для запроса будет использоваться функция FakeDNS. -::: tip Совет 1 -При использовании `localhost` локальные DNS-запросы не контролируются Xray. -Для того, чтобы DNS-запросы перенаправлялись через Xray, требуется дополнительная настройка. +::: tip СОВЕТ 1 +При использовании `localhost` DNS-запросы локальной машины не контролируются Xray, для того чтобы DNS-запросы перенаправлялись Xray, требуется дополнительная настройка. ::: -::: tip Совет 2 -Разные DNS-клиенты, инициализированные разными правилами, будут отображаться в журнале запуска Xray с уровнем `info`, например, `local DOH`, `remote DOH`, `udp` и т.д. +::: tip СОВЕТ 2 +Инициализированные DNS-клиенты для различных правил отображаются в журнале запуска Xray с уровнем `info`, например, режимы `local DOH`, `remote DOH` и `udp`. ::: -::: tip Совет 3 -(v1.4.0+) Можно включить ведение журнала DNS-запросов в [настройках журнала](./log.md). +::: tip СОВЕТ 3 +(v1.4.0+) Вы можете включить ведение журнала DNS-запросов в [журнале](./log.md). ::: > `clientIp`: string -IP-адрес, который будет сообщаться серверу при выполнении DNS-запросов. -Не может быть частным IP-адресом. +Используется для указания IP-адреса клиента при отправке DNS-запросов на сервер. Не может быть приватным адресом. -::: tip Совет 1 +::: tip СОВЕТ 1 Требуется, чтобы DNS-сервер поддерживал EDNS Client Subnet. ::: -::: tip Совет 2 -Можно указать `clientIp` для всех DNS-серверов в [DnsObject](#dnsobject) или для каждого DNS-сервера в [ServerObject](#serverobject) (настройка в ServerObject имеет приоритет над настройкой в DnsObject). +::: tip СОВЕТ 2 +Вы можете указать `clientIp` для всех DNS-серверов в [DnsObject](#dnsobject), а также указать `clientIp` для каждого DNS-сервера в конфигурации [DnsServerObject](#dnsserverobject) (приоритет выше, чем у конфигурации [DnsObject](#dnsobject)). ::: > `queryStrategy`: "UseIP" | "UseIPv4" | "UseIPv6" -Значение по умолчанию - `UseIP`, запрашиваются как записи A, так и записи AAAA. -`UseIPv4` - запрашиваются только записи A; `UseIPv6` - запрашиваются только записи AAAA. +Значение по умолчанию `UseIP` запрашивает как записи A, так и записи AAAA. `UseIPv4` запрашивает только записи A; `UseIPv6` запрашивает только записи AAAA. -Новая функция в Xray-core v1.8.6: `queryStrategy` можно настроить для каждого `DNS`-сервера. +Новая функция в Xray-core v1.8.6: `queryStrategy` можно установить отдельно для каждого `DNS` сервера. ```json "dns": { @@ -200,7 +160,7 @@ IP-адрес, который будет сообщаться серверу п "geosite:netflix" ], "skipFallback": true, - "queryStrategy": "UseIPv4" // Запрос записей A для доменов netflix + "queryStrategy": "UseIPv4" // запрос записей A для домена netflix }, { "address": "https://1.1.1.1/dns-query", @@ -208,21 +168,19 @@ IP-адрес, который будет сообщаться серверу п "geosite:openai" ], "skipFallback": true, - "queryStrategy": "UseIPv6" // Запрос записей AAAA для доменов openai + "queryStrategy": "UseIPv6" // запрос записей AAAA для домена openai } ], - "queryStrategy": "UseIP" // Запрос записей A и AAAA для всех доменов + "queryStrategy": "UseIP" // запрос записей A и AAAA для всех остальных доменов } ``` -::: tip Совет 1 -Глобальное значение `"queryStrategy"` имеет приоритет. -Если значение `"queryStrategy"` в дочернем элементе конфликтует с глобальным значением `"queryStrategy"`, дочерний запрос вернет пустой ответ. +::: tip СОВЕТ 1 +Глобальное значение `"queryStrategy"` имеет приоритет. Если значение `"queryStrategy"` в дочернем элементе конфликтует с глобальным значением `"queryStrategy"`, запрос дочернего элемента вернет пустой ответ. ::: -::: tip Совет 2 -Если параметр `"queryStrategy"` не указан в дочернем элементе, используется глобальное значение `"queryStrategy"`. -Поведение такое же, как и в версиях Xray-core до v1.8.6. +::: tip СОВЕТ 2 +Если параметр `"queryStrategy"` не указан в дочернем элементе, используется значение глобального параметра `"queryStrategy"`. Поведение аналогично версиям Xray-core до v1.8.6. ::: Например:
@@ -241,33 +199,32 @@ IP-адрес, который будет сообщаться серверу п "geosite:netflix" ], "skipFallback": true, - "queryStrategy": "UseIPv6" // Конфликт между глобальным значением "UseIPv4" и дочерним значением "UseIPv6" + "queryStrategy": "UseIPv6" // конфликт между глобальным значением "UseIPv4" и дочерним значением "UseIPv6" } ], "queryStrategy": "UseIPv4" } ``` -Дочерний запрос для доменов netflix вернет пустой ответ из-за конфликта значений `"queryStrategy"`. -Домены netflix будут разрешены с помощью `https://1.1.1.1/dns-query`, и будут получены записи A. +Запрос домена netflix вернет пустой ответ из-за конфликта значений `"queryStrategy"`. Запись A для домена netflix будет получена от `https://1.1.1.1/dns-query`. > `disableCache`: true | false -`true` - отключить кэширование DNS, по умолчанию `false` (кэширование включено). +`true` отключает кэширование DNS, по умолчанию `false`, то есть кэширование включено. > `disableFallback`: true | false -`true` - отключить резервные (fallback) DNS-запросы, по умолчанию `false` (резервные запросы включены). +`true` отключает откат DNS-запросов (fallback), по умолчанию `false`, то есть откат включен. > `disableFallbackIfMatch`: true | false -`true` - отключить резервные (fallback) DNS-запросы, если совпадает приоритетный список доменов DNS-сервера, по умолчанию `false` (резервные запросы включены). +`true` отключает откат DNS-запросов (fallback), если сработал список доменов с приоритетным сопоставлением для DNS-сервера, по умолчанию `false`, то есть откат включен. > `tag`: string -Трафик запросов, отправляемых встроенным DNS-сервером (кроме режимов `localhost`, `fakedns`, `TCPL`, `DOHL` и `DOQL`), можно сопоставить с помощью этого тега, используя `inboundTag` в правилах маршрутизации. +Трафик запросов, отправляемых встроенным DNS, за исключением режимов `localhost`, `fakedns`, `TCPL`, `DOHL` и `DOQL`, можно сопоставить в маршрутизации с помощью `inboundTag` по этому тегу. -### ServerObject +### DnsServerObject ```json { @@ -282,63 +239,40 @@ IP-адрес, который будет сообщаться серверу п > `address`: address -Адрес DNS-сервера. -Поддерживаются два типа: адрес DNS (в виде строки) и ServerObject. +Список DNS-серверов, поддерживается два типа: DNS-адрес (в виде строки) и DnsServerObject. -Значение `"localhost"` означает использование локальных настроек DNS. +Значение `"localhost"` означает использование предустановленной конфигурации DNS на локальной машине. -Если значение - это адрес DNS `"IP"`, например `"8.8.8.8"`, Xray будет использовать указанный UDP-порт этого адреса для DNS-запросов. -Запрос будет следовать правилам маршрутизации. -По умолчанию используется порт 53. +Если значением является DNS-адрес `"IP"`, например, `"8.8.8.8"`, Xray будет использовать указанный UDP-порт этого адреса для DNS-запросов. Этот запрос следует правилам маршрутизации. По умолчанию используется порт 53. -Если значение имеет вид `"tcp://host"`, например `"tcp://8.8.8.8"`, Xray будет использовать `DNS over TCP` для запросов. -Запрос будет следовать правилам маршрутизации. -По умолчанию используется порт 53. +Если значение имеет вид `"tcp://хост"`, например, `"tcp://8.8.8.8"`, Xray будет использовать `DNS over TCP` для запроса. Этот запрос следует правилам маршрутизации. По умолчанию используется порт 53. -Если значение имеет вид `"tcp+local://host"`, например `"tcp+local://8.8.8.8"`, Xray будет использовать `локальный режим TCP (TCPL)` для запросов. -Это означает, что DNS-запросы не будут проходить через компонент маршрутизации, а будут отправляться непосредственно через исходящее подключение Freedom для сокращения времени ожидания. -Если порт не указан, по умолчанию используется порт 53. +Если значение имеет вид `"tcp+local://хост"`, например, `"tcp+local://8.8.8.8"`, Xray будет использовать `локальный режим TCP (TCPL)` для запроса. Это означает, что DNS-запрос не будет проходить через компонент маршрутизации, а будет отправляться непосредственно через исходящее подключение Freedom, чтобы сократить время ожидания. Если порт не указан, по умолчанию используется порт 53. -Если значение имеет вид `"https://host:port/dns-query"`, например `"https://dns.google/dns-query"`, Xray будет использовать `DNS over HTTPS` (RFC8484, сокращенно DOH) для запросов. -Некоторые провайдеры имеют сертификаты с IP-псевдонимами, поэтому можно использовать IP-адрес напрямую, например `https://1.1.1.1/dns-query`. -Также можно использовать нестандартные порты и пути, например `"https://a.b.c.d:8443/my-dns-query"`. +Если значение имеет вид `"https://хост:порт/dns-query"`, например, `"https://dns.google/dns-query"`, Xray будет использовать `DNS over HTTPS` (RFC8484, сокращенно DOH) для запроса. Некоторые провайдеры имеют сертификаты с псевдонимами IP-адресов, можно напрямую указывать IP-адрес, например, `https://1.1.1.1/dns-query`. Также можно использовать нестандартные порты и пути, например, `"https://a.b.c.d:8443/my-dns-query"`. -Если значение имеет вид `"https+local://host:port/dns-query"`, например `"https+local://dns.google/dns-query"`, Xray будет использовать `локальный режим DOH (DOHL)` для запросов. -Это означает, что DOH-запросы не будут проходить через компонент маршрутизации, а будут отправляться непосредственно через исходящее подключение Freedom для сокращения времени ожидания. -Обычно этот режим подходит для использования на сервере. -Также можно использовать нестандартные порты и пути. +Если значение имеет вид `"https+local://хост:порт/dns-query"`, например, `"https+local://dns.google/dns-query"`, Xray будет использовать `локальный режим DOH (DOHL)` для запроса. Это означает, что DOH-запрос не будет проходить через компонент маршрутизации, а будет отправляться непосредственно через исходящее подключение Freedom, чтобы сократить время ожидания. Обычно подходит для использования на сервере. Также можно использовать нестандартные порты и пути. -Если значение имеет вид `"quic+local://host:port"`, например `"quic+local://dns.adguard.com"`, Xray будет использовать `локальный режим DOQ (DOQL)` для запросов. -Это означает, что DNS-запросы не будут проходить через компонент маршрутизации, а будут отправляться непосредственно через исходящее подключение Freedom. -Этот режим требует, чтобы DNS-сервер поддерживал DNS over QUIC. -По умолчанию для запросов используется порт 853, можно использовать нестандартный порт. +Если значение имеет вид `"quic+local://хост:порт"`, например, `"quic+local://dns.adguard.com"`, Xray будет использовать `локальный режим DOQ (DOQL)` для запроса. Это означает, что DNS-запрос не будет проходить через компонент маршрутизации, а будет отправляться непосредственно через исходящее подключение Freedom. Этот метод требует, чтобы DNS-сервер поддерживал DNS over QUIC. По умолчанию для запроса используется порт 853, можно использовать нестандартный порт. -Если значение равно `fakedns`, для запросов будет использоваться FakeDNS. +Если значением является `fakedns`, то для запроса будет использоваться функция FakeDNS. > `port`: number -Порт DNS-сервера, например `53`. -По умолчанию используется порт `53`. -Этот параметр не используется в режимах DOH, DOHL, DOQL. -Нестандартный порт должен быть указан в URL. +Порт DNS-сервера, например, `53`. Если этот элемент не указан, по умолчанию используется значение `53`. Этот элемент не используется в режимах DOH, DOHL, DOQL, нестандартный порт должен быть указан в URL. > `domains`: \[string\] -Список доменов, для которых в первую очередь будет использоваться этот сервер. -Формат доменных имен такой же, как и в [конфигурации маршрутизации](./routing.md#ruleobject). +Список доменов. Домены из этого списка будут в первую очередь запрашиваться через этот сервер. Формат доменного имени такой же, как и в [конфигурации маршрутизации](./routing.md#ruleobject). -> `expectIPs`: \[string\] +> `expectIPs`:\[string\] Список диапазонов IP-адресов, формат такой же, как и в [конфигурации маршрутизации](./routing.md#ruleobject). -Если этот параметр настроен, DNS Xray будет проверять возвращаемые IP-адреса и возвращать только те, которые входят в список `expectIPs`. +Если этот элемент настроен, Xray DNS будет проверять возвращаемые IP-адреса и возвращать только адреса, входящие в список `expectIPs`. -Если этот параметр не настроен, IP-адреса возвращаются без изменений. +Если этот элемент не настроен, IP-адреса будут возвращены как есть. > `skipFallback`: true | false -`true` - пропустить этот сервер при выполнении резервных (fallback) DNS-запросов, по умолчанию `false` (не пропускать). - - - - +`true` - этот сервер будет пропущен при выполнении отката DNS-запроса (fallback), по умолчанию `false`, то есть сервер не будет пропущен.