DNS-сервер

Вы можете использовать этот параметр для переопределения системных настроек DNS. Chute поддерживает DNS-сервер, DoH (DNS-over-HTTPS), DoT (DNS-over-TLS), DoQ (DNS-over-QUIC) и DoH3 (DNS-over-HTTP/3).

[General]
dns-server = 8.8.8.8, 8.8.4.4
doh = cloudflare, google, 1111
dot = dns.google, cloudflare-dns.com
doq = dns.adguard.com
doh3 = https://dns.google/dns-query

Вы можете использовать ключевое слово system, чтобы добавить дополнительные DNS-серверы к системным настройкам. (Дублирующиеся серверы будут проигнорированы)

Вы можете использовать ключевое слово syslib, чтобы получить результат DNS через встроенный системный API. На macOS syslib на уровне пула пропускается, пока активен интерфейс TUN, — системный резолвер тогда указывает обратно на Chute; server:syslib в [Host] и путь для .local по-прежнему им пользуются.

[General]
dns-server = system, syslib, 8.8.8.8, 8.8.4.4

Запись может содержать порт — 192.0.2.53:5353 или [2001:db8::1]:5353 для IPv6. Имена хостов в dns-server не принимаются; для резолвера, заданного именем, используйте DoH, DoT, DoQ или DoH3. Их тоже можно записать прямо здесь, со схемой — https://, tls://, quic:// или h3://, — и тогда они попадают в doh, dot, doq или doh3, как в encrypted-dns-server.

В настоящее время доступно 5 встроенных сервисов DoH. Идентификаторы записываются в нижнем регистре и чувствительны к регистру:

  • cloudflare (Cloudflare)
  • google (Google)
  • 1111 (1.1.1.1)
  • securedns (SecureDNS)
  • dnssb (DNS.SB)

Вы также можете настроить свой личный сервис DoH. Например, если вы используете https://dns.nextdns.io/xxxxxx как конечную точку NextDNS DoH, вы можете настроить так:

[General]
doh = google, dns.nextdns.io/xxxxxx

Недействительная запись DoH сообщается как ошибка конфигурации, и строка doh отклоняется.

Для совместимости с конфигурациями Surge написания doh-server и doh-service принимаются как псевдонимы doh.


Сервис DNS-over-TLS (DoT)

Вы можете настроить сервисы DoT для шифрования DNS-запросов через TLS.

[General]
dot = dns.google, cloudflare-dns.com

Каждая запись сервиса DoT должна быть доменным именем, поддерживающим DNS-over-TLS. По умолчанию Chute подключится к имени хоста на порту 853; запись также может быть записана как host:port или host:port:peer-name (используйте [IPv6]:port для IPv6-адресов), чтобы переопределить порт и имя узла TLS.

Если имя хоста DoT не может быть разрешено или недоступно, оно будет молча пропущено.

Вы можете комбинировать DoT, DoH, DoQ, DoH3 и традиционные DNS-серверы в одной конфигурации:

[General]
dns-server = system, 8.8.8.8
doh = cloudflare
dot = dns.google
doq = dns.adguard.com
doh3 = https://dns.google/dns-query

Сервис DNS-over-QUIC (DoQ)

Вы можете настроить серверы DoQ для шифрования DNS-запросов через QUIC.

[General]
doq = dns.adguard.com

Каждая запись DoQ должна быть доменным именем или IP-адресом, поддерживающим DNS-over-QUIC. По умолчанию используется порт 853; запись также может быть записана как host:port или host:port:peer-name (используйте [IPv6]:port для IPv6-адресов), чтобы переопределить порт и имя узла TLS. Chute использует транспорт QUIC для DNS-запросов, что обеспечивает сниженную задержку по сравнению с шифрованием DNS на основе TCP.

Можно указать несколько серверов DoQ, разделённых запятыми:

[General]
doq = dns.adguard.com, dns.nextdns.io

Если сервер DoQ недоступен, он будет молча пропущен.


Сервис DNS-over-HTTP/3 (DoH3)

Вы можете настроить сервисы DoH3 для DNS-over-HTTPS с использованием транспорта HTTP/3 (QUIC).

[General]
doh3 = https://dns.google/dns-query

Каждая запись DoH3 должна быть полным HTTPS URL к DNS-резолверу, поддерживающему HTTP/3. Можно указать несколько серверов DoH3, разделённых запятыми:

[General]
doh3 = https://dns.google/dns-query, https://cloudflare-dns.com/dns-query

DoH3 сочетает конфиденциальность DNS-over-HTTPS с преимуществами производительности транспорта QUIC. Если сервер DoH3 не поддерживает HTTP/3 или недоступен, он будет молча пропущен.


DNS поверх TCP

[General]
dns-server = tcp://8.8.8.8, tcp://[2001:4860:4860::8888]:53

К резолверу, записанному как tcp://IP[:port], запрос идёт по TCP (RFC 7766), а не по UDP; порт по умолчанию — 53. Это пригодится в сети, которая отбрасывает или подменяет DNS поверх UDP. Такая запись принимается везде, где принимается обычный резолвер: в dns-server, в отдельных пулах DNS, в dns-server= записи приостановки по SSID и в списке server: раздела [Host]. Как и обычный резолвер, она принимает только IP-адрес — не имя хоста, не system и не syslib. Параметры отдельного сервера, например #disable-qtype=, действуют как обычно. С #proxy запрос идёт через эту политику — по TCP, как и любой обычный запрос через политику. encrypted-dns-server её не принимает.


Отдельные пулы DNS

Помимо основного пула выше, есть три необязательных пула для отдельных имён:

[General]
direct-dns-server = 223.5.5.5, https://doh.pub/dns-query, system
proxy-dns-server = 1.1.1.1, tls://dns.google
fallback-dns-server = 8.8.8.8

direct-dns-server

Разрешает домены, для которых правило выносит решение DIRECT: разрешения, которые Chute выполняет, когда устанавливает прямое соединение, и запрос приложения, если этот запрос доходит до резолвера Chute, — то есть запрос, отправленный на DNS-порт, который слушает Chute, запрос об имени, указанном в always-real-ip, или запрос записи типа, отличного от A и AAAA. При работе через TUN запросы A и AAAA от приложений до него не доходят: на них сразу отвечает слой поддельных IP-адресов, что бы ни говорили правила. Просматриваются только доменные правила, поэтому запрос приложения о домене, для которого не подошло ни одно доменное правило (решение по нему зависит от IP-правила вроде IP-CIDR или GEOIP), следует за FINAL: этот пул, когда FINAL — DIRECT, и основной пул, когда это прокси. Собственное разрешение Chute для такого домена идёт через основной пул, потому что соединение ещё не привязано к DIRECT. Если ключ не задан, на всё отвечает основной пул.

proxy-dns-server

Разрешает имена хостов ваших прокси-серверов. Если ключ не задан, они используют основной пул.

fallback-dns-server

Опрашивается один раз, когда основной пул не вернул вообще ни одного ответа, непосредственно перед неудачей разрешения. Как и другие ключи DNS, может стоять в [General] или в [DNS], и только один раз.

Записи этих пулов могут сочетать разные транспорты: ip[:port], [v6][:port], system, syslib, URL DoH (https://…), tls://host[:port] для DoT, quic://host[:port] для DoQ и h3://… для DoH3. Обычные записи DNS, а также записи DoH, DoT, DoQ и DoH3 могут заканчиваться суффиксом #proxy; system#proxy и syslib#proxy пропускаются с предупреждением. Если direct-dns-server или proxy-dns-server не вернул ответа, запрос повторяется через основной пул. Каждый ключ можно указать только один раз. Запись tcp://IP[:port] опрашивается через DNS поверх TCP.

Для совместимости с Shadowrocket dns-direct-system = true читается как direct-dns-server = system и сохраняется в этом виде. Точно так же dns-fallback-system = true добавляет system в fallback-dns-server; если профиль объявляет и fallback-dns-server, оба объединяются в один пул.


Параметры шифрованного DNS

encrypted-dns-server

encrypted-dns-server = https://dns.google/dns-query, tls://dns.google, quic://dns.adguard.com, h3://cloudflare-dns.com/dns-query

Единый список Surge для шифрованных резолверов. Каждая запись попадает в doh, dot, doq или doh3 в зависимости от схемы (https://, tls://, quic://, h3://); tcp:// и другие схемы игнорируются с уведомлением. Для DNS поверх TCP запишите tcp:// в dns-server или в отдельный пул — см. DNS поверх TCP.

encrypted-dns-follow-outbound-mode (по умолчанию: false)

encrypted-dns-follow-outbound-mode = true

Заставляет соединения с вышестоящими серверами DoH, DoT, DoQ и DoH3 подчиняться режиму исходящих соединений и правилам, как любой другой запрос: напрямую в режиме «Напрямую», через выбранную политику в режиме «Глобальный», а в режиме «По правилам» — через политику сработавшего правила — их можно сопоставить правилами PROTOCOL,DOH, PROTOCOL,DOT, PROTOCOL,DOQ и PROTOCOL,DOH3. Вышестоящий сервер с решением REJECT пропускается. DoQ и DoH3 работают на QUIC, поэтому их соединение идёт через UDP-ретрансляцию выбранной политики; если эта политика (для группы — её текущий выбор) UDP не передаёт, решает udp-policy-not-supported-behaviour: REJECT (по умолчанию) пропускает этот сервер, а DIRECT опрашивает его напрямую.

encrypted-dns-skip-cert-verification (по умолчанию: false)

encrypted-dns-skip-cert-verification = true

Не проверять сертификаты вышестоящих серверов DoH, DoT, DoQ и DoH3 — для резолвера с самоподписанным сертификатом. Заодно пропадает защита от подмены резолвера.


Отправка запроса через политику

[General]
dns-server = 1.1.1.1#proxy, 8.8.8.8#proxy=HK
doh = https://dns.google/dns-query#proxy=Proxy%20Group
doq = dns.adguard.com#proxy=HK

Запись в dns-server, doh, dot, doq, doh3 или в одном из отдельных пулов может заканчиваться на #proxy или #proxy=<политика>: тогда запрос идёт через эту политику, а не напрямую. #proxy без имени использует политику, выбранную для глобального режима, а если её нет — политику правила FINAL; #proxy=<имя> задаёт политику или группу, пробелы записываются как %20. Обычная запись DNS переключается на DNS поверх TCP, поскольку не каждая политика может передавать UDP. Запись DoQ или DoH3 остаётся на QUIC, и её соединение идёт через UDP-ретрансляцию политики: если политика (для группы — её текущий выбор) UDP не передаёт, этот сервер пропускается с предупреждением и никогда не опрашивается напрямую. Если политика не существует или сводится к REJECT, этот вышестоящий сервер пропускается. Разрешение имени хоста самого прокси-сервера никогда не идёт через проксируемый вышестоящий сервер.


Параметры отдельного сервера

[General]
dns-server = 1.1.1.1#disable-ipv6, 8.8.8.8#disable-qtype=65
doh = https://dns.google/dns-query#h3=true, https://10.0.0.1/dns-query#skip-cert-verify=true

Тот же фрагмент # несёт и параметры, действующие только для этого сервера. Несколько соединяются через &, а =true можно опустить:

  • h3=true — обращаться к этому серверу DoH по HTTP/3, а не по HTTP/2.
  • skip-cert-verify=true — не проверять сертификат именно этого вышестоящего сервера. Для этого сервера исчезает защита от подменённого резолвера — ровно так же, как это делает глобальный encrypted-dns-skip-cert-verification для всех.
  • disable-ipv4=true / disable-ipv6=true — никогда не спрашивать у этого сервера записи A / AAAA.
  • disable-qtype=65 — никогда не спрашивать у него записи этого типа. disable-qtype-65 означает то же самое, а список через запятую отключает сразу несколько типов: 8.8.8.8#disable-qtype=65,64 — это одна запись, в которой отключены оба. Разбиение на записи учитывает фрагмент #, поэтому запятая за его пределами по-прежнему разделяет серверы: 8.8.8.8#proxy, 1.1.1.1 — это два сервера.

Сервер, для которого тип вопроса отключён, пропускается до отправки запроса: он не тратит ни попытку, ни тайм-аут. Если тип отвергают все серверы пула, разрешение имени завершается неудачей, а не ждёт ответов, которых никто не отправлял.


Запросы HTTPS и SVCB

allow-dns-svcb = true

По умолчанию выключено: на запросы приложений HTTPS (тип 65) и SVCB (тип 64) Chute отвечает пустым ответом NOERROR вместо пересылки вышестоящему серверу, потому что подсказки адресов в этих записях позволили бы приложению соединяться в обход поддельных IP-адресов и правил. Установите true, чтобы пересылать их. Этот переключатель действует и на запросы, которые приложения отправляют через TUN, — как на собственный адрес DNS Chute, так и на резолвер, который перехватывает hijack-dns. Собственные запросы ECH в Chute не затрагиваются.

S. Smart Rabbit LLC © All Rights Reserved            updated 2026-09-29 21:57:05

Эта страница — перевод английской версии. При расхождениях приоритет имеет английская версия.

results matching ""

    No results matching ""